我的Algolia引擎里有下一个“实体”
Professional
objectID: "eyJpZCI6OX0="
...
status: id: 1我喜欢只搜索status = 1的那些。我已经尝试过了:
$searchResult = $this->get('algolia.indexer')->rawSearch(Professional, $data, [
'hitsPerPage' => 10,
'page' => 1,
'facetFilters' => 'status:1',
]);似乎我没有正确使用facetFilters,有什么帮助吗?谢谢
发布于 2017-03-16 22:40:44
根据我所看到的,在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参数,该参数功能更强大,可以指定更复杂的条件。
https://stackoverflow.com/questions/42831147
复制相似问题