1

我正在尝试使用 Solr 4.0 的数据导入器将数据从 MSSql 数据库导入 solr。不幸的是,我无法做到这一点。我们在日志中没有收到错误。当我运行完全导入时,它会连续执行数据导入命令,并且不会停止。在增量导入中,它会在几秒钟后停止,但它也不会导入任何东西。

以下是我的配置。请告诉我它是否正确。

数据配置.xml

    <?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource type="JdbcDataSource" name="ds1"
    driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
    url="jdbc:sqlserver:localhost;databaseName=temp1"
    user="user1"
    password="123456"
    readOnly="true" />

  <document>
    <entity name="Product" pk="Id" query="select Id,Name from Product">
        <field column="Id" name="Id"/>
        <field column="Name" name="Name"/>
    </entity>
  </document>
</dataConfig>

SolrConfig.xml

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

架构.xml

<fields>
   <field name="Id" type="int" indexed="true" stored="true" required="true" /> 
   <field name="Name" type="text" indexed="true" stored="true"  required="false" />   
   <field name="_version_" type="long" indexed="true" stored="true"/>   
 </fields>
    <uniqueKey>Id</uniqueKey>
    <defaultSearchField>Name</defaultSearchField>

我正在运行以下查询:

http://localhost:8983/solr/testDataImport/dataimport?command=delta-import

请告诉我这里出了什么问题。我已将以下库添加到我的 core\lib 目录。

  1. apache-solr-dataimporthandler-4.0.0
  2. apache-solr-dataimporthandler-extras-4.0.0
  3. sqljdbc4-2.0
4

2 回答 2

2

我认为 delta-import 默认情况下不会提交。尝试请求:

http://localhost:8983/solr/testDataImport/dataimport?command=delta-import&commit=true
于 2013-11-12T21:19:50.507 回答
0

我得到了同样的错误。可能的解决方案是

我在 solrconfig.xml 文件中添加了以下代码行

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

确保 dist 文件夹中的 apache-solr-dataimporthandler-4.0.jar 和 apache-solr-dataimporthandler-extras-4.0.jar 文件位于正确的路径中。

不要忘记重启tomcat服务器。

有关更多详细信息,请查看以下问题链接。

xml 文件的 DIH(数据导入处理程序)在 Solr4 中不起作用

于 2013-11-13T18:59:18.447 回答