zoukankan      html  css  js  c++  java
  • Solr自动生成ID

    在Solr中,每一个索引,都要有一个唯一的ID,类似于关系型数据库表中的主键。为了方便创建索引,需要配置自动生成的ID,即UUID。

    一、配置schema.xml文件

    添加uuid字段类型,修改字段id的类型。

       <field name="id" type="uuid" indexed="true" stored="true" required="true" multiValued="false" /> 
       <fieldType name="uuid" class="solr.UUIDField" indexed="true" />

    二、配置solrconfig.xml文件

    添加更新策略配置,调用Solr中的UUIDUpdateProcessorFactory生成全局唯一的UUID。

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

    配置requestHandler,保证dataimport和update操作都可以自动生成UUID。

    <requestHandler name="/dataimport" class="solr.DataImportHandler">
        <lst name="defaults">
          <str name="config">tika-data-config.xml</str>
          <str name="update.chain">uuid</str>    
       </lst>
    </requestHandler>
    
    <requestHandler name="/update" class="solr.UpdateRequestHandler">
           <lst name="defaults">
            <str name="update.chain">uuid</str>
           </lst>  
    </requestHandler>
    
      <!-- for back compat with clients using /update/json and /update/csv -->  
      <requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler">
            <lst name="defaults">
             <str name="stream.contentType">application/json</str>
             <str name="update.chain">uuid</str>
            </lst>
      </requestHandler>
      <requestHandler name="/update/csv" class="solr.CSVRequestHandler">
            <lst name="defaults">
             <str name="stream.contentType">application/csv</str>
             <str name="update.chain">uuid</str>
            </lst>
      </requestHandler>
    
      <requestHandler name="/update/extract"
                      startup="lazy"
                      class="solr.extraction.ExtractingRequestHandler" >
        <lst name="defaults">
          <str name="xpath">/xhtml:html/xhtml:body/descendant:node()</str>
          <str name="capture">content</str>
          <str name="fmap.meta">attr_meta_</str>
          <str name="uprefix">attr_</str>
          <str name="lowernames">true</str>
          <str name="update.chain">uuid</str>
        </lst>
    </requestHandler>

    经过以上配置之后,在进行索引的时候,就不需要指定ID了,Solr可自动生成ID字符串。

  • 相关阅读:
    堆和栈的区别!
    产品经理和程序员的爱恨情仇
    字符串MD5加密运算
    事件驱动模型。。。。有时间弄
    Apache服务器httpd.exe进程占用cpu超过50%的解决方法
    ZigBee Xbee S2通讯设置
    pipe-filter 真难找啊
    javacomm64位用不了,可以使用RXTXcomm for x64
    导入 sun.net.TelnetInputStream; 报错
    linux下gedit读取txt乱码解决办法
  • 原文地址:https://www.cnblogs.com/saratearing/p/5739920.html
Copyright © 2011-2022 走看看