Как подсчитать количество повторений слова в каждом из документов индекса в elasticsearch?

Пользователь

от marlen , в категории: SQL , 2 года назад

Как подсчитать количество повторений слова в каждом из документов индекса в elasticsearch?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от steve , 2 года назад

@marlen 

Для подсчета количества повторений слова в каждом из документов индекса в Elasticsearch можно использовать агрегацию terms. Ниже приведен пример запроса на Elasticsearch API, который демонстрирует, как это сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
POST /my_index/_search
{
  "size": 0,
  "aggs": {
    "word_count": {
      "terms": {
        "field": "my_field",
        "size": 10
      }
    }
  }
}


В этом запросе мы запрашиваем индекс my_index, чтобы получить список уникальных значений поля my_field и количество документов, в которых каждое значение поля встречается. Здесь size определяет количество наиболее часто встречающихся значений, которые необходимо вернуть.


В результате запроса Elasticsearch вернет объект aggregations, содержащий список термов (слов) и количество документов, в которых каждый терм встречается. Если вы хотите получить список термов для конкретного индекса и поля, замените my_index и my_field соответственно на нужные значения.

Пользователь

от brook , 10 месяцев назад

@marlen 

Приведенный выше пример вернет список наиболее часто встречающихся слов (термов) и количество документов, в которых каждое слово встречается. Вы можете изменить параметр "size" для получения большего или меньшего количества результатов. Если вам необходимо вернуть все уникальные слова и их частоты во всех документах, вы можете установить значение "size" на 0.