elasticsearch - 如何在Elastic Search中使用聚合

标签 elasticsearch

我正在使用Elastic Search创建搜索过滤器,并且需要查找“cambio”列的数据库中保存的所有值,而无需重复这些值。

这些值按如下方式保存:“5月手动设置”或“6月手动设置”...。

我创建了此查询以返回所有保存的值:

GET /crawler10/crawler-vehicles10/_search
{
  "size": 0,
  "aggregations": {
    "my_agg": {
      "terms": {
        "field": "cambio"
      }
    }
  }
}

但是,当我运行返回的值时,它们看起来像这样:
   "aggregations": {
      "my_agg": {
         "doc_count_error_upper_bound": 2,
         "sum_other_doc_count": 2613,
         "buckets": [
            {
               "key": "de",
               "doc_count": 2755
            },
            {
               "key": "marchas",
               "doc_count": 2714
            },
            {
               "key": "manual",
               "doc_count": 2222
            },
            {
               "key": "modo",
               "doc_count": 1097
            },
            {
               "key": "5",
               "doc_count": 1071
            },
            {
               "key": "d",
               "doc_count": 1002
            },
            {
               "key": "n",
               "doc_count": 1002
            },
            {
               "key": "automática",
               "doc_count": 935
            },
            {
               "key": "com",
               "doc_count": 919
            },
            {
               "key": "6",
               "doc_count": 698
            }
         ]
      }
   }

最佳答案

聚合基于已保存字段的映射类型。 cambio的字段类型似乎设置为analyzed(默认情况下)。请使用字段not_analyzed的映射cambio创建一个索引。

您可以使用PUT请求创建索引,如下所示(如果您的ES版本小于5),则需要在crawler10索引中重新索引数据。

PUT crawler10/_mapping/
{
  "mappings": {
    "crawler-vehicles10": {
      "properties": {
        "cambio": {
          "type": "string"
          "index": "not_analyzed"

        }
      }
    }
  }
}

对于ES v5或更高版本
PUT crawler10/_mapping/
{
  "mappings": {
    "crawler-vehicles10": {
      "properties": {
        "cambio": {
          "type": "keyword"
        }
      }
    }
  }
}

关于elasticsearch - 如何在Elastic Search中使用聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41617749/

相关文章:

java - 使用高级搜索运算符使用 Restful API 向搜索引擎发送查询

elasticsearch - 带有term和function_score,parsing_exception的Elasticsearch has_child查询

elasticsearch 2.0 父子孙子

elasticsearch - JSON 批量导入到 Elasticsearch

Java Elasticsearch - 具有存在条件的 Boolquery

java - Elasticsearch7.3 中 SpringBoot 出现 NoClassDefFoundError 异常

apache-spark - 使用PySpark将数据从HDFS索引到Elastic Search

c# - ElasticSearch在多个字段上完全匹配

c# - 从 NEST 调度 Update() 到 Elasticsearch.NET 失败

elasticsearch - hive 的不重复计数与 Elasticsearch 的基数不匹配