Spring 弹性搜索自定义字段名称
Spring Elastic Search Custom Field names
我是 Elastic Search 的新手,我正在尝试使用 Spring-data-elasticsearch 来实现它。
我的弹性搜索文档中有名称为 "Transportation"、"Telephone_Number" 的字段。
当我尝试将我的@Domain 对象字段与这些字段映射时,我没有获得任何数据,因为我无法成功映射这些字段。
尝试使用@Field,很失望,因为它没有 'name' 属性 来映射自定义字段名称。
尝试了 GETTER 函数的不同变体,其中 none 似乎映射到那些字段。
我开始怀疑我是否遗漏了什么。
域对象字段应该如何映射到名为 "Transportation" 的字段?
感谢任何帮助
您可以使用自定义名称。 Spring Data ES 使用 Jackson。因此,您可以使用 @JsonProperty("your_custom_name")
在 ES 映射中启用自定义名称
例如:
@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;
....
}
注意:无论如何,我很抱歉,我的英语不好..:D
我是 Elastic Search 的新手,我正在尝试使用 Spring-data-elasticsearch 来实现它。
我的弹性搜索文档中有名称为 "Transportation"、"Telephone_Number" 的字段。
当我尝试将我的@Domain 对象字段与这些字段映射时,我没有获得任何数据,因为我无法成功映射这些字段。
尝试使用@Field,很失望,因为它没有 'name' 属性 来映射自定义字段名称。
尝试了 GETTER 函数的不同变体,其中 none 似乎映射到那些字段。
我开始怀疑我是否遗漏了什么。 域对象字段应该如何映射到名为 "Transportation" 的字段?
感谢任何帮助
您可以使用自定义名称。 Spring Data ES 使用 Jackson。因此,您可以使用 @JsonProperty("your_custom_name")
在 ES 映射中启用自定义名称
例如:
@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;
....
}
注意:无论如何,我很抱歉,我的英语不好..:D