我的索引文档中有一个字段,这是一个句子。我打算在索引中的所有文档中找到唯一句子的值。这个字段是"字符串"现场并进行分析。我尝试了cardinality
聚合,但它给了我一些独特的句子,但不是实际的唯一值。我该如何解决这个问题?
这是我的搜索查询
{
"fields":[
"incident.name"
],
"aggs":{
"unique_vuls":{
"cardinality":{
"field":"incident.name"
}
}
}
}
答案 0 :(得分:1)
更新&答:根据@ AndreiStefan的建议,我将该字段重新映射为multi-field
并重新索引数据。随后,我查询了incident.name.raw
字段,并能够获得索引中的所有唯一句子。
这是映射的片段:
{
"name":{ #incident.name field
"type":"string",
"index":"analyzed",
"fields":{
"raw":{
"type":"string",
"index":"not_analyzed"
}
}
}
}
以下是terms
聚合搜索查询的摘要:
{
"aggs":{
"unique_incidents":{
"terms":{
"field":"incident.name.raw"
}
}
}
}