elasticsearch 弹性查询中的访问数组,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 弹性查询中的访问数组,elasticsearch,kibana,elasticsearch,Kibana" />

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控制台手动输入查询