json - 根据术语过滤器列表,Elastic Search术语聚合无法正常工作

标签 json elasticsearch

以下是我的查询:

{
  "size" : 0,
  "query" : {
    "bool" : {
      "must" : {
        "match_all" : { }
      },
      "filter" : {
        "bool" : {
          "must" : [ {
            "terms" : {
              "unblindMemberId" : [ "first", "erw", "810182628017", "ewrew", "swer", "rew", "wer", "ewr", "ewr", "r", "r", "dsf", "810218592401", "sd", "s", "last" ]
            }
          }, {
            "bool" : {
              "must" : {
                "exists" : {
                  "field" : "udf7_lab"
                }
              }
            }
          } ]
        }
      }
    }
  },
  "aggregations" : {
    "members" : {
      "terms" : {
        "field" : "unblindMemberId"
      },
      "aggregations" : {
        "top_risk" : {
          "top_hits" : {
            "size" : 1,
            "_source" : {
              "includes" : [ "udf7_lab" ],
              "excludes" : [ "" ]
            },
            "sort" : [ {
              "svc_service_date" : {
                "order" : "desc"
              }
            } ]
          }
        }
      }
    }
  }
}

在上述查询字词中,汇总无法正常运行。
未删除第一个元素(即第一个元素)的数据。但是,当unblindMemberId的最后一个元素被删除时(即)。持续。首先的数据被拉出。
同样,当仅添加第一个和最后一个元素时
即。 unblindMemberId:["first","last"]这两个ID的记录都被提取。

在没有聚合的情况下执行查询时,由于所有unblindMemberIds(包括第一个和最后一个id)都被提取,因此过滤器可以正常工作。

列表中的第一个和最后一个旁边的其他记录也很少被提取。

在我看来,
"aggregations" : {
    "members" : {
      "terms" : {
        "field" : "unblindMemberId"
      }
}

此特定的聚合无法提取所需的记录。我无法确定原因,因为术语聚合的基本功能无法正常工作。非常感谢您的帮助。

最佳答案

问题在于术语聚合。我没有设置size = 0,因为默认情况下,未设置size时仅提取10个数据。因此,我通过添加大小来解决:

"terms": {
        "field": "unblindMemberId",
        "size":0
      }

关于json - 根据术语过滤器列表,Elastic Search术语聚合无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48423966/

相关文章:

JAVA - 从连接 SQL 查询将对象添加到 JSON

javascript - 如何从 HTML 中显示的 json 对象中删除逗号?

javascript - 如何在 XMLhttp Post 请求中传递多个文件值

javascript - 使用带有 javascript api 的 Elasticsearch 插入数组

ruby-on-rails - 如何在Rails 3应用程序中使用Dob日期时间字段搜索age_from至age_to?

php - 在两个不同目录中进行 Elasticsearch

java - JAX-RS 和 Jersey : Properly Nested JSON

javascript - Angular,将 json 发送到 API

elasticsearch - Elasticsearch术语查询到数字 token

node.js - 在多个 expressjs 路由中共享 elasticsearch 客户端