我很难将用于 flex 搜索的aggregation query转换为elastic.js.,但我正在阅读文档,但我无法弄清楚。而且您可以在网上找到的示例主要是关于已弃用的构面功能的信息,这并不是很有用。
聚合示例的JSON如下所示:

{
  "aggs": {
    "foo": {
      "filter": {
        "bool": {
          "must": [
            {
              "query": {
                "query_string": {
                  "query": "*"
                }
              }
            },
            {
              "terms": {
                "shape": [
                  "wc"
                ]
              }
            }
          ]
        }
      },
      "aggs": {
        "field": {
          "terms": {
            "field": "shape",
            "size": 10,
            "exclude": {
              "pattern": []
            }
          }
        }
      }
    }
  },
  "size": 0
}

最佳答案

这是将terms aggregationfilter aggregation嵌套到elasticjs中的方式

ejs.Request()
    .size(0)
    .agg(ejs.FilterAggregation("foo").filter(ejs.BoolFilter()
            .must(ejs.TermsFilter('shape', 'wc'))
            .must(ejs.QueryFilter(ejs.QueryStringQuery().query("*"))))
              .agg(ejs.TermsAggregation("field").field("shape").size(10).exclude("my_pattern"))
        )

顺便说一句,您正在过滤shape,然后对其进行aggregations。我不确定您到底在尝试什么。

我发现他们的documentation很好,而且他们还有一个很棒的tool来检查您的查询是否正确。这将对您有很大帮助

希望这可以帮助!!

关于javascript - Elastic.js中的Elasticsearch聚合查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34548818/

10-17 01:01