Отображение избранных результатов с Elastic Search

Я использую Elastic Search на PHP, используя Elastica.

Я получаю список, который состоит из элементов. Некоторые пункты оплачиваются и / или выбираются редакцией. В настоящее время я просто сортирую их через настраиваемое поле «оценка», которое ранжирует эти элементы в зависимости от их качества. Я хочу, чтобы по умолчанию отображались 5 случайных списков (только если они не искали и не фильтровали), которые оплачиваются и выбираются редакторами.

Итак, что я сейчас делаю, это получение этих 5 списков, используя пользовательский запрос оценки фильтра, установка сценария для использования random (). В отдельном запросе, который просто сортирует по баллам, я исключаю эти 5 списков. Моя проблема, конечно, разбиение на страницы, и мне кажется, что использовать два запроса — хакерство и исключать результаты одного запроса из другого для этой цели.

У меня есть что-то вроде этого:

{
"custom_filters_score" : {
"query" : {
"match_all" : {}
},
"filters" : [
...
],
"script" : "random()"}
}

Итак, мой вопрос, какой самый простой способ сделать это? Я видел оценку функции, не уверен, что это то, что я ищу.

0

Решение

Я не уверен, как сделать это с Elastica, я никогда не использовал это. Но в ElasticSearch вы хотите использовать random_score функция с начальным значением, которое будет соответствовать нумерации страниц. Таким образом, вы можете быть уверены, что не получите одинаковые результаты несколько раз на разных страницах.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector