gpt4 book ai didi

node.js - 具有过滤器和聚合的 Elastic Search 查询不返回聚合

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:30 25 4
gpt4 key购买 nike

我正在使用node.js sdk 运行elasticsearch 查询,该查询在所有字段中搜索某些文本,然后将结果过滤为子集,然后根据自定义索引进行聚合。

我查看了 es 文档和几个涉及过滤器和聚合的堆栈溢出问题,以确保我的查询语法正确,并且在运行查询时没有看到语法错误。我的查询命中数据集中的 2000 多个文档,但响应对象不包含聚合。

var search_text = "Chase Bank";
var doctype_selections = ["mortgage"];

es.search({
index: index_list,
type: 'page',
body: {
query: {
filtered: {
query: {
match: {
_all: {
"query": search_text,
"operator": "and"
}
},
filter: {
terms: {
document_type: doctype_selections
}
}
}
}
},
aggs: {
"top_tag_hits":{
terms: {
field: "agg_index",
size: agg_size
},
aggs: {
"hits":{
top_hits: {
size: agg_size
}
}
}
}
},
},
explain: true,
size: result_size,
}).then(function (resp) {
var hits = resp.hits.hits;
var aggs = resp.aggregations;
console.log(resp);
response.send(aggs);
}, function (err) {
console.trace(err.message);
response.send(err.message);
});

据我了解,es 中正确的操作顺序是查询->过滤查询->过滤查询的聚合。如果删除过滤器和聚合,查询本身将按预期工作。如果我删除过滤器,但保留聚合和查询,它将起作用并返回聚合。如果我删除聚合并保留过滤器,它也会按预期工作。

似乎查询的整个聚合部分都被忽略了。有什么问题吗?

最佳答案

关于node.js - 具有过滤器和聚合的 Elastic Search 查询不返回聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com