Почему Elasticsearch с шаблонным запросом всегда 1.0?

#elasticsearch

#elasticsearch

Вопрос:

Когда я выполняю поиск в Elasticsearch с шаблонным запросом (подстановочный знак в конце), результат оценки для всех обращений в 1.0. Это специально? Могу ли я где-нибудь изменить это поведение?

Ответ №1:

Elasticsearch в основном говорит, что все результаты одинаково релевантны, поскольку вы предоставили неквалифицированный поиск (шаблон, эквивалентный a match_all ). Как только вы добавите дополнительный контекст с помощью различных типов запросов, вы заметите изменения в оценке.

В зависимости от вашей конечной цели вы можете заглянуть в ссылку на Function Score запрос: https://www.elastic.co/guide/en/elasticsearch/reference/6.7/query-dsl-function-score-query.html

Первый приведенный пример даст вам по существу случайные оценки для всех документов в вашем кластере:

 GET /_search
{
    "query": {
        "function_score": {
            "query": { "match_all": {} },
            "boost": "5",
            "random_score": {}, 
            "boost_mode":"multiply"
        }
    }
}