2016-09-30 5 views
1

Ich bin sehr neu in den Quelldaten SOLR und SOLR, also verzeiht mir bitte ein paar blöde Anfänger-Fragen.Verschachtelte Dokumente mit Feder-Daten-Solr

Zeit zu schaffen Ich bin eine Feder-Boot-1.4.1.RELEASE Anwendung, feder Daten solr 2.0.3.RELEASE und solr-solrj 5.5.3 zusammen mit Java 8.

Ich bin in der Lage zu Stellen Sie Daten in eine lokale SOLR-Instanz, aber die Daten in SOLR sehen nicht so aus, wie ich es erwartet habe - vielleicht erwarte ich ein falsches Ergebnis?

Meine Daten sieht wie folgt aus:

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; 
} 

Klasse Kontakt:

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 
} 

Die Klasse Adresse ähnelt Kontakt. Was ich erwartet habe, ist strukturierte Daten in SOLR, aber die Objekte Kontakt und Adresse sind abgeflacht. Was fand ich es eine Funktion Verschachtelte Dokumente, die strukturierte Daten unterstützt und ich hoffte, zu aktivieren diese Funktion, indem sie die Anmerkung

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

aber leider hat das nicht ändern etwas genannt wird.

Gibt es irgendwo ein SOLDR-Beispiel für Federdaten mit verschachtelten Dokumenten? Das Beispiel, das in der Frühjahrsdaten-SOLR-Homepage verlinkt ist, scheint diese Funktion nicht zu verwenden.

Jeder Hinweis wird geschätzt, danke im Voraus!

Antwort

0

Die Standardeinstellung MappingSolrConverter unterstützt noch keine verschachtelten Dokumente. Sie können jedoch zu SolrJConverter wechseln, das das native Mapping verwendet.

@Bean 
public SolrTemplate solrTemplate(SolrClient client) { 

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

Leider hat der SolrJConverter den Trick nicht gemacht. Ich habe das Code-Snippet zu meiner Testkonfiguration hinzugefügt, aber an der Art und Weise, wie die Daten in solr gespeichert werden, hat sich nichts geändert. Ist irgendwo eine voll funktionsfähige Demo-Anwendung, die ich als Vorlage verwenden kann? Nur um sicherzustellen, dass ich keine Fehlkonfiguration vorgenommen habe. – flexguse

Verwandte Themen