我当前的聚合查询:
{
"size": 0,
"query": {
"match_all": {}
},
"aggregations": {
"publication_type": {
"terms": {
"field": "publication_type.name"
}
}
}
}
这将返回三个单独的术语:“年度”,“每周”和“报告”。
实际上,这些只有两个术语:“每周报告”和“年度报告”。
如何让ElasticSearch(使用1.1)返回完整的单词而不是单独的单词?
答案 0 :(得分:5)
默认情况下,如果未提供显式映射,则会分析所有字段。您必须使用新映射重新索引整个数据。 “名称”字段必须是未分析的,或者您可以添加“关键字”标记生成器。
示例:
"name" : {"type" : "string", "index" : "not_analyzed"}
如果您想要保留已分析的名称字段,您可以进行多字段映射,如下所示。
"name":{
"type":"string",
"fields":{
"name_raw":{
"type":"string",
"index" : "not_analyzed"
}
}
}
现在您可以在聚合查询中使用“publication_type.name_raw”。