2013-06-04 11 views
6

Sto riscontrando problemi nella generazione di un UUID utilizzando dataImportHandler in Solr4. Sto cercando di importare da un database MySQL esistente.Solr 4 - campo mancante mancante: uuid

mio schema.xml contiene:

<fields> 

    <field name="uuid" type="uuid" indexed="true" stored="true" required="true" /> 

    <field name="id" type="string" indexed="true" stored="true" required="true"/> 
    <field name="address" type="text_general" indexed="true" stored="true"/> 
    <field name="city" type="text_general" indexed="true" stored="true" /> 
    <field name="county" type="string" indexed="true" stored="true" /> 
    <field name="lat" type="text_general" indexed="true" stored="true" /> 
    <field name="lng" type="text_general" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" /> 
    <field name="price" type="float" indexed="true" stored="true"/> 
    <field name="bedrooms" type="float" indexed="true" stored="true" /> 
    <field name="image" type="string" indexed="true" stored="true"/> 

    <field name="region" type="location_rpt" indexed="true" stored="true" />  

    <defaultSearchField>address</defaultSearchField> 

    <field name="_version_" type="long" indexed="true" stored="true"/> 
    <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/> 

</fields> 

<uniqueKey>uuid</uniqueKey> 

e poi in <types>

<fieldType name="uuid" class="solr.UUIDField" indexed="true" /> 

mio Solrconfig.xml contiene:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   

    <updateRequestProcessorChain name="uuid"> 
     <processor class="solr.UUIDUpdateProcessorFactory"> 
      <str name="fieldName">uuid</str> 
     </processor> 
     <processor class="solr.RunUpdateProcessorFactory" /> 
    </updateRequestProcessorChain> 

<lst name="defaults"> 
    <str name="config">data-config.xml</str> 
</lst> 

Ogni volta che faccio funzionare l'aggiornamento , S docs ome sono inseriti bene, acquistare molti di ritorno con:

org.apache.solr.common.SolrException: [doc=204] missing required field: uuid 

risposta

8

Andando con l'esempio a link dovrebbe essere

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
    ......... 
    <lst name="defaults"> 
     <str name="config">data-config.xml</str> 
     <str name="update.chain">uuid</str> 
    </lst> 
</requestHandler> 

<updateRequestProcessorChain name="uuid"> 
    <processor class="solr.UUIDUpdateProcessorFactory"> 
     <str name="fieldName">uuid</str> 
    </processor> 
    <processor class="solr.RunUpdateProcessorFactory" /> 
</updateRequestProcessorChain> 
+3

Perfetto. Sono solo io che combatto con la formattazione dei documenti Solr e dove ogni esempio dovrebbe essere inserito? :) – Kikimac

+2

@Kikimac: è TUTTI !!! – jsh

+0

@Jayendra Ho provato a incorporare le modifiche suggerite da te, ma ancora mi dà un'eccezione come: org.apache.solr.common.SolrException: org.apache.solr.common.SolrException: Errore durante l'inizializzazione di QueryElevationComponent. Per favore, prova ad aiutarmi. –