使用聚合函数忽略弹性搜索中记录中的空格

时间:2018-01-07 15:56:50

标签: elasticsearch

我在elasticsearch中有一个字段名称为" smartaccountname"。它包含空格。在执行聚合函数(如术语,基数)时,它不会将整个字符串视为单个字符串。它将字符串拆分为两个。 例如, 的基数

"aggregations": {
"1": {
"value": 2
}

应该是1.

术语

    "aggregations": {
"1": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "FIRE",
"doc_count": 2
}
,
{
"key": "DEVICES",
"doc_count": 2
}
]
}
}

它应该是FIRE DEVICES:2

字段结构

 **smartaccountname**
    FIRE DEVICES
    FIRE DEVICES

1 个答案:

答案 0 :(得分:0)

根据该字段的映射,您需要更改它并向其添加子字段,或者使用已存在的子字段。

基本上,您对该字段的映射应与此类似:

      "smartaccountname": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }

然后,在您的汇总中,您应该使用smartaccountname.keyword字段:

        "cardinality" : {
            "field" : "smartaccountname.keyword"
        }