2016-11-28 70 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 –