2010-06-27 15 views
9

Sto riscontrando un problema nel far sì che Solr parli con Microsoft SQL Server tramite il driver Microsoft JDBC. Ho il gestore registrato in solrconfig.xml:Solr DataImportHandler con SQL Server

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

In data-config.xml ho una fonte di dati e di un documento definito:

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

Le colonne sono abbastanza irrilevanti - Volevo solo inizia con alcuni elementi, tra cui una colonna della data. Lo schema.xml Solr ha alcuni campi definiti:

<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" /> 

Quando tento un'importazione, il registro indica un'eccezione costruire l'origine dati:

26 giu, 2010 22:24:48 org. apache.solr.handler.dataimport.DataImporter doFullImport INFO: avvio dell'importazione completa Giu 26, 2010 10:24:48 PM org.apache.solr.core.SolrCore esecuzione INFO: [] webapp =/solr path =/select params = {clean = false & commit = true & command = full-import & qt =/dataimport} status = 0 QTime = 7 26 giu 2010 10:24:48 PM org.apache.solr.handler.dataimport.SolrWriter readIndexerProperties AVVISO: impossibile leggere: dataimport.properties 26 giu 2010 10:24:48 PM org.apache. solr.handler.dataimport.DataImporter doFullImport SEVERE: importazione completa non riuscita org.apache.solr.handler.dataimport.DataImportHandlerException: Nessuna origine dati: null disponibile per l'entità: membro Elaborazione documento n. 1 all'indirizzo org.apache.solr.handler. dataimport.DataImporter.getDataSourceInstance (DataImporter.java:279) in org.apache.solr.handler.dataimport.ContextImpl.getDataSource (ContextImpl.java:93) in org.apache.solr.handler.dataimport.SqlEntityProcessor.init (SqlEntityProcessor.java:52) presso org.apache.solr.handler.dataimport.EntityP rocessorWrapper.init (EntityProcessorWrapper.java:71) a org.apache.solr.handler.dataimport.DocBuilder.buildDocument (DocBuilder.java:319) a org.apache.solr.handler.dataimport.DocBuilder.doFullDump (DocBuilder. java: 242) in org.apache.solr.handler.dataimport.DocBuilder.execute (DocBuilder.java:180) in org.apache.solr.handler.dataimport.DataImporter.doFullImport (DataImporter.java:331) in org.apache.solr.handler.dataimport.DataImporter.runCmd (DataImporter.java:389) all'indirizzo org.apache.solr.handler.dataimport.DataImporter $ 1.run (DataImporter.java:370) 26 giu 2010 10: 24:48 PM org.apache.solr.update.DirectUpdateHandler2 rollback INFO: start rollback Giu 26, 2010 10:24:48 PM org.apache.solr.update.DirectUpdateHan dler2 rollback INFO: end_rollback Giu 26, 2010 10:24:54 PM org.apache.solr.core.SolrCore eseguito INFO: [] webapp =/solr percorso =/seleziona parametri = {clean = false & commit = true & comando = stato & qt =/dataimport} status = 0 QTIME = 0

ho letto le FAQ e la documentazione, visto come molte fonti come posso trovare, e io non riesco a superare questo errore. Che cosa sto facendo di sbagliato? L'errore "Impossibile leggere: dataimport.properties" sembra essere mostrato ogni volta che si verifica un problema con la configurazione. Non riesco a trovare il mio errore

risposta

8

Sembra che l'origine dati non è riconosciuto nella dichiarazione di entità perché l'attributo corretto da utilizzare è dataSource, non datasource

Problemi correlati