Случайные документы из Elasti c Search 7.6.2 - Предупреждение об устаревании - PullRequest
0 голосов
/ 27 мая 2020

Попытка получить 6 случайных записей, которые показывают результаты, но выдают предупреждение об устаревании в 7.6.2

Ниже приведен запрос

GET audio,video/_search
{
  "_source": [
    "id",
    "title"
  ],
  "size": 6,
  "query": {
    "function_score": {
      "query": {
        "match_all": {}
      },
      "random_score": {
        "seed": 1376773391128418000
      }
    }
  }
}

Ниже приведено предупреждающее сообщение от кибаны.

! Устарело: Начиная с версии 7.0 Elasticsearch требует, чтобы параметр [field] был предоставлен, если задано [seed]

! Устарело: загрузка fielddata в поле _id устарела и будет удалена в будущих версиях. Если вам требуется сортировка или агрегирование в этом поле, вы также должны включить идентификатор в текст ваших документов и сопоставить это поле с полем ключевого слова, для которого включен [doc_values]

введите описание изображения здесь

1 Ответ

0 голосов
/ 28 мая 2020

Начиная с 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
      }
    }
  }
}
...