我正在尝试弄清楚如何从搜索结果中排除特定记录。
我的记录如下:
eventId:bcf9e22b-adb1-11e6-b058-0623f336d3b3
name:Event Name
fullAddress:1964 Long Beach Rd, Toronto, ON, Canada
latitude:44.998148000000
longitude:-79.319882400000
eventStartAt:1469948400
objectID:eyJpZCI6ImJjZjllMjJiLWFkYjEtMTFlNi1iMDU4LTA2MjNmMzM2ZDNiMyJ9
因此,在搜索事件名称时,我试图排除某些具有特定eventId
的记录。
我正在使用Algolia提供的Symfony包,所以我的代码如下:
$results = $this->get('algolia.indexer')->search(
$this->get('doctrine.orm.entity_manager'),
'MyBundle:Entity',
'Random Event Name',
[
'numericFilters' => 'eventStartAt > 1469948000',
'minWordSizefor1Typo' => 2,
'filters' => 'NOT eventId:b2c7a242-e17d-11e6-b058-0623f336d3b3',
]
);
生成请求正文:
{
"params": "numericFilters=eventStartAt+%3E+1469948000&minWordSizefor1Typo=2&filters=NOT+eventId%3Ab2c7a242-e17d-11e6-b058-0623f336d3b3&query=Random+Event+Name"
}
问题是NOT eventId:b2c7a242-e17d-11e6-b058-0623f336d3b3
过滤器似乎根本没有被应用,而eventId
b2c7a242-e17d-11e6-b058-0623f336d3b3
的记录仍然存在于我的结果中。