簡體   English   中英

MySQL到Solr導入

[英]MySQL to Solr import

我想用solr索引我的MySQL數據庫表。 我可以在http://localhost:8983/solr/admin/dataimport.jsp?handler=/dataimport頁面上看到獲取的查詢結果,但是對於獲取的每一行,我在服務器端都遇到這些錯誤:

WARNING: Error creating document : SolrInputDocument[{eno=eno(1.0)={3}, ename=ename(1.0)={pravin}, sal=sal(1.0)={300}}]
org.apache.solr.common.SolrException: Document [null] missing required field: id

這是我的dataconfig.xml:

<dataConfig>
    <dataSource name="pravindb" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/pravindb" user="root" password="root" batchSize="-1" />
    <document>
        <entity name="ename" dataSource="pravindb" pk="eno" query="select* from emp">
            <field column="eno" name="eno"/> 
            <field column="ename" name="ename"/> <field column="sal" name="sal"/> 
        </entity>
     </document>
</dataConfig>

這是我添加到schema.xml的代碼:

<fields>
    <field name="eno" type="int" indexed="true" stored="true" required="true" />
    <field name="ename" type="text" indexed="true" stored="true" multiValued="true"/>
    <field name="sal" type="int" indexed="true" stored="true" multiValued="true"/>
</fields>
<uniqueKey>eno</uniqueKey>
<defaultSearchField>ename</defaultSearchField>

這是我在solrconfig.xml中的請求處理程序:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">d:\clg/Project/Workspace/TestSolr/solr/conf/my-data-config.xml</str>
    </lst>
</requestHandler> 

該錯誤表明您嘗試通過DataImportHandler添加的DataImportHandler不包含id字段,這是必填字段。 您的查詢沒有返回id列,或者您沒有在導入處理程序配置中正確映射它。

更新
從您添加的配置中,您的eno字段看起來像是uniqueKey,只要您的select *始終返回它,它就應該起作用。 這里的問題是我想您不需要架構中的更多必填字段。 該錯誤表明您已按要求配置了id字段:您應該將其從架構中刪除,或者如果需要將其用於其他目的,則將其設置為可選。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM