试图找到任何方法来检索特定字段中值的计数。但是到目前为止,我在Elastic API文档中找不到合适的方法。
让我们考虑一下这段基本代码:
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
host: 'localhost:9200',
log: 'trace'
});
我需要从“人”索引字段“ dri”中获取计数
答案 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"} }
],
},
},
},
});