如何阻止elasticsearch的分词?

1.某个字段型如:field: "aaa-bbb".
2.我已经设置了map,这个字段映射为不分词not_analyzed,并且重新导入了数据。
3.但是在聚合的时候(terms),仍然把这个字段分词为两个部分aaa和bbb。
4.我应该怎么做才能阻止被'-'分隔的字段分词呢。我需要完整的aaa-bbb?求救。

阅读 10.1k
1 个回答

在logstash设置映射的模板:

  "your_field": {
  "type": "text",
  "fielddata": true,
  "fields": {
    "raw": {
      "type": "keyword",
      "index": "not_analyzed"
    }
  }
}

这里给your_field字段设置了一个.raw
在聚合的时候:

java:
  AggregationBuilders.terms("aggName").field("your_field.raw")

这个.raw相当于muti_filed.是一个完全不会分词的属性。应用它实现聚合就完全避免了分词。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进