我需要支持使用ElasticSearch作为数据存储的Spring应用程序,我需要按术语提取一些数据过滤,例如
POST http://localhost:1234/library/myType/_search
{
"query": {
"bool": {
"filter": {"term": {"myTextField": "filterValue"}}
}
}
}
问题是Java模型中的字段注释为
@Field(type = FieldType.String)
不喜欢
@Field(type = FieldType.Keyword)
我尝试过谷歌关键字注释,但看起来有一个我无法透露的解决方法。如何注释模型字段以按查询中的术语对其进行过滤?
答案 0 :(得分:4)
在ES 5中添加了keyword
数据类型,因此您无法在spring-data-es 2.0.3中找到它。
您需要将您的字段声明为not_analyzed
,即改为:
@Field(type = FieldType.String, index = FieldIndex.not_analyzed)