2015-03-03 22 views
5

CRUD işlemlerini gerçekleştirmek için Spring Data ElasticSearch kullanıyorum. Varsayılan olarak, @Document ile bir POJO açıklamalı bir ElasticSearch dizinine yazıldığında, dizin alanı adları POJO'nun Java özellik adları ile aynıdır. Dizin alanı adlarının farklı olmasını nasıl yapılandırabilirim? Bu Belge POJO ile Örneğin :Yay verileri kullanılarak POJO için ElasticSearch dizin alanı adları nasıl tanımlanır ElasticSearch

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

    @Id 
    private String id; 
    private String countyName; 
    private String postOfficeName; 
    private String stateName; 

nasıl ElasticSearch dizin alan COUNTY_NAME yerine countyName olarak tefrika olur böylece bu yapılandırabilirsiniz ?

+1

@Document açıklamalı POJO'ya Jackson's @JsonProperty ("county_name") ekleyerek bir geçici çözüm buldum, ancak Spring Data'nın DSL findBy ... işleminin gücüne güvenmenin dezavantajı var. camelCased Java özellik adları. –

+0

http://stackoverflow.com/questions/33537229/spring-elastic-search-custom-field-names – Javaru

cevap

0

@Field ek açıklamasının özelliklerini kullanmanız gerektiğini düşünüyorum, bundan neredeyse eminim. Lütfen bkz. here.

İlkbahar-veri-elasticsearch olarak
+0

adresinde '@ JspnProperty' kullanımıyla ilgili daha fazla ayrıntı, alan adıyla ilgili hiçbir şey bulamıyorum – fizmax

1

json belgeye POJOs dönüştürmek için fasterxml modülünü kullanan, sadece

@JsonProperty("country_name") 
private String countryName 

elasticsearch endeksinde farklı bir alan adı başarmak için kullanabilirsiniz.