Повышение оценки релевантности по сравнению с сортировкой в Elasticsearch

#elasticsearch

Вопрос:

Я новичок в elasticsearch и запутался, что мне следует использовать сортировку или повышать оценку релевантности в своем запросе. Если вместо сортировки я увеличу счет в том же поле, которое используется для сортировки , я получу тот же результат . Итак, какой именно подход рекомендуется использовать ?

Ответ №1:

Повышение предназначено для увеличения/уменьшения важности поля, и это происходит в процессе поиска… Сортировка выполняется по результатам поиска:

Допустим, у вас есть следующие поля для Student :

  • Имя
  • Фамилия
  • Возраст

Теперь предположим, что в вашей поисковой системе есть следующие записи:

 {John, Smith, 12}
{Jane, Winston, 13}
{Winston, Peters, 11}
 

Если вы выполните поиск по термину: «Уинстон», вы получите следующий результат:

 Search Term: 'Winston'
SortBy: Default
Result: both results have the same score and either one may appear on the top
{Jane, Winston, 13}
{Winston, Peters, 11}
 

Теперь давайте предположим Surname , что для вас важнее, тогда вы повысите поле Surname :

 Search Term: 'Winston' (Surname boosted)
SortBy: Default
Result: Jane Winston would have higher score because Surname is boosted
{Jane, Winston, 13}
{Winston, Peters, 11}
 

По умолчанию результаты сортируются по релевантности (т. е. баллам), но вы можете изменить порядок сортировки… допустим, вы хотите отсортировать один и тот же результат по Age :

 Search Term: 'Winston' (Surname boosted)
SortBy: Age
Result: Winston Peters appears first even though it has lower score
{Winston, Peters, 11}
{Jane, Winston, 13}