Как я могу эффективно взвешивать разные поля при выполнении внутреннего поиска по сайту? - PullRequest
0 голосов
/ 14 июля 2020

Я реализую внутренний поиск, который просматривает различные нормализованные поля, чтобы определить релевантность поисковым запросам пользователя. Стратегия best_fields кажется иногда дает странные результаты, потому что «менее важное» поле дает наивысший балл и побеждает другие более важные поля с более слабыми совпадениями. Я добавил boost, но увеличение этого значения, похоже, также исказит результаты; как и переход к стратегии most_fields, поскольку не все страницы будут иметь все поля.

Как правильно go настроить приведенный ниже запрос и включить оценки из каждого поля?

Ниже приведен пример, в котором поле content в конечном итоге выигрывает оценку «max» для best_field (потому что поисковый запрос присутствует больше раз) и набирает больше очков, чем вторая страница, которую я хочу занять первой, потому что поиск термин - буквальное совпадение с полем keywords. Более того, поскольку на важные страницы добавляется больше ключевых слов, их соответствие, кажется, еще больше обесценивается, поскольку длина поля намного больше средней.

Пример запроса

{
    "query": {
        'multi_match' : {
            "query": "Hello World",
            "fields": ["keywords^3", "name^2", "content^1"]
        }
    }
};

Пример документа / результатов :

[{
    "name": "Howdy!",
    "keywords: "",
    "content": "Hello everybody, I'm in the world. hello there, i like saying hello"
},{
    "name": "Hey",
    "keywords: "Hello World, Hello, World",
    "content": "Lot's of text, Lot's of text, Lot's of text, Lot's of text, Lot's of text, Hello"
}]

1 Ответ

0 голосов
/ 14 июля 2020

Прямо сейчас у вас есть stati c boost, который также является хорошим способом настройки релевантности поиска, но для более продвинутых вариантов использования, подобных вашему, я бы посоветовал взглянуть на оценку функции способ точной настройки оценка и релевантность.

Пожалуйста, go ознакомьтесь с документацией по оценке функций, она довольно исчерпывающая и может легко удовлетворить ваш случай использования.

...