如何使用Solr数据导入处理程序为MySQL表编制索引?

如何使用Solr数据导入处理程序为MySQL表编制索引?,mysql,solr,lucene,dataimporthandler,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: 根据教程,我在solrconfig.xml中添加

当我尝试通过在浏览器中加载来导入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:

根据教程,我在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
在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>

以下是myschema.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>

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

然后把它放在我的
/solr/lib
目录中

当我下载并提取驱动程序时,在一个名为“mysql-connector-java-3.0.17-ga”的文件夹中有一堆文件夹

我注意到里面有一个dir,名为:
com
,里面是
mysql
,里面是
jbdc
,里面是一个名为
Driver.class
的文件

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


基本上,我不知道问题出在哪里,有人能帮忙吗。

事实上,您收到了一个未找到的错误,这意味着您的请求处理程序没有被初始化。确保在插入请求处理程序后重新启动solr


还要确保data-config.xml保存在与solrconfig.xml相同的目录中,尝试将
data-config.xml
位置的绝对路径放在
solrconfig.xml
中,而不是相对路径中。

只要确保solrconfig.xml文件中有这些代码行即可

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


确保这些jar文件的路径以及这些jar文件在该路径上的物理可用性。如果您没有,请添加它并尝试重新启动Tomcat服务器,希望它能得到解决。

看起来您的Solr/lib文件夹中缺少“DataImportHandler.jar”,或者您的Solr-conf.xml文件不知道DataImportHandler类

确保DataImportHandler存在,以进行检查 击中

如果浏览器上没有任何错误消息,则表示solr-conf.xml不知道SolrDataImportHandler.jar的位置

解决方案:这个问题可以通过使用solr-conf.xml的以下代码行来解决

</requestHandler>
<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
有关更多信息,请查看


可能存在初始配置不完美的情况,请在开始导入之前查看。

我知道这个问题很老,但我最近有机会设置它,并且在使用Bitnami(Windows)时遇到类似问题

  • \dist
    中,确保您有dataimportermysqlconnector
  • solr-dataimporthandler-4.9.0.jar

    mysql-connector-java-5.1.32-bin.jar

  • \contrib\dataimporthandler\lib

    激活-1.1.1.jar

    mail-1.4.3.jar

  • 在您的集合中,solrconfig.xml应该具有

    <lib dir="../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
    <lib dir="../../dist/" regex="solr-dataimporthandler-.*\.jar" />  
    <lib dir="../../dist/" regex="mysql-connector-java-.*\.jar"/>  
    
    
    
  • 以及:

    
    db-data-config.xml
    
    您是否正在使用多核?您的solr主页中是否有
    solr.xml
    文件?在编辑
    solrconfig.xml
    后,转到并检查DIH GUI是否工作,是否重新启动了solr?是否解决了此问题?你正在使用哪个版本的Solr?@bikedorkseattle不,刚刚开始使用Sphinx,还没有回头看。它对索引mysql表提供了现成的支持。
    <lib dir="../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
    <lib dir="../../dist/" regex="solr-dataimporthandler-.*\.jar" />  
    <lib dir="../../dist/" regex="mysql-connector-java-.*\.jar"/>  
    
      <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
          <str name="config">db-data-config.xml</str>
        </lst>
      </requestHandler>