【问题标题】:Algolia conditional searchAlgolia 条件搜索
【发布时间】:2017-03-16 22:40:43
【问题描述】:

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

Professional
objectID: "eyJpZCI6OX0="
...
status: id: 1

我喜欢只搜索状态 = 1 的那些。 我试过这个:

$searchResult = $this->get('algolia.indexer')->rawSearch(Professional, $data, [
            'hitsPerPage' => 10,
            'page' => 1,
             'facetFilters' => 'status:1',
      ]);

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

【问题讨论】:

标签: php search algolia


【解决方案1】:

据我所知,您在 status 属性内有子属性 id。所以你的记录看起来像这样:

{
  "objectID": "eyJpZCI6OX0=",
  ...
  "status": {
    "id": 1
  }
}

正确吗?

在这种情况下,您还需要在 facetFilters 中指定子属性。在您的情况下,它看起来像这样:

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

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

$client = new \AlgoliaSearch\Client('foo', 'bar');
$index = $client->initIndex('index_name');

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

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

【讨论】:

    猜你喜欢
    • 2014-12-16
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2021-04-26
    • 2018-09-05
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多