我使用的是elasticsearch-java version 8.10.4而不是spring-data-elasticsearch。在我的elasticsearch索引中,字段是下划线单词,如“user_id”。但在我的Java Object中,它是“userId”。当我获得SearchResponse时,“userId”的值为null,因为所有的camel-case属性都是空的。但简单的属性,如“id”,“model”,它工作得很好。我如何解决它?
elasticsearch的版本是8.10.4。我尝试使用ElasticsearchRestTemplate,不幸的是我失败了。因为jdk版本不兼容,我的jdk版本是1.8; elasticsearch 8的ElasticsearchRestTemplate需要jdk 17。我不能更改jdk版本。
1条答案
按热度按时间fd3cxomn1#
在您指定的场景中,Elasticsearch中的字段被称为“user_id”,而在java类中,它具有名为“userId”的字段,这将产生一个问题
尝试使用以下命令将字段Map到Java类的属性
@Field(name =“user_id”,type = FieldType.Keyword)private String userId;