Допустим, например, у меня есть индекс «книги», и у каждой книги есть author_id.Поскольку авторов всего несколько, идентификаторы авторов будут часто повторяться по всем книгам.Книги в моем указателе выглядят примерно так:
{
"title": "Elasticsearch for dummies",
"author_id": 1,
"purchases": 10
},
{
"title": "Great book",
"author_id": 1,
"purchases": 5
},
{
"title": "Great book 2",
"author_id": 1,
"purchases": 8
},
{
"title": "My cool book",
"author_id": 2,
"purchases": 14
},
{
"title": "Interesting book title",
"author_id": 2,
"purchases": 20
},
{
"title": "amazing book",
"author_id": 2,
"purchases": 16
},
{
"title": "Silly Walks vol II",
"author_id": 3,
"purchases": 13
},
{
"title": "Wild animals you can pet",
"author_id": 3,
"purchases": 5
},
{
"title": "GoT Spoilers",
"author_id": 3,
"purchases": 4
}
Представьте, что есть тысячи книг и всего 50 авторов.Если я сортирую только по покупкам, я получу страницу результатов, на которой показаны книги только одного или двух авторов.Мне нужно, чтобы в результатах было представлено как можно больше авторов.Есть ли какая-нибудь комбинация function_score + script_score, которую я могу использовать для достижения этой цели?Я попытался поэкспериментировать с Math.exp в безболезненном сценарии, но безрезультатно.