2013-06-04 11 views
6

Mam problemy z generowaniem identyfikatora UUID przy użyciu obiektu dataImportHandler w Solr4. Próbuję importować z istniejącej bazy danych MySQL.Solr 4 - brakuje wymaganego pola: uuid

Moje schema.xml zawiera:

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

a następnie w <types>

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

My solrconfig.xml zawiera:

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

Ilekroć uruchomić aktualizację , s ome docs są wstawiane ok, kupić wiele zwrotu z:

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

Odpowiedz

8

Przechodzenie przez przykład w link powinno być

<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

Idealny. Czy tylko ja zmagam się z formatowaniem dokumentów Solr i gdzie należy umieścić każdy przykład? :) – Kikimac

+2

@Kikimac: to KAŻDY !!! – jsh

+0

@Jayendra Próbowałem wprowadzić zmiany sugerowane przez ciebie, ale nadal daje mi wyjątek: org.apache.solr.common.SolrException: org.apache.solr.common.SolrException: Błąd inicjowania QueryElevationComponent. Proszę, pomóż mi. –

Powiązane problemy