#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}