Spring弹性搜索自定义字段名称

Vso*_*oma 9 elasticsearch spring-data spring-data-elasticsearch

我是Elastic Search的新手,我正在尝试使用Spring-data-elasticsearch实现它.

我的弹性搜索文档中包含名称为"Transportation","Telephone_Number"的字段.

当我尝试将@Domain对象字段映射到那些时,我没有得到任何数据,因为我无法成功映射这些字段.

试图使用@Field,很失望,因为它没有'name'属性来映射自定义字段名称.

尝试了GETTER函数的不同变体,这些变量似乎都没有映射到那些字段.

我开始想知道这里是否有我遗漏的东西.域对象字段如何映射到一个名为"Transportation"的字段?

任何帮助赞赏

Efr*_*ama 12

您可以使用自定义名称.Spring Data ES使用Jackson.因此,您可以使用@JsonProperty("your_custom_name")在ES Mapping中启用自定义名称

例如:

@Document(indexName = "your_index_name", type = "your_type_name")
public class YourEntity {
   ....
   @JsonProperty("my_transportation")
   @Field(type = FieldType.String, searchAnalyzer = "standard", indexAnalyzer = "standard", store = true) // just for example
   private String myTransportation;
   ....
}
Run Code Online (Sandbox Code Playgroud)

注意:无论如何,我很抱歉,我的英语很糟糕......:D

  • 一旦@JsonProperty的值与POJO中的字段名称不同,则“存储库”查询将不起作用...:/ (2认同)