Solr的4 - 缺少必填字段:UUID [英] Solr 4 - missing required field: uuid

查看:681
本文介绍了Solr的4 - 缺少必填字段:UUID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在生成使用Solr4的dataImportHandler一个UUID的问题。我试着从现有的MySQL数据库导入。

我的schema.xml中包含:

 <&领域GT;    <字段名=的「uuidTYPE =的uuid收录=真正的存储=真所需=真/>    <字段名=ID类型=字符串索引=真正的存储=真所需=真/>
    <字段名=地址TYPE =text_general收录=真正的存储=真/>
    <字段名=城市TYPE =text_general收录=真正的存储=真/>
    <字段名=县类型=字符串索引=真正的存储=真/>
    <字段名=纬度TYPE =text_general收录=真正的存储=真/>
    <字段名=LNGTYPE =text_general收录=真正的存储=真termVectors =真termPositions =真termOffsets =真/>
    <字段名=价格型=浮动收录=真正的存储=真/>
    <字段名=卧室TYPE =浮动收录=真正的存储=真/>
    <字段名=形象类型=字符串索引=真正的存储=真/>    <字段名=区域TYPE =location_rpt收录=真正的存储=真/>    < defaultSearchField>地址< / defaultSearchField>    <字段名=_ version_TYPE =长收录=真正的存储=真/>
    <字段名=TEXT类型=text_general收录=真正的存储=假多值=真/> < /田> <唯一键>&的uuid LT; /唯一键>

,然后在<各类>

 <字段类型名称=的「uuid级=solr.UUIDField收录=真/>

我的solrconfig.xml中包含:

 < requestHandler NAME =/ dataimport级=org.apache.solr.handler.dataimport.DataImportHandler>  < updateRequestProcessorChain名=的「uuid>
      <处理器类=solr.UUIDUpdateProcessorFactory>
          < STR NAME =字段名>&UUID LT; / STR>
      < /处理器GT;
      <处理器类=solr.RunUpdateProcessorFactory/>
  < / updateRequestProcessorChain> < LST NAME =默认>
    < STR NAME =配置>数据-config.xml文件< / STR>
 < / LST>

每当我运行更新,一些文档插入行,买那么多回用:

  org.apache.solr.common.SolrException:[DOC = 204]缺少必要的字段:UUID


解决方案

通过走出去的例子在该链接应

 < requestHandler NAME =/ dataimport级=org.apache.solr.handler.dataimport.DataImportHandler>
    .........
    < LST NAME =默认>
        < STR NAME =配置>数据-config.xml文件< / STR>
        < STR NAME =update.chain>&UUID LT; / STR>
    < / LST>
< / requestHandler>< updateRequestProcessorChain名=的「uuid>
  <处理器类=solr.UUIDUpdateProcessorFactory>
      < STR NAME =字段名>&UUID LT; / STR>
  < /处理器GT;
  <处理器类=solr.RunUpdateProcessorFactory/>
< / updateRequestProcessorChain>

I'm having issues generating a UUID using the dataImportHandler in Solr4. Im trying to import from an existing MySQL database.

My schema.xml contains:

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

and then in <types>

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

My Solrconfig.xml contains:

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

Whenever I run the update, some docs are inserted ok , buy many return with:

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

解决方案

Going by the example at link it should be

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

这篇关于Solr的4 - 缺少必填字段:UUID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆