elasticsearch - Elasticsearch - 根据过滤器/匹配返回唯一值

标签 elasticsearch

PUT items/1
{ "language" : 10,
  "country" : "US" }

PUT items/2
{ "language" : 11,
  "country" : "UK" }

PUT items/3
{ "language" : 10,
  "country" : "US" }

PUT items/4
{ "language" : 12,
  "country" : "US" }

如何编写返回唯一语言的搜索查询,即国家/地区为 US10, 12

要获取所有独特语言的列表,可以使用10,11,12术语聚合。但是,我无法弄清楚如何将国家/地区过滤器包含在其中。

最佳答案

根据用例,实现此目的的一种方法是使用 filter aggregations : 示例:

{
   "size": 0,
   "aggs": {
      "country_us": {
         "filter": {
            "term": {
               "country": "us"
            }
         },
         "aggs": {
            "language": {
               "terms": {
                  "field": "language",
                  "size": 0
               }
            }
         }
      }
   }
}

关于elasticsearch - Elasticsearch - 根据过滤器/匹配返回唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35560544/

相关文章:

python - Elasticsearch-DSL过滤器出现意外结果

python - 从Python使用Elasticsearch API时已删除的文档

ruby-on-rails - 在另一个Rails中使用 Controller 中的方法

elasticsearch - 当使用短语时,elasticsearch查询字符串未执行预期的模糊查询

python - 在 Elasticsearch 中分组并过滤两个日期之间的max(date)

angular - 用Elasticsearch在Angular中搜索

elasticsearch - 无法在Hive外部表中查询日期字段

docker - 如何多次运行 docker-compose 而不会出现端口问题?

elasticsearch - 在 ElasticSearch 中加入查询

elasticsearch - 动态模板支持默认类型吗?