我在门户网站上进行网球比赛,并使用elasticserach作为全文搜索引擎。
我还使用elasticsearch title suggester创建了自动完成功能。但全文搜索的要求是只搜索未来的锦标赛,所以我需要一些建议解决方案,如何仅建议开始日期> =当前日期时间的锦标赛。
是否可以制作建议者,只返回日期大于今天和特定国家/地区的结果?
我实际配置自动完成功能:
/**
* Main search field autocomplete.
*
* @param $q
* @return array
*/
public function autocomplete($q)
{
$date = new DateTime();
$results = $this->getClient()->suggest([
'index' => 'tournaments',
'body' => [
'title_suggest' => [
'text' => $q,
'completion' => [
'field' => 'title_suggest',
],
]
]
]);
$resultData = [];
foreach($results['title_suggest'][0]['options'] as $hit)
{
$resultData[] = $hit['text'];
}
return $resultData;
}