elasticsearch,autocomplete,Php,elasticsearch,Autocomplete" /> elasticsearch,autocomplete,Php,elasticsearch,Autocomplete" />

Php Elasticsearch建议仅适用于日期大于当前日期的情况

Php Elasticsearch建议仅适用于日期大于当前日期的情况,php,elasticsearch,autocomplete,Php,elasticsearch,Autocomplete,我在网球比赛的门户网站上工作,我使用elasticserach作为全文搜索引擎 我还使用elasticsearch title suggester创建了自动完成功能。但全文搜索的要求是只搜索未来的锦标赛,所以我需要一些建议解决方案,如何只建议开始日期>=当前日期时间的锦标赛 是否可以制作suggester,只返回日期大于今天的结果以及特定国家的结果 我的自动完成的实际配置: /** * Main search field autocomplete. * * @param $q * @re

我在网球比赛的门户网站上工作,我使用elasticserach作为全文搜索引擎

我还使用elasticsearch title suggester创建了自动完成功能。但全文搜索的要求是只搜索未来的锦标赛,所以我需要一些建议解决方案,如何只建议开始日期>=当前日期时间的锦标赛

是否可以制作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;
}

你必须使用完成建议吗?如果您愿意改用ngram方法,您仍然可以使用任意查询,因此在查询中添加日期范围筛选器并不困难。同意ngram查询。建议者没有查询DSL那样的灵活性。(虽然可以将日期边界添加到上下文提示器中,因为它已经支持地理距离边界。)是否必须使用完成建议?如果您愿意改用ngram方法,您仍然可以使用任意查询,因此在查询中添加日期范围筛选器并不困难。同意ngram查询。建议者没有查询DSL那样的灵活性。(尽管可以将日期边界添加到上下文提示器中,因为它已经支持地理距离边界。)