又一个 Solr 4 新用户。我很欣赏 Solr 在全文搜索方面的能力,但在线文档有点令人沮丧。无论如何,我正在努力将我的 MySQL 数据库(有几百万条记录)导入 Solr。
- 我下载了 Java 连接器并将其保存在
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 以添加我的新字段。
但是当我通过插入执行完全导入时: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
但什么也没发生。
我的字段已成功添加,我可以在 collection1 的模式浏览器部分的管理面板上看到它们。
从管理员 -> collection1 -> Dataimport,它显示:sorry, no dataimport-handler defined!
.
运行 start.jar
不显示错误。
我在这里错过了什么?
编辑:解决后,记住“XML 区分大小写”。
最佳答案
您的数据配置需要看起来更像这样。您没有指定 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">
关于php - 将 MySQL 数据库完全导入到 Solr 4 会出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546580/