首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Algolia条件搜索

Algolia条件搜索
EN

Stack Overflow用户
提问于 2017-03-16 18:18:43
回答 1查看 104关注 0票数 0

我的Algolia引擎里有下一个“实体”

代码语言:javascript
复制
Professional
objectID: "eyJpZCI6OX0="
...
status: id: 1

我喜欢只搜索status = 1的那些。我已经尝试过了:

代码语言:javascript
复制
$searchResult = $this->get('algolia.indexer')->rawSearch(Professional, $data, [
            'hitsPerPage' => 10,
            'page' => 1,
             'facetFilters' => 'status:1',
      ]);

似乎我没有正确使用facetFilters,有什么帮助吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 22:40:44

根据我所看到的,在status属性中有一个子属性id。因此,您的记录如下所示:

代码语言:javascript
复制
{
  "objectID": "eyJpZCI6OX0=",
  ...
  "status": {
    "id": 1
  }
}

对,是这样?

在这种情况下,您还需要在facetFilters中指定子属性。在您的示例中,它将如下所示:

代码语言:javascript
复制
$searchResult = $this->get('algolia.indexer')->rawSearch(Professional, $data, [
    'hitsPerPage' => 10,
    'page' => 1,
    'facetFilters' => 'status.id:1',
]);

如果使用Algolia PHP API client,代码将如下所示:

代码语言:javascript
复制
$client = new \AlgoliaSearch\Client('foo', 'bar');
$index = $client->initIndex('index_name');

$res = $index->search('', ['filters' => 'status.id:1']);

您还可以将facetFilters参数替换为filters参数,该参数功能更强大,可以指定更复杂的条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42831147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档