zoukankan      html  css  js  c++  java
  • es聚合查询失败----set fielddata=true on [**] in order to load field data by uninverting the inverted index

    原始数据如下

    {
      "took" : 1,
      "timed_out" : false,
      "_shards" : {
        "total" : 1,
        "successful" : 1,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : {
          "value" : 8,
          "relation" : "eq"
        },
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "4",
            "_score" : 1.0,
            "_source" : {
              "name" : "nadia",
              "sex" : "gril",
              "age" : 31
            }
          },
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "5",
            "_score" : 1.0,
            "_source" : {
              "name" : "jxx",
              "sex" : "gril",
              "age" : 45,
              "addr" : "北京"
            }
          },
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "7",
            "_score" : 1.0,
            "_source" : {
              "name" : "abb",
              "sex" : "boy",
              "age" : 35,
              "addr" : "南京"
            }
          },
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "8",
            "_score" : 1.0,
            "_source" : {
              "name" : "abb11",
              "sex" : "boy",
              "age" : 36,
              "addr" : "南京"
            }
          },
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "2",
            "_score" : 1.0,
            "_source" : {
              "name" : "木子小僧888666",
              "sex" : "boy",
              "age" : 25,
              "addr" : "白宫"
            }
          },
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "3",
            "_score" : 1.0,
            "_source" : {
              "name" : "特朗普",
              "sex" : "boy",
              "age" : 88,
              "addr" : "白宫"
            }
          },
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "1",
            "_score" : 1.0,
            "_source" : {
              "name" : "木子小僧666999888",
              "sex" : "boy",
              "age" : 30
            }
          },
          {
            "_index" : "customer",
            "_type" : "external",
            "_id" : "dwy-YXcB9G0dRFSpm0LY",
            "_score" : 1.0,
            "_source" : {
              "properties" : {
                "content" : {
                  "type" : "text",
                  "analyzer" : "ik_max_word",
                  "search_analyzer" : "ik_max_word"
                }
              }
            }
          }
        ]
      }
    }
    View Code

    聚合代码如下:

    GET /customer/_search
    {
      "query": {
        "match_all": {}
      }, 
      "aggs": {
        "ageAgg":{
          "terms": {
            "field": "age",
            "size": 10
          }
        }
      }
    }

    会出现以下错误:

    {
      "error" : {
        "root_cause" : [
          {
            "type" : "illegal_argument_exception",
            "reason" : "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [age] in order to load field data by uninverting the inverted index. Note that this can use significant memory."
          }
        ],
        "type" : "search_phase_execution_exception",
        "reason" : "all shards failed",
        "phase" : "query",
        "grouped" : true,
        "failed_shards" : [
          {
            "shard" : 0,
            "index" : "customer",
            "node" : "EzyH308RT0iU4WNgOa2J5Q",
            "reason" : {
              "type" : "illegal_argument_exception",
              "reason" : "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [interests] in order to load field data by uninverting the inverted index. Note that this can use significant memory."
            }
          }
        ],
        "caused_by" : {
          "type" : "illegal_argument_exception",
          "reason" : "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [interests] in order to load field data by uninverting the inverted index. Note that this can use significant memory.",
          "caused_by" : {
            "type" : "illegal_argument_exception",
            "reason" : "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [interests] in order to load field data by uninverting the inverted index. Note that this can use significant memory."
          }
        }
      },
      "status" : 400
    }

    我们需要执行一下

    PUT /customer/_mapping?pretty
    {
      "properties": {
        "age": { 
          "type": "text",
          "fielddata": true
        }
      }
    }

    将fielddata=true

  • 相关阅读:
    Java Web-session介绍
    Java异常-一般异常和运行时异常的区别
    Spring控制Hibernate的缓存机制ehcache
    Hibernate-缓存
    Hibernate-入门教程
    Java算法-hash算法
    Java算法-各种题目总结
    Java算法-堆排序
    Java算法-快速排序
    Java算法-归并排序
  • 原文地址:https://www.cnblogs.com/invban/p/14416221.html
Copyright © 2011-2022 走看看