如何使用Spring Data ElasticSearch为POJO定义ElasticSearch索引字段名称

Fab*_*ens 7 elasticsearch spring-data spring-data-elasticsearch

我正在使用Spring Data ElasticSearch来执行CRUD操作.默认情况下,当使用@Document注释的POJO写入ElasticSearch索引时,索引字段名称与POJO的Java属性名称相同.如何配置索引字段名称不同?例如,使用此文档POJO:

@Document(indexName = "areas", type = "area")
public class Area {

    @Id
    private String id;
    private String countyName;
    private String postOfficeName;
    private String stateName;
Run Code Online (Sandbox Code Playgroud)

我如何配置它,以便ElasticSearch中的索引字段被序列化为county_name而不是countyName?

and*_*Pat -2

我认为你必须使用@Field注释的属性,我几乎可以肯定这一点。请参阅此处

从文档来看:

@Field:应用于字段级别,定义字段的属性,大部分属性映射到各自的Elasticsearch Mapping定义(以下列表不完整,完整参考请查看注释Javadoc):

name:将在 Elasticsearch 文档中表示的字段名称,如果未设置,则使用 Java 字段名称。

type:字段类型,可以是 Text、Keyword、Long、Integer、Short、Byte、Double、Float、Half_Float、Scaled_Float、Date、Date_Nanos、Boolean、Binary、Integer_Range、Float_Range、Long_Range、Double_Range、Date_Range、Ip_Range 之一对象、嵌套、Ip、TokenCount、Percolator、扁平化、Search_As_You_Type。请参阅 Elasticsearch 映射类型

日期类型的格式和模式定义。必须为日期类型定义格式。

store:标志原始字段值是否应该存储在Elasticsearch中,默认值为false。

分析器、搜索分析器、标准化器,用于指定自定义分析器和标准化器。