Solr DataImportHandler с SQL Server - PullRequest
10 голосов
/ 28 июня 2010

У меня проблема с тем, чтобы Solr мог общаться с Microsoft SQL Server через драйвер JDBC Microsoft.У меня есть обработчик, зарегистрированный в 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" />

Когда я пытаюсь выполнить импорт, в журнале отображается исключение, создающее источник данных:

26 июня 2010 г. 10:24: 48:00 org.apache.solr.handler.dataimport.DataImporter doFullImport ИНФОРМАЦИЯ: Начало полного импорта 26 июня 2010 г. 22:24:48 org.apache.solr.core.SolrCore выполнить ИНФО: [] webapp = / solr path =/ select params = {clean = false & commit = true & command = full-import & qt = / dataimport} status = 0 QTime = 7 26 июня 2010 г. 22:24:48 org.apache.solr.handler.dataimport.SolrWriter readIndexerProperties ПРЕДУПРЕЖДЕНИЕ: Невозможно выполнитьпрочитано: dataimport.properties 26 июня 2010 г. 22:24:48 org.apache.solr.handler.dataimport.DataImporter doFullImport SEVERE: сбой при полном импорте org.apache.solr.handler.dataimport.DataImportHandlerException: источник данных: ноль недоступен дляentity: member Обработка документа # 1 в org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance (DataImporter.java:279) в org.apache.solr.handler.dataimport.ContextImpl.getDataSource (ContextImpl.java:93) в org.apache.solr.handler.dataimport.SqlEntityProcessor.init (SqlEntityProcessor.java:52) в org.apache.solr.handler.dataimport.EntityProcessorWrapper.init (EntityProcessavaWrapper)в org.apache.solr.handler.dataimport.DocBuilder.buildDocument (DocBuilder.java:319) в org.apache.solr.handler.dataimport.DocBuilder.doFullDump (DocBuilder.java:242) в org.apache.solr.handler.dataimport.DocBuilder.execute (DocBuilder.java:180) в org.apache.solr.handler.dataimport.DataImporter.doFullImport (DataImporter.java:331) в org.apache.solr.handler.dataimport.DataImporter.Importer (Importer.Importer.java: 389) at org.apache.solr.handler.dataimport.DataImporter $ 1.run (DataImporter.java:370) 26 июня 2010 г. 22:24:48 org.apache.solr.update.DirectUpdateHandler2 откат ИНФО: началооткат 26 июня 2010 г. 22:24:48 org.apache.solr.update.DirectUpdateHandler2 INFO отката: end_rollback 26 июня 2010 г. 22:24 org.apache.solr.core.SolrCore выполнить INFO: [] webapp =/ Solr Path = / выберитеparams = {clean = false & commit = true & command = status & qt = / dataimport} status = 0 QTime = 0

Я прочитал FAQ и документацию, просмотрел столько источников, сколько смогу найти, и япросто не могу обойти эту ошибку.Что я делаю неправильно?Ошибка «Невозможно прочитать: dataimport.properties» появляется, когда возникает какая-либо проблема с конфигурацией.Я не могу найти свою ошибку.

1 Ответ

9 голосов
/ 28 июня 2010

Кажется, что источник данных не распознается в объявлении сущности, потому что правильный атрибут для использования - dataSource, а не datasource

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...