2012-02-24 101 views
0

我想索引我的MySQL數據庫表與索爾。 我可以看到結果取我http://localhost:8983/solr/admin/dataimport.jsp?handler=/dataimport網頁上查詢,但我正在逐漸在服務器端這些錯誤的每一行獲取:MySQL到Solr導入

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> 
+0

請將您的架構和DIH配置文件的內容添加到您的問題中。 – nikhil500 2012-02-24 12:35:33

+0

你解決了嗎?我的回答有幫助嗎?你需要更多的幫助嗎? – javanna 2012-02-27 11:40:30

+0

這是dataconfig.xml <數據源名稱= 「pravindb」 \t驅動= 「com.mysql.jdbc.Driver」 \t URL = 「JDBC:MySQL的://本地主機:3306/pravindb」 \t用戶= 「根」 \t密碼= 「根」 \t BATCHSIZE = 「 - 1」/> <實體名= 「ENAME」 展現dataSource = 「pravindb」 PK = 「ENO」 查詢= 「從EMP選擇*」> \t <字段列= 「SAL」 名稱= 「SAL」/> user1208634 2012-02-28 06:44:02

回答

1

錯誤顯示您試圖通過DataImportHandler添加的文檔不包含需要的id字段。您的查詢不會返回id列,或者您沒有在導入處理程序配置中正確映射它。

UPDATE
從您已經添加的配置,看起來像你的eno字段是唯一鍵,只要它應該作爲您select *總是返回。 這裏的問題是您的模式中有更多必填字段,我猜你不需要。該錯誤說明您已根據需要配置了id字段:如果您需要將其用於其他用途,則應從模式中將其刪除或將其設置爲可選。

+0

非常感謝你先生..現在我已經克服了上述錯誤現在當我完全導入我的數據庫時,它顯示了相關的數字獲取的行數和「索引完成」。 「但是,如果我在QueryString中搜索任何屬於我的數據庫的部分,它並沒有發現任何結果,那麼你能告訴我最新的問題 – user1208634 2012-03-02 07:12:50

+0

@ user1208634那麼,在你的配置下,提交會自動發生。 ?你可以嘗試'q = *:*'? – javanna 2012-03-02 09:05:14