2012-02-24 87 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