mysql - 如何使用 Solr 数据导入处理程序来索引 MySQL 表?

标签 mysql solr lucene dataimporthandler

当我尝试通过在浏览器中加载它来导入 mysql 表时:

http://192.168.136.129:8983/solr/dataimport?command=full-import

我收到这个错误:

HTTP ERROR 404

Problem accessing /solr/dataimport. Reason:

    NOT_FOUND

Powered by Jetty://

我正在按照官方 Solr wiki 中的教程开始使用 DIH:

http://wiki.apache.org/solr/DIHQuickStart

根据教程,我将其添加到我的 solrconfig.xml 中:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
    <str name="config">data-config.xml</str>
  </lst>
</requestHandler>  

在 data-config.xml 中我有以下内容:

<dataConfig>
  <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost/site" 
              user="root" 
              password="123"/>
  <document>
    <entity name="profiles" 
            query="select user_id,about,music,movies,occupation from profiles">
    </entity>
  </document>
</dataConfig>

这些是在我的 schema.xml 中定义的字段:

  <fields>
    <field name="user_id" type="string" indexed="true" stored="true" required="true" />
    <field name="about" type="string" indexed="true" stored="true" />
    <field name="music" type="string" indexed="true" stored="true" />
    <field name="movies" type="string" indexed="true" stored="true" />
    <field name="occupation" type="string" indexed="true" stored="true" />  
    <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
  </fields>

  <uniqueKey>user_id</uniqueKey>

那我做错了什么?我想这可能与 data-config.xml 文件有关。在其中我不知道是否假定了通往 MySQL 驱动程序的特定路径。我从这里下载了 MySQL JDBC 驱动程序:

http://dev.mysql.com/downloads/connector/j/3.1.html

并将它放在我的/solr/lib目录中。

当我下载驱动程序并将其解压缩时,在一个名为“mysql-connector-java-3.0.17-ga”的文件夹中有一堆文件夹。

我确实注意到里面有一个名为:com 的目录,在 mysql 里面,在 jbdc 里面,里面有一个名为 Driver.class 的文件。

这是从 data-config.xml 中引用的内容吗?如果是这样,为什么没有提到初始目录。

基本上我不知道问题是什么,请有人帮忙。

最佳答案

只需确保在 solrconfig.xml 文件中有这些代码行

<lib dir="../../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />

确保那些 jar 文件的路径和那些 jar 文件应该在该路径上物理可用。如果没有,请添加它并尝试重新启动 tomacat 服务器,希望它会得到解决。

关于mysql - 如何使用 Solr 数据导入处理程序来索引 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10343756/

相关文章:

PHP mysqli_query 花费的时间太长

hadoop - lily solr hbase 索引器 : add indexer indexdemo-indexer. xml

java - 如何在 apache lucene 中的字符串列表之间进行百分比匹配

java - Solr 5.x,如何生成.war文件

mysql - mysql中的binlog是什么?

mysql - 我有一个有效的查询,但我需要在其中添加一个 where 子句

Solr:如何避免分数被多个值稀释?

full-text-search - Solr:如何在文本字段上搜索完整匹配项?是否有隐藏的 equal() 运算符?

java - SOLR 和 Lucene 有何关系?

php - 注册时密码错误,但通过 bcrypt 更改密码后可以使用