Пользовательская сортировка Elasticsearch

Я использую elasticsearch 7.7, и у меня есть документы по продуктам, которые выглядят следующим образом:

[
     {"id": 1, "title": "product 1", "status": "available"},
     {"id": 2, "title": "product 2", "status": "will_be_available_soon"},
     {"id": 3, "title": "product 3", "status": "not_available"},
     {"id": 4, "title": "product 4", "status": "never_will_be_available_again"},
]

В своих поисковых запросах я хочу сортировать свои продукты таким образом, чтобы сначала я видел доступные продукты, затем я хотел видеть продукты, которые будут_доступны_скоро, а затем не_доступные и, конечно, никогда_не будут_доступными_снова. и для продуктов с одинаковым статусом я хочу сортировать на основе их соответствия.


person mhndev    schedule 18.06.2020    source источник
comment
Это нормально для вас, чтобы сделать это с подсчетом очков?   -  person Gibbs    schedule 18.06.2020
comment
@ Гиббс Да, это так. но было бы здорово, если бы у меня были оба варианта :D   -  person mhndev    schedule 18.06.2020
comment
это нормально для вас, чтобы изменить сопоставление? scripting - более быстрый способ достижения, но он не очень хорош в производительности.   -  person Gibbs    schedule 21.06.2020


Ответы (1)


Вы можете запустить собственный сценарий запроса. Взгляните на это обсуждение: https://discuss.elastic.co/t/sorting-or-ordering-by-specific-values/67244/2 Другим вариантом является оценка, но в будущем это может стать проблемой.

person Tiago Mateus    schedule 18.06.2020