我有一个聚合字段的以下映射:
"language" : {
"type" : "string",
"index": "analyzed",
"analyzer" : "standard"
}
此属性中的示例文档的值可能如下所示:“en zh_CN”
除聚合外,此属性没有其他用途 . 我注意到当我在此属性上获得聚合结果时:
{
"query": {
"filtered" : {
"query": {
"match_all": {}
},
"filter" : {
...
}
}
},
"aggregations": {
"facets": {
"terms": {
"field": "language"
}
}
}
}
存储桶密钥值为小写 .
"aggregations" : {
"facets" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [ {
"key" : "zh_cn",
"doc_count" : 2
}, {
"key" : "en",
"doc_count" : 1
} ]
}
}
如何在不让ES降低其值的情况下实现我的聚合目标 . 我觉得我可能需要更改此属性的映射,但不确定如何 .
感谢致敬 .
1 回答
请在映射中尝试此操作:
每个文档的该字段中的文本将被使用,未经修改,以创建令牌,这些令牌将由您的术语聚合返回 . 对于您提供的示例值,聚合将逐字返回:
如果您仍希望在空格上对文本进行标记,则可以尝试在映射中使用whitespace analyzer:
然后你的聚合将返回:
这是我用来测试这两个例子的代码:
http://sense.qbox.io/gist/a7b3c7d50c7012537c50d576d03940b28b5f8793