Я отправляю поисковые запросы в мой индекс ES и получаю несколько результатов назад. Часто результаты с более низкими показателями не имеют значения, и я хочу удалить эти результаты и возвращать только высококачественные результаты (которые в основном имеют более высокий балл).
Мой указатель содержит 1000 документов типа текста из 100-500 слов. Например - {"text":'AVENGERS: ENDGAME is set after Thanos' catastrophic use of the Infinity Stones randomly wiped out half of Earth's population in Avengers: Infinity War. Those left behind are desperate to do something -- anything -- to bring back their lost loved ones. But after an initial attempt -- with extra help from Captain Marvel -- creates more problems than solutions, the grieving, purposeless Avengers think all hope is lost.'}
Если пользователь ищет «Капитан Марвел, он же Бри Ларсон, убивает Таноса в фильме», в результате должен быть возвращен вышеуказанный документ, поскольку он содержит аналогичные термины.
В настоящее время я использую min_score для установки порога, но я знаю, что это не лучшая практика, и оценки меняются в зависимости от количества документов в индексе (которое будет расти). Так что этот подход не кажется масштабируемым.
Я также попробовал несколько способов настройки запроса, чтобы получить высококачественные результаты, такие как More Like This function
"must":
[{"more_like_this" : {
"fields" : field_list,
"like" : query_data,
"min_term_freq" : 1,
"max_query_terms" : 50,
"min_doc_freq" : 1,
"minimum_should_match" : '50%'}}]}}
Но я все еще получаю результаты с низкими оценками, такими как 1,5, тогда как результат хорошего качества обычно имеет оценку 20. Есть ли хороший способ для дальнейшей настройки запроса или настройки min_score, чтобы он был динамическим, чтобы возвращать только очень релевантные документы? Любая помощь будет оценена!