我需要支持一个使用 ElasticSearch 作为数据存储的 Spring 应用程序,我需要按术语提取一些数据过滤,比如
POST http://localhost:1234/library/myType/_search
{
"query": {
"bool": {
"filter": {"term": {"myTextField": "filterValue"}}
}
}
}
问题是 Java 模型中的字段被注释为
@Field(type = FieldType.String)
不喜欢
@Field(type = FieldType.Keyword)
我试过谷歌关键字注释,但看起来有一个我无法透露的解决方法。如何注释模型字段以按查询中的术语对其进行过滤?
该keyword
数据类型是在ES 5中添加,这样你就不会在弹簧数据-ES 2.0.3找到它。
您需要将您的字段声明为not_analyzed
,即像这样:
@Field(type = FieldType.String, index = FieldIndex.not_analyzed)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句