Elasticsearch。获取特定索引字段中的值计数

时间:2018-10-12 19:46:47

标签: elasticsearch

试图找到任何方法来检索特定字段中值的计数。但是到目前为止,我在Elastic API文档中找不到合适的方法。

enter image description here

让我们考虑一下这段基本代码:

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

我需要从“人”索引字段“ dri”中获取计数

2 个答案:

答案 0 :(得分:1)

这将为您提供人员索引中某个字段的编号(如果该字段存在于所有文档中,则将与索引中的文档数量相同):

 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));

答案 1 :(得分:1)

按照上面的示例,以塔雷克(Tarek)的答案为起点,我研究了此正文查询,该查询准确返回了我需要的内容:确切字段中的值计数。

const getFieldCount = (field) => client.count({
            index: 'institutions',
            body: {
                query: {
                    bool: {
                        must:[
                            { "exists": {"field": "library_type_id"} }
                        ],
                    },
                },
            },
        });