Применить буст сортировку до 3 записей - PullRequest
0 голосов
/ 23 марта 2020

Настройка:

Индекс создается из класса C# с использованием NEST API.

Это в контексте своего рода поисковой системы.

У нас есть запрос с булевыми фильтрами и сортировкой.

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

Пример: Предполагая, что запрос вернет 65 документов, из которых 5 имеют флаг IsTopRankingWithViews, я буду sh, что 3 из 5, которые имеют флаг будет помещен в верхнюю часть списка результатов. Кроме того, 3, которые возвращаются, должны быть выбраны случайным образом из 5 документов с флагом. «Выбранный случайным образом» должен меняться каждые x часов.

Чтобы выбрать случайный 3, я мог бы добавить другое свойство со случайно сгенерированным целым числом и отсортировать их на этой основе, затем выбрать только три и pu sh к началу результатов.

Вопрос: Как добавить условие сортировки, которое будет действовать только для 3 элементов. Таким образом, предложение не повлияет на итоговый порядок документов после того, как оно изменило 3 из них.

Это не может быть перенесено «глобально», так как только добавление флага к трем документам в индексе не будет работать, потому что мы не всегда выбираем документы.

Есть ли способ сделать это вasticsearch без необходимости выполнять несколько запросов?

...