我希望从汽车中获得不同的make值,并且make值应按升序排列不区分大小写 . 我使用的是elasticsearch版本2.4.4

颜色和制作字段的映射

"color": {
        "type": "string",
        "fields": {
          "keyword": {
            "type": "string",
            "index": "not_analyzed"
          },
          "lcsort": {
            "type": "string",
            "analyzer": "case_insensitive_sort"
          }
        }
      },
      "make": {
        "type": "string",
        "fields": {
          "keyword": {
            "type": "string",
            "index": "not_analyzed"
          },
          "lcsort": {
            "type": "string",
            "analyzer": "case_insensitive_sort"
          }
        }
      }

我在case_insensitive_sort分析器上的设置

"analysis": {
      "analyzer": {
        "case_insensitive_sort": {
          "filter": [
            "lowercase"
          ],
          "tokenizer": "keyword"
        }
      }
    }

查询1

{
"size" : 0,
"query" : {
    "bool" : {
        "must" : {
            "match" : {
                "color" : "red"
            }
        }
    }
},
"aggs" : {
    "distinct_makes" : {
        "terms" : {
            "size" : 20,
            "field" : "make.keyword",
            "order" : {
                "_term" : "asc"
            }
        }
    }
  }
}

结果我来自查询1

"buckets": [
    {
      "key": "Audi",
      "doc_count": 1
    },
    {
      "key": "BMW",
      "doc_count": 1
    },
    {
      "key": "Ferrari",
      "doc_count": 1
    },
    {
      "key": "Honda",
      "doc_count": 1
    },
    {
      "key": "Hyundai",
      "doc_count": 1
    },
    {
      "key": "Lexus",
      "doc_count": 1
    },
    {
      "key": "acura",
      "doc_count": 1
    },
    {
      "key": "bentley",
      "doc_count": 1
    }
  ]

我将查询更改为使用make.lcsort字段

{
"size" : 0,
"query" : {
    "bool" : {
        "must" : {
            "match" : {
                "color" : "red"
            }
        }
    }
},
"aggs" : {
    "distinct_makes" : {
        "terms" : {
            "size" : 10000,
            "field" : "make.lcsort",
            "order" : {
                "_term" : "asc"
            }
        }
    }
}

}

我让所有桶都排序正确但所有键都变成小写

"buckets": [
    {
      "key": "acura",
      "doc_count": 1
    },
    {
      "key": "audi",
      "doc_count": 1
    },
    {
      "key": "bentley",
      "doc_count": 1
    },
    {
      "key": "bmw",
      "doc_count": 1
    },
    {
      "key": "ferrari",
      "doc_count": 1
    },
    {
      "key": "honda",
      "doc_count": 1
    },
    {
      "key": "hyundai",
      "doc_count": 1
    },
    {
      "key": "lexus",
      "doc_count": 1
    }
  ]

我的预期结果将是

"buckets": [
    {
      "key": "acura",
      "doc_count": 1
    },
    {
      "key": "Audi",
      "doc_count": 1
    },
    {
      "key": "bentley",
      "doc_count": 1
    },{
"key": "BMW",
      "doc_count": 1
    }
    {
      "key": "Ferrari",
      "doc_count": 1
    },
    {
      "key": "Honda",
      "doc_count": 1
    },
    {
      "key": "Hyundai",
      "doc_count": 1
    },
    {
      "key": "Lexus",
      "doc_count": 1
    }
  ]

术语聚合是否有可能返回索引数据的情况,并以案例激励的方式对它们进行排序?