2013-06-04 138 views
6

我在使用Solr4中的dataImportHandler生成UUID时遇到问题。我试图从现有的MySQL数据库导入。Solr 4 - 缺少必填字段:uuid

我schema.xml中包含:

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

,然后在<types>

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

我solrconfig.xml中包含:

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

每当我运行更新,s青梅文档插入OK,买很多回用:

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

回答

8

通过link的例子中去,应该是

<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

完美。难道只有我在与Solr文档格式化以及每个示例应该放置在哪里? :) – Kikimac

+2

@Kikimac:这是每个人! – jsh

+0

@Jayendra我试图引入你提出的修改,但它仍然给我一个异常,如:org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:初始化QueryElevationComponent时出错。请尽量帮助我。 –

相关问题