elasticsearch 弹性查询中的访问数组
我有包含数组的文档,有时有重复的
elasticsearch 弹性查询中的访问数组,
elasticsearch,kibana,
elasticsearch,Kibana,我有包含数组的文档,有时有重复的 { "_index" : "indexx_v1-2020.11", "_type" : "x-logs", "_id" : "wZ_p_XUBV4a6COay8wWzJ", "_score" : 10.089222, "_sour
{
"_index" : "indexx_v1-2020.11",
"_type" : "x-logs",
"_id" : "wZ_p_XUBV4a6COay8wWzJ",
"_score" : 10.089222,
"_source" : {
"actiontype" : "doit",
"geoip" : {
// geographic data
},
"data" : {
"field" : [
"foo",
"bar",
"foo",
"bar"
],
},
"@version" : "1",
"header" : {
"product" : "our_product",
"processGUID" : "6528",
}
}
},
{
"_index" : "indexx_v1-2020.11",
"_type" : "x-logs",
"_id" : "xJq-_XVWV3f6COaXnRqx",
"_score" : 9.089443,
"_source" : {
"actiontype" : "doit",
"geoip" : {
// geographic data
},
"data" : {
"field" : [
"foo",
"bar"
],
},
"@version" : "1",
"header" : {
"product" : "our_product",
"processGUID" : "3456",
}
}
},
如果我使用带有文档语法的无痛脚本访问这些字段,则会删除重复项:
所以
doc['data.field'].length
两个文档都返回2
这使我无法使用脚本进行筛选,因为此表达式永远不会为真
"script": {
"script" : {
"inline": """
return doc['data.field'].length > 2 &&
doc['data.field'][2] == 'foo' &&
doc['data.field'][3] == 'bar';
}
}
提示新手筛选这些不同的文档或构建聚合以将这些文档计算为变量
foo/bar : 1 document
foo/bar/foo/bar : 1 document
谢谢您希望得到什么?display.elastic.co上的文章有帮助吗?>您希望得到什么?我想汇总这两个示例文档,并将其作为不同的实体处理。我找不到一种方法来分别过滤它们。我已经看到了@tomr链接的artitle,但我无法通过Problem将其传输到。您是否控制摄取管道?如果是,请说明it@tomr-事实上,我甚至不知道那条管道。我只使用Kibana控制台手动输入查询