如何在spring中将elasticsearch模型字段标记为关键字类型?

k97glaaz  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(326)

我需要支持一个使用elasticsearch作为数据存储的spring应用程序,并且我需要提取一些按术语过滤的数据,比如

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

问题是java模型中的字段注解如下

@Field(type = FieldType.String)

不像

@Field(type = FieldType.Keyword)

我试过谷歌关键字注解,但似乎有一个解决办法,我不能透露。如何注解模型字段,以便在查询中按术语对其进行过滤?

6gpjuf90

6gpjuf901#

这个 keyword 数据类型是在es5中添加的,所以在springdataes2.0.3中找不到它。
您需要将字段声明为 not_analyzed ,即改为这样:

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

相关问题