sql-server - Solr DataImportHandler 与 SQL Server

标签 sql-server jdbc solr

我在让 Solr 通过 Microsoft JDBC 驱动程序与 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>

在 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>

这些列相当无关紧要 - 我只想从一些项目开始,包括日期列。 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" />

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

Jun 26, 2010 10:24:48 PM org.apache.solr.handler.dataimport.DataImporter doFullImport INFO: Starting Full Import Jun 26, 2010 10:24:48 PM org.apache.solr.core.SolrCore execute 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 WARNING: Unable to read: dataimport.properties Jun 26, 2010 10:24:48 PM org.apache.solr.handler.dataimport.DataImporter doFullImport SEVERE: Full Import failed org.apache.solr.handler.dataimport.DataImportHandlerException: No dataSource :null available for entity :member Processing Document # 1 at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:279) at org.apache.solr.handler.dataimport.ContextImpl.getDataSource(ContextImpl.java:93) at org.apache.solr.handler.dataimport.SqlEntityProcessor.init(SqlEntityProcessor.java:52) at org.apache.solr.handler.dataimport.EntityProcessorWrapper.init(EntityProcessorWrapper.java:71) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:319) at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) Jun 26, 2010 10:24:48 PM org.apache.solr.update.DirectUpdateHandler2 rollback INFO: start rollback Jun 26, 2010 10:24:48 PM org.apache.solr.update.DirectUpdateHandler2 rollback INFO: end_rollback Jun 26, 2010 10:24:54 PM org.apache.solr.core.SolrCore execute INFO: [] webapp=/solr path=/select params={clean=false&commit=true&command=status&qt=/dataimport} status=0 QTime=0

我已经阅读了常见问题解答和文档,查看了尽可能多的资源,但我就是无法克服这个错误。我究竟做错了什么?每当配置出现任何问题时,都会显示错误“无法读取:dataimport.properties”。我找不到我的错误。

最佳答案

实体声明中似乎无法识别数据源,因为要使用的正确属性是 dataSource,而不是 datasource

关于sql-server - Solr DataImportHandler 与 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128932/

相关文章:

java - 如何使用 jdbc 将 mysql 数据库连接到桌面 java 应用程序?

solr - 由于 : Underlying core creation failed while creating collection: techproducts,无法创建集合 'techproducts'

solr - 如何选择字段类型过滤器(例如德语)

SOLR 组数

mysql - MySql 触发器中的 NEW.some_column 的 SQL Server 模拟是什么?

sql-server - 从存储过程到 REST 服务

sql-server - 在 SQL Server 的 where 子句中使用函数 (IS_MEMBER ) 时出现基数估计警告

sql-server - 无法使用域凭据从 PowerShell 连接到 SQL Server

sql - JDBC 批量插入,返回 ID

java - IO 错误 : Got minus one from a read call