如何在Spring中将ElasticSearch模型字段标记为KeyWord类型?

时间:2017-07-14 12:38:02

标签: java spring elasticsearch spring-data-elasticsearch

我需要支持使用ElasticSearch作为数据存储的Spring应用程序,我需要按术语提取一些数据过滤,例如

POST http://localhost:1234/library/myType/_search
{
   "query": {
        "bool": {           
           "filter": {"term": {"myTextField": "filterValue"}}           
        }        
    }  
}

问题是Java模型中的字段注释为

@Field(type = FieldType.String)

不喜欢

@Field(type = FieldType.Keyword)

我尝试过谷歌关键字注释,但看起来有一个我无法透露的解决方法。如何注释模型字段以按查询中的术语对其进行过滤?

1 个答案:

答案 0 :(得分:4)

在ES 5中添加了keyword数据类型,因此您无法在spring-data-es 2.0.3中找到它。

您需要将您的字段声明为not_analyzed,即改为:

@Field(type = FieldType.String, index = FieldIndex.not_analyzed)