2016-09-30 11 views
1

私はバネデータSOLRとSOLRの新機能ですので、いくつかの愚かな新人質問を許してください。バネデータソルラーを含むネストされたドキュメント

現在、私は私がすることができるよJavaの8と一緒に

を春ブート1.4.1.RELEASEアプリケーション、春・データのSolr 2.0.3.RELEASEとSolrの-solrj 5.5.3を作成していますデータをローカルのSOLRインスタンスに入れますが、SOLRのデータは期待したとおりには見えません。おそらく間違っていると思いますか?

私のデータは次のようになります。

public class Retailer{ 
    /** 
    * The number of the retailer, unique identifier 
    */ 
    @Id 
    @Indexed 
    @Field 
    @NotBlank(message = ValidationConstants.ERROR_MISSING_SAP_RETAILER_NUMBER) 
    @Column(unique = true) 
    private String sapRetailerNumber; // NOSONAR 

    /** 
    * The company name of the retailer. 
    */ 
    @Field 
    @Indexed 
    @NotBlank(message = ValidationConstants.ERROR_VALIDATION_MISSING_NAME) 
    private String name; // NOSONAR 

    @Field(child=true, value="retailerContact") 
    @Indexed 
    @NotNull(message = ValidationConstants.ERROR_VALIDATION_MISSING_CONTACTINFO) 
    @Valid 
    private Contact contact; 

    @Field(child=true, value="retailerAddress") 
    @Indexed 
    @NotNull(message = ValidationConstants.ERROR_VALIDATION_MISSING_ADDRESS) 
    @Valid 
    private Address address; 
} 

クラスの連絡先:

public class Contact { 
    @Field 
    @Indexed 
    @NotBlank(message = ValidationConstants.ERROR_VALIDATION_MISSING_EMAIL) 
    @Email(message = ValidationConstants.ERROR_VALIDATION_INVALID_EMAIL, regexp = ValidationConstants.EXPRESSION_RFC5322_MAIL) 
    private String email; // NOSONAR 

    @Field 
    @Indexed 
    @NotBlank(message = ValidationConstants.ERROR_VALIDATION_MISSING_HOMEPAGE) 
    private String homepage; // NOSONAR 

    @Field 
    @Indexed 
    private String phone; // NOSONAR 

    @Field 
    @Indexed 
    private String fax; // NOSONAR 
} 

クラスアドレスが連絡先に似ています。私が期待したのはSOLRで構造化されたデータを持つことですが、オブジェクトのContactとAddressは平坦化されています。私の知る限りでは、構造化されたデータをサポートしてネストされた文書と呼ばれる機能があります発見し、私は、注釈に

@Field(child=true, value="retailerContact") 

を与えることによって、この機能を有効にすることを望んだが、残念ながら、これは何も変更しませんでした。

ネストされたドキュメントを使用したスプリングデータSOLRの例がありますか?スプリングデータSOLRのホームページにリンクされている例では、この機能は使用されていないようです。

何かヒントありがとうございます、事前に感謝します!

答えて

0

デフォルトのMappingSolrConverterは、まだネストされたドキュメントをサポートしていません。ただし、ネイティブマッピングを使用するSolrJConverterに切り替えることはできます。

@Bean 
public SolrTemplate solrTemplate(SolrClient client) { 

    SolrTemplate template = new SolrTemplate(client); 
    template.setSolrConverter(new SolrJConverter()); 
    return template; 
} 
+0

残念ながら、SolrJConverterはトリックをしませんでした。あなたのコードスニペットをテスト構成に追加しましたが、データがsolrに入れられる方法は変わりません。私はテンプレートとして使用できる完全に機能的なデモアプリケーションのどこかにありますか?ちょうど私が誤った構成をしていないことを保証するためです。 – flexguse

関連する問題