Searchkick: Я хотел бы, чтобы результаты отображали точное совпадение, прежде чем перечислять остальные с сортировкой? - PullRequest
0 голосов
/ 13 января 2019

Я бы хотел, чтобы результаты отображали точное совпадение, прежде чем перечислять остальные, и эти данные должны быть отсортированы по a-z или z-a (asc / desc)?

1. Maxwell B
2. Maxwell A
3. D Maxwell
4. C Maxwell

Поиск текста: Максвелл если я буду искать текст и применять порядок на asc, то результат будет: C Maxwell D Maxwell Maxwell A Maxwell B

Но я искал Maxwell, поэтому сначала должен отображаться Maxwell (соответствующий результат), затем он должен перечислить другие, Что я хочу это: Maxwell A Maxwell B C Maxwell D Maxwell

1 Ответ

0 голосов
/ 13 января 2019

В приведенном вами примере при поиске «Максвелла» оба «С Максвелла» и «Максвелла А» имеют одинаковое сходство - ни один из них не является полным точным соответствием, но оба содержат искомый токен (Максвелл) полностью.

Я также не думаю, что сортировка может помочь, поскольку сортировка выполняется по тексту, и, тем не менее, нет предпочтений ни одному из них, чем другому, поскольку оба содержат «Максвелл» и другие текстовые части.

Какой запрос вы выполняете? Один из способов изменить порядок результатов - изменить оценку результатов. Вы можете найти пример в https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html, где вы можете указать function_score с соответствием для Maxwell, что может помочь.

...