1.6.6 De-Duplication(重复数据删除)

本文详细介绍了Solr通过Signature类支持的重复数据删除技术,包括不同类型的Signature实现及其应用,配置选项,以及如何在schema.xml中进行相关设置。

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>

 

设置默认描述
signatureClassorg.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.
signatureFieldsignatureField字段名称,用来保持指纹/签名.确保这个字段在schema.xml中定义.
enabledtrueenable/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.

 

转载于:https://www.cnblogs.com/a198720/p/4322909.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值