使用SQL Server的Solr DataImportHandler

Mys*_*ied 10 sql-server solr jdbc

我在让Solr通过Microsoft JDBC Driver与Microsoft SQL Server交谈时遇到问题.我在solrconfig.xml中注册了处理程序:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
    <str name="config">C:\Program Files\Apache Software Foundation\Tomcat 6.0\Solr\conf\data-config.xml</str>
  </lst>
</requestHandler>
Run Code Online (Sandbox Code Playgroud)

在data-config.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=myDB;responseBuffering=adaptive;"
    user="xxxx"
    password="xxxx"
    readOnly="true"
  />

  <document name="members">
    <entity name="member" datasource="ds1" pk="id"
      query = "select 
        MemberID as id,
        UserName as userName,
        FirstName as firstName,
        LastName as lastName,
        Birthday as birthday,
        PrimaryEmail as primaryEmail,
        PersonalStatement as personalStatement
        from member"
      transformer="DateFormatTransformer">
      <field column="Birthday" name="birthday" dateTimeFormat="yyyy-MM-dd" />
    </entity>      
  </document>
</dataConfig>
Run Code Online (Sandbox Code Playgroud)

列是相当无关紧要的 - 我只是想从一些项目开始,包括日期列.Solr schema.xml定义了一些字段:

<field name="id" type="tlong" indexed="true" stored="true" required="true" /> 
<field name="userName" type="text" indexed="true" stored="true" />
<field name="firstName" type="text" indexed="true" stored="true" />
<field name="lastName" type="text" indexed="true" stored="true" />
<field name="birthday" type="tdate" indexed="true" stored="true" />
<field name="primaryEmail" type="text" indexed="true" stored="true" />
<field name="personalStatement" type="text" indexed="true" stored="true" />
Run Code Online (Sandbox Code Playgroud)

当我尝试导入时,日志显示构建数据源的异常:

2010年6月26日下午10:24:48 org.apache.solr.handler.dataimport.DataImporter doFullImport INFO:开始完全导入2010年6月26日下午10:24:48 org.apache.solr.core.SolrCore执行INFO:[ ] webapp =/solr path =/select params = {clean = false&commit = true&command = full-import&qt =/dataimport} status = 0 QTime = 7 Jun 26,2010 10:24:48 PM org.apache.solr.handler.dataimport .SolrWriter readIndexerProperties警告:无法读取:dataimport.properties 2010年6月26日下午10:24:48 org.apache.solr.handler.dataimport.DataImporter doFullImport SEVERE:完全导入失败org.apache.solr.handler.dataimport.DataImportHandlerException :No dataSource:null可用于实体:成员在org.apache.solr.handler.dataimport的org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:279)处理文档#1.org.apache.solr.handler.dataimport.SqlEntityProcessor.init(SqlEntityProcessor.java:52)中的ContextImpl.getDataSource(ContextImpl.java:93)位于org.apache.solr.handler.dataimport.EntityProcessorWrapper.init(EntityProcessorWrapper.java: 71)org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:319)org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242)org.apache.solr位于org.apache.solr.handler.dataimport.DataImporter.runCmd的org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331)的.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) (DataImporter.java:389)org.apache.solr.handler.dataimport.DataImporter $ 1.run(DataImporter.java:370)2010年6月26日下午10:24:48 org.apache.solr.update.DirectUpdateHandler2回滚INFO:start rollback 2010年6月26日下午10:24:48 org.apache.solr.update.DirectUpdateHandler2 rollback INFO:end_rollback 2010年6月26日下午10:24:54 org.apache.solr.core.SolrCore执行INFO :[] webapp =/solr path =/select params = {clean = false&commit = true&command = status&qt =/dataimport} status = 0 QTime = 0

我已经阅读了常见问题解答和文档,查看了我能找到的尽可能多的来源,而且我无法理解这个错误.我究竟做错了什么?每次配置出现任何问题时,都会显示错误"无法读取:dataimport.properties".我找不到我的错误.

Mau*_*fer 9

似乎数据源在实体声明中未被识别,因为使用的正确属性dataSource不是datasource