错误:使用Solr的DIH配置文件中的嵌入式实体“缺少必填字段”

时间:2012-11-14 01:09:44

标签: solr dataimporthandler dih

我正在尝试使用Solr的数据导入处理程序(DIH)从MySQL数据库导入多个表。 DIH不会从第二个表“详细信息”中导入数据。

我的数据库配置文件是

<document>
    <entity name="item" pk="ListingId" query="SELECT * FROM item as item where listingid=360245270">
        <entity name="detail" pk="ListingId" query="SELECT Body FROM detail where listingid='${item.listingid}'">
            <field column="Body" name="Body" />
        </entity>
     </entity>
</document>

我监控了MySQL查询日志,执行的两个重要查询是:

SELECT * FROM item as item where listingid=360245270

SELECT Body FROM listeditemdetail where listeditemdetail.listingid=''

显然,配置文件中的'$ {item.listingid}'部分不能按要求运行。我已经为表名和列名尝试了不同的拼写,但无法使其起作用。

1 个答案:

答案 0 :(得分:2)

(只是尝试)尝试删除主键并使用大写字母,例如: -

<document name="items">
    <entity name="item" query="SELECT * FROM item as item where listingid=360245270">
        <field column="LISTINGID" name="listingid" />
        <entity name="detail" query="SELECT Body FROM detail where listingid='${item.LISTINGID}'">
            <field column="Body" name="Body" />
        </entity>
    </entity>
</document>