如何在单个elasticsearch查询中查询多个方面

时间:2014-12-16 12:32:06

标签: elasticsearch

我正在寻找一种方法来查询单个查询中许多对象字段的前n个值的分布

我在弹性搜索中的对象如下:

obj: {
  os: "Android",
  device_model: "Samsung Galaxy S II (GT-I9100)",
  device_brand: "Samsung",
  os_version: "Android-2.3",
  country: "BR",
  interests: [1,2,3],
  behavioral_segment: ["sport", "lifestyle"]

}

以下查询仅为英国用户带来特定字段值的分布以及此值的出现次数

  curl -XPOST http://<endpoint>/profiles/_search?search_type=count -d '
{
  "query": {
      "match": {
        "country" : "UK"  
    }
 },
 "facets": {
    "ItemsPerCategoryCount": {
      "terms": {
          "field": "behavioral_segment"
      }
  }
  }
}'

如何查询多个字段 - 例如,我想在单个查询中获得behavioral_segment和device_brand和os的结果。有可能吗?

1 个答案:

答案 0 :(得分:1)

在查询的facets部分,您应该使用fields参数。

"facets": {
  "ItemsPerCategoryCount": {
    "terms": {
      "fields": ["behavioral_segment","device_brand"]
    }
  }
}

这应该可以解决您的问题,但当然可能无法保证数据的连贯性