Algolia 条件搜索
Algolia conditional search
我的 Algolia 引擎中有下一个 "entity"
Professional
objectID: "eyJpZCI6OX0="
...
status: id: 1
而且我喜欢只搜索状态 = 1 的那些。
我试过这个:
$searchResult = $this->get('algolia.indexer')->rawSearch(Professional, $data, [
'hitsPerPage' => 10,
'page' => 1,
'facetFilters' => 'status:1',
]);
我似乎没有正确使用 facetFilters,
有帮助吗?
谢谢
据我所知,您在 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
参数,这样功能更强大,可以指定更复杂的条件。
我的 Algolia 引擎中有下一个 "entity"
Professional
objectID: "eyJpZCI6OX0="
...
status: id: 1
而且我喜欢只搜索状态 = 1 的那些。 我试过这个:
$searchResult = $this->get('algolia.indexer')->rawSearch(Professional, $data, [
'hitsPerPage' => 10,
'page' => 1,
'facetFilters' => 'status:1',
]);
我似乎没有正确使用 facetFilters, 有帮助吗? 谢谢
据我所知,您在 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
参数,这样功能更强大,可以指定更复杂的条件。