Elasticsearch计算术语忽略案例

时间:2015-07-20 15:28:32

标签: c# elasticsearch lucene aggregation nest

以下是我的汇总。

{
    "size": 0,
    "aggs": {
        "cities": {
            "terms": {
               "field": "city.raw"
           }
    }
}

映射

"properties": {
    "state" : {
      "type": "string",
      "fields": {
        "raw" : {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }

效果很好。但考虑到区分大小写,它将字段分组。

例如。

{
    "key": "New York",
    "doc_count": 45
},
{
    "key": "new york",
    "doc_count": 11
},
{
    "key": "NEW YORK",
    "doc_count": 44
}

我希望结果像这样

{
    "key": "new york",
    "doc_count": 100
}

1 个答案:

答案 0 :(得分:2)

我认为问题在于您使用索引字符串的原始版本

city.raw

您的归档版本没有? 如果您还将该字段的映射放在示例中,那应该很棒。

更新:U应该根据您的需要使用自定义分析器。 tokenizer应该是关键字,过滤器应该是小写的。然后使用此分析器索引数据。然后应该工作。

            "analyzer": {
                "my_analyzer": {
                    "type":         "custom",                       
                    "tokenizer":    "keyword",
                    "filter":       "lowercase"
                }   
            }

一些信息KeyWord AnalyzerCustom Analyzers