zoukankan      html  css  js  c++  java
  • 1.6.6 De-Duplication(重复数据删除)

    1. 重复数据删除

      solr通过<Signature>类的类型来支持重复数据删除技术的.一个Signature可以通过以下几种方式实现:

     方法 描述
     MD5Signature  128位hash用于副本探测解析.
     Lookup3Signature  64位hash用于副本探测解析.比MD5更快,索引更小.
     TextProfileSignature  从Nutch中的模糊散列实现重复检测.它是可以调节的,对于长文本字段处理具有较好的效果.

      注意:

        添加副本处理将改变allowDups的设置,所以它用于update条目(这里使用signatureField)而不是更新唯一字段的条目.当然signatureField可以是唯一字段.

    在一个文档添加时,将自动产生一个信息,使用指定的signatureField连接这个文档.

     1.1 Configuration Options

      SignatureUpdateProcessorFactory在solrconfig.xml中注册,作为UpdateRequestProcessorChain:

    <updateRequestProcessorChain name="dedupe">
        <processor class="solr.processor.SignatureUpdateProcessorFactory">
            <bool name="enabled">true</bool>
            <str name="signatureField">id</str>
            <bool name="overwriteDupes">false</bool>
            <str name="fields">name,features,cat</str>
            <str name="signatureClass">solr.processor.Lookup3Signature</str>
        </processor>
    </updateRequestProcessorChain>
    设置 默认 描述
    signatureClass org.apache.solr.update.processor.Lookup3Signature 生成一个Signature哈稀散列的Signature实现
    fields 所有字段 The fields to use to generate the signature hash in a comma
    separated list. By default, all fields on the document will be used.
    signatureField signatureField 字段名称,用来保持指纹/签名.确保这个字段在schema.xml中定义.
    enabled true enable/disable 副本工厂处理.

     1.2 In schema.xml

      如果使用指定的字段存储签名,必须使这个字段索引.

    <field name="signature" type="string" stored="true" indexed="true"  multiValued="false" />

      确保使用定义的chain更新句柄:

    <requestHandler name="/update">
        <lst name="defaults">
            <str name="update.chain">dedupe</str>
        </lst>
    </requestHandler>

    注意:

      这个更新处理同样也可以通过请求参数中设置update.chain=dedupe.

  • 相关阅读:
    spark 系列之六 SparkStreaming数据源之socket流
    spark 系列之五 SparkStreaming数据源之文件流
    spark 系列之四 Spark数据源之关系型数据库
    spark 系列之三 RDD,DataFrame与DataSet之间的转化
    spark 系列之二 Dataframe的使用
    spark 系列之一 RDD的使用
    Java Int类型与字符,汉字之间的转换
    Java实现栈
    名字的漂亮度
    在字符串中找出连续最长的数字串
  • 原文地址:https://www.cnblogs.com/a198720/p/4322909.html
Copyright © 2011-2022 走看看