Начиная с Elasticsearch 7.0, требуется предоставить поле, которое может добавить уникальность сгенерированному случайному начальному значению. Если мы не указываем какое-либо поле, по умолчанию используется поле _id, но для этого требуется загрузка данных поля. Поскольку fielddata считается интенсивно использующей память, рекомендуется использовать любое другое поле из тела документа вместо поля _id при использовании random_score (поле, подобное seq_no, как указано в документации elasti c)
Как упоминалось для По указанной выше причине (интенсивное использование памяти) не рекомендуется использовать _id для сортировки или агрегации, и те же данные могут быть добавлены в текст документа в качестве поля ключевого слова. Как правило, лучше избегать сортировки или агрегирования текстовых полей, поскольку они используют данные полей в этих полях.
Эти запросы по-прежнему разрешены только для обратной совместимости, и лучше обновить ваш код, поскольку они будут удалены в будущих выпусках .
Подробнее: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html
ОБНОВЛЕНИЕ Случайный результат с использованием поля.
GET audio,video/_search
{
"_source": [
"id",
"title"
],
"size": 6,
"query": {
"function_score": {
"query": {
"match_all": {}
},
"random_score": {
"seed": 1376773391128418000,
"field": id
}
}
}
}