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