2016-11-28 140 views
1

使用諦我想使用SOLR 6.x的配置嵌套實體SOLR

我讀創建DIH嵌套實體 Defining nested entities in Solr Data Import Handler

和JIRA https://issues.apache.org/jira/browse/SOLR-5147

我做了什麼

Schema.xml

<fields> 
<field name="variantList" type="string" indexed="true" stored="true" /> 
<field name="variantList.variants" type="string" multiValued="false" required="false"/> 
<field name="variantList.stockMinimum" type="int" multiValued="false" required="false"/> 
<field name="variantList.stockOnHand" type="int" multiValued="false" required="false"/> 
<field name="variantList.stockVariantId" type="long" multiValued="false" required="false"/> 
</fields> 

數據-config.xml中

<dataConfig> 
    <dataSource /> 
    <document> 
    <entity name="PARENT" rootEntity='true' query="*" > 
    <field column="ID" name="id" /> 
    <field column="BRAND_ID" name="brandId" /> 
    <field column="PRODUCT_ID" name="productId" /> 
    <field column="MERCHANT_PRODUCT_ID" name="merchantProductId" /> 
    <field column="MERCHANT_ID" name="merchantId" /> 
    <field column="SALES_REGION" name="salesRegion" /> 
    <field column="LOCAL_DIRECT_DELIVERY" name="localDirectDelivery" /> 
    <field column="NORMAL_SELLINGPRICE" name="normalSellingPrice" /> 
    <field column="NEW_PRODUCT" name="newProduct" /> 
    <field column="BEST_SELLER" name="bestSeller" /> 
    <field column="CATEGORY1_ID" name="category1Id" /> 
    <field column="CATEGORY2_ID" name="category2Id" /> 
    <field column="CATEGORY3_ID" name="category3Id" /> 
    <field column="CATEGORY4_ID" name="category4Id" /> 
    <field column="DISPLAY_IMAGE_PATH" name="displayImagePath" /> 
    <field column="MERCHANT_NAME" name="merchantName" /> 
    <field column="PRODUCT_NAME" name="productName" /> 
    <field column="CATEGORY1_NAME" name="category1Name" /> 
    <field column="CATEGORY2_NAME" name="category2Name" /> 
    <field column="CATEGORY3_NAME" name="category3Name" /> 
    <field column="CATEGORY4_NAME" name="category4Name" /> 





     <entity name="variantList" child="true" query="select VARIANT , STOCK_MINIMUM , STOCK_ONHAND , ID from SIF_MERCHANT_CATALOG_VARIANT 
                where MERCHANT_CATALOG_ID = '${PARENT.ID}'"> 
       <field column="VARIANT" name="variantList.variants_s" /> 
       <field column="STOCK_MINIMUM" name="variantList.stockMinimum" /> 
       <field column="STOCK_ONHAND" name="variantList.stockOnHand" /> 
       <field column="ID" name="variantList.stockVariantId" /> 
      </entity> 
    </entity> 
    </document> 
</dataConfig> 

結果,我想

<doc parent_1/> 
    <doc child_1/> 
    <doc child_1/> 
<doc parent_2/> 
    <doc child_1/> 

和我所得到的

<doc child_1/> 
<doc child_1/> 
<doc parent_1/> 
<doc child_2/> 
<doc parent_2/> 

,我看到aheryan的anwers,它應該是正確的,我可以用孩子=真

我想念什麼?

感謝

回答

1

文檔與父文檔一起返回,如果你只是做一般查詢的孩子。作爲一個平面列表。所以,這可能是你所看到的。

檢查是否嵌套文檔的最簡單方法是查看_root_字段的值,因爲該值對於父/子分層結構塊中的所有文檔都是相同的。

您也可以僅搜索父文檔並使用Child Document Transformer來列出其子代。

+0

哦謝謝你!我想念那個孩子文件轉換器,謝謝! –

+0

,我發現它,https://github.com/lucidworks/solrj-nested-docs –