2015-06-16 44 views
5

我有一個嵌套文檔的文檔,我想定義模式爲Solr。我一直在閱讀文檔,但我不知道如何用嵌套文檔定義schema.xml。Solr,如何在schema.xml中定義嵌套文檔

當我嘗試使用addBean索引文檔時,出現錯誤,因爲我在模式中沒有字段obj1,我不知道如何定義它。

我使用的是帶有@Field註釋的java對象。

public class ObjToIndex { 
    @Field 
    String id; 

    @Field 
    String name; 

    @Field 
    ObjToIndex2 obj1; 

public class ObjToIndex2 { 
    @Field 
    String id; 
    @Field 
    String lastName; 

我不知道如何在架構中定義一個字段obj1型「對象」或類似的東西。

回答

-1

纔能有嵌套的對象,請使用@Field(孩子=真)

public class SolrBeanWithNested{ 

@Field 
private String id; 

@Field(child = true) 
private MyNestedOject nested; 

} 

可用,因爲Solr的5.1 見票:solr child

+0

您能否爲此包含必需的schema.xml組件?我認爲這是提問者所要求的 – adam

-1

我相信這是正確的:

How to write nested schema.xml in solr?

「爲什麼」的一些邏輯被描述爲here但基本的概念是,「孩子」文檔實際上是在同一模式中更「相關」或「連接」的文檔。它們可能包含不同的字段,但實際上,它們只是添加到總體模式中字段的超集。