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.
1.6.6 De-Duplication(重复数据删除)的更多相关文章
-
禁用Windows重复数据删除
重复数据删除,可以减少磁盘占用,但使用不当也有可能增加IO,另外,也为此功能会将硬盘分块,所以当硬盘占用较高时,进行碎片整理也比较困难,所以有时需要禁用掉重复数据删除功能,并解除重复数据的优化,可以通 ...
-
Windows Server 2012重复数据删除技术体验
在企业环境中,对磁盘空间的需求是惊人的.数据备份.文件服务器.软件镜像.虚拟磁盘等都需要占据大量的空间.对此,微软在Windows Server 2012中引入了重复数据删除技术.重复数据删除技术通过 ...
-
重复数据删除(De-duplication)技术研究(SourceForge上发布dedup util)
dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码正在不断更新中.该工具生成 ...
-
重复数据删除 开源实现 (deduputil) (转)
[dedup util] dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码 ...
-
MongoDB实现数组中重复数据删除
这个功能真的是写死我了,对于MongoDB一点都不熟悉,本来想使用spring与MongoDB的融合mongoDBTemplate,发现压根不是web项目,懒得配置那些配置文件,就使用最原始的数据库操 ...
-
Mysql如何将一张表重复数据删除
MySQL无法select 和 delete,update同时进行 只有将group By 出来不重复的数据进行insert到一张和之前同样类型的新表里面 转换思路,解决问题!
-
Sql Server重复数据删除
--在sql2005下可以 ,sql2000不可以 create table tb(id int,name varchar(4))insert tb select 1,'aa'union all s ...
-
Mysql开发技巧之删除重复数据
Mysql利用联表查询和分组来删除重复数据 //删除表中重复的id,保留最大的id mysql> select * from user; +----+------+ | id | name | ...
-
删除一个表中的重复数据同时保留第一次插入那一条以及sql优化
业务:一个表中有很多数据(id为自增主键),在这些数据中有个别数据出现了重复的数据. 目标:需要把这些重复数据删除同时保留第一次插入的那一条数据,还要保持其它的数据不受影响. 解题过程: 第一步:查出 ...
随机推荐
-
C#中的String.Format方法(转)
一.定义String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项. 如: (1)string p1 = "Jackie";strin ...
-
基本的MFC多线程
多线程程序我本来是能够来写的.但是由于在图像处理的过程中,对于这方面知识使用的比较少,造成重复忘记的情况.这里再次进行整理学习,特别注重和“图像处理”理清关系,为下一步使用奠定基础. 这里实现的是工作 ...
-
poj 3111 K Best (二分搜索之最大化平均值之01分数规划)
Description Demy has n jewels. Each of her jewels has some value vi and weight wi. Since her husband ...
-
Unix/Linux环境C编程入门教程(7) OPENBSDCCPP开发环境搭建
1. 年发起了OpenBSD 专案,希望创造一个注重安全的操作系统. 2.创建一个虚拟机. 3.选择默认的workstation10.0 4.我们选择稍后安装操作系统. 5.我们选择FreeBSD64 ...
-
Minimum Sum LCM(uva10791+和最小的LCM+推理)
L - Minimum Sum LCM Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submi ...
-
EF6 第一次,或者相隔一段时间变慢咋办? 我们来优化下
第一.问题原因分析 EF方面的原因: 1.Code First第一次启动会对比程序中的Model与数据库表(database initializer ),生成Model与数据库的映射视图 2.随着EF ...
-
HDU 2051(进制转换)
题意是将十进制数转换成二进制数. 从网上找到的十进制转 k 进制的做法,代码如下: #include <bits/stdc++.h> using namespace std; ','A', ...
-
vue中loding
<template> <div class="mf-loading-container" v-show="ifShow"> <im ...
-
oracle针对某列让特定信息排序[decode]
在ORACLE查询中,如果在没有排序,但又想让某列中特定值的信息排到前面的时候,使用oracle的decode(字段,'字段值',数字) 如 select name from user 查询出来的所有 ...
-
tensorflow 升级到1.9-rc0,tensorboard 报错:TypeError: GetNext() takes exactly 1 argument (2 given)
Exception in thread Reloader:Traceback (most recent call last): File "/usr/lib/python2.7/threa ...