另一个Solr 4新用户。我很钦佩Solr在全文搜索中能做什么,但在线文档有点令人沮丧。无论如何,我正在努力将我的MySQL数据库(拥有数百万条记录)导入Solr。
example/lib
目录中。我创建了data-config.xml
并将其放入其中:
<document name="doc">
<entity name="pagey" query="SELECT * FROM page">
<field column="id" name="pid" />
<field column="Content" name="pcontent" />
<field column="bid" name="bid" />
<field column="Num" name="num" />
</entity>
</document>
并保存在:/example/solr/collection1/conf
。
通过添加:
将该文件链接到solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
修改了schema.xml以添加我的新字段。
但是当我到达时通过interring执行完全导入:http://[localhost]:8983/solr/dataimport?command=full-import
我收到了此错误:HTTP ERROR 404 Problem accessing /solr/dataimport. Reason: Not Found
。我认为这在上一版本4中不再有效。所以我尝试了:http://[localhost]:8983/solr/#/collection1/dataimport?command=full-import
但没有任何反应。
我的字段已成功添加,我可以在集合1的架构浏览器部分的管理面板上看到它们。
来自admin - &gt; collection1 - &gt; Dataimport,它显示:sorry, no dataimport-handler defined!
。
运行start.jar
不会显示错误。
我在这里错过了什么?
编辑:解决之后,请记住&#34; XML区分大小写&#34;。
答案 0 :(得分:3)
您的data-config需要看起来更像这样。您没有指定mysql主机,用户或密码。
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:8889/yourdatabase"
user="mysql_user"
password="mysql_password"/>
<document name="doc">
<entity name="pagey" query="SELECT * FROM page">
<field column="id" name="pid" />
<field column="Content" name="pcontent" />
<field column="bid" name="bid" />
<field column="Num" name="num" />
</entity>
</document>
</dataConfig>
您需要将其包含在solrconfig.xml文件中。
<lib dir="../../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
和
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
在solr.xml中,您需要确保拥有以下内容
<solr persistent="true" sharedLib="../lib">
答案 1 :(得分:1)
If you are using latest Solr then use
<lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
instead of
<lib dir="../../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />