Php Elasticsearch建议仅适用于日期大于当前日期的情况
我在网球比赛的门户网站上工作,我使用elasticserach作为全文搜索引擎 我还使用elasticsearch title suggester创建了自动完成功能。但全文搜索的要求是只搜索未来的锦标赛,所以我需要一些建议解决方案,如何只建议开始日期>=当前日期时间的锦标赛 是否可以制作suggester,只返回日期大于今天的结果以及特定国家的结果 我的自动完成的实际配置:Php Elasticsearch建议仅适用于日期大于当前日期的情况,php,elasticsearch,autocomplete,Php,elasticsearch,Autocomplete,我在网球比赛的门户网站上工作,我使用elasticserach作为全文搜索引擎 我还使用elasticsearch title suggester创建了自动完成功能。但全文搜索的要求是只搜索未来的锦标赛,所以我需要一些建议解决方案,如何只建议开始日期>=当前日期时间的锦标赛 是否可以制作suggester,只返回日期大于今天的结果以及特定国家的结果 我的自动完成的实际配置: /** * Main search field autocomplete. * * @param $q * @re
/**
* 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;
}
你必须使用完成建议吗?如果您愿意改用ngram方法,您仍然可以使用任意查询,因此在查询中添加日期范围筛选器并不困难。同意ngram查询。建议者没有查询DSL那样的灵活性。(虽然可以将日期边界添加到上下文提示器中,因为它已经支持地理距离边界。)是否必须使用完成建议?如果您愿意改用ngram方法,您仍然可以使用任意查询,因此在查询中添加日期范围筛选器并不困难。同意ngram查询。建议者没有查询DSL那样的灵活性。(尽管可以将日期边界添加到上下文提示器中,因为它已经支持地理距离边界。)