Elasticsearch.Получить количество значений в поле определенного индекса - PullRequest
0 голосов
/ 12 октября 2018

Пытался найти любой метод для получения подсчета значений в определенном поле.Но до сих пор я не нашел подходящего метода в документации Elastic API.

enter image description here

Давайте рассмотрим, у меня есть этот базовый кусок кода:

var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
  host: 'localhost:9200',
  log: 'trace'
});

Мне нужно получить счет из индекса "персоны", поле "dri"

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Следуя приведенному выше примеру и принимая ответ Тарека в качестве отправной точки, я исследовал этот основной запрос, который возвращает именно то, что мне нужно: количество значений в точном поле.

const getFieldCount = (field) => client.count({
            index: 'institutions',
            body: {
                query: {
                    bool: {
                        must:[
                            { "exists": {"field": "library_type_id"} }
                        ],
                    },
                },
            },
        });
0 голосов
/ 13 октября 2018

Это даст вам номер определенного поля в индексе лиц (который будет таким же количеством документов в индексе, если поле существует во всех документах):

 const getFieldCount = (field) => client.search({
    size: 0,
    index: 'persons',
    body: {
      query: { match_all: {} },
      aggs: {
        field_count: {
            value_count: {
            field,
          },
        },
      },
    },
  });

  getFieldCount('dri')
    .then((res) => console.log(res));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...