Solr DataImportHandler с SQL Server

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

Столбцы довольно не важны - я просто хотел запуститься с нескольких объектов, включая столбец даты. schema.xml Solr имеет некоторые определенные поля:

<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 22:24:48 org.apache.solr.handler.dataimport. Информация DataImporter doFullImport: Запуск Полного Импорта 26 июня 2010 22:24:48 org.apache.solr.core. SolrCore выполняют ИНФОРМАЦИЮ: [] веб-приложение =/solr соединяют =/select параметрические усилители каналом = {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: Полный Импорт привел org.apache.solr.handler.dataimport к сбою. DataImportHandlerException: Никакой источник данных: пустой указатель, доступный для объекта: участник, Обрабатывающий Документ № 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(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.handler.dataimport. DocBuilder.execute(DocBuilder.java:180) в org.apache.solr.handler.dataimport. DataImporter.doFullImport(DataImporter.java:331) в org.apache.solr.handler.dataimport. DataImporter.runCmd(DataImporter.java:389) в 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 откатывают ИНФОРМАЦИЮ: end_rollback 26 июня 2010 22:24:54 org.apache.solr.core. SolrCore выполняют ИНФОРМАЦИЮ: [] веб-приложение =/solr соединяют =/select параметрические усилители каналом = {clean=false&commit=true&command=status&qt =/dataimport} status=0 QTime=0

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

10
задан Jeroen 7 March 2014 в 09:41
поделиться

1 ответ

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

9
ответ дан 4 December 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: