
Lucene&heritrix&paoding
文章平均质量分 76
foamflower
紫色魅影——翠菊:一年的生命,短暂的相遇;花开花落,缘聚缘散;正因这短暂,更让人珍惜!
有的注定没有选择的权力,唯有面对;重新认识,update 自己。。。
展开
-
如何运行lucene中的锁的测试实例LockVerifyServer和LockStressTest
LockVerifyServer:是一个简单单机服务器,当你使用VerifyingLockFactory锁时必须运行该服务器。其主要是确保在一个时刻最多只有一个进程拥有该锁。LockStressTest:是一个简单的获取和释放一个指定锁的单机服务器。在这两个类里只有一个main入口方法,下面我们来讲讲如何使这两个服务器跑起来: LockVerifyServer需要传入一个参数,线程端口号。可以在任务管理器中找到要监控的线程的PID号。 LockVerifyServer.java文件上右击——D原创 2011-04-23 16:06:00 · 1228 阅读 · 0 评论 -
庖丁解牛分词器增加对日文,韩文分词的支持
项目中发现采用庖丁解牛分词器对含有日文的文字都被过滤掉,所以发了一封邮件给qieqie前辈。qieqie前辈的回复:在paoding中,中文、日文、韩文成为CJK,使用的是CJKKnife来切词; CJKKnife依赖词典来工作,对于一点文字而言,可分为两种情况,1、能找到何词典匹配的词,这时paoding应该会切出该词汇(当然也可能不会切出,具体问题具体分析)2、不能从词典找原创 2010-05-20 09:10:00 · 6610 阅读 · 1 评论 -
Lucene采用TermVector高亮显示方法出现问题
<br />采用的是Lucene3.0.2的核心包和高亮显示包,程序主要代码如下:<br /> Highlighter highlighter = new Highlighter(new SimpleHTMLFormatter(<br /> "<font color=/"red/">", "</font>"), new QueryScorer(<br /> query));<br /> highlighter.setTextFragmenter(new SimpleFragme原创 2010-07-15 21:08:00 · 2854 阅读 · 0 评论 -
Lucene建索引create=true时的IndexDeletionPolicy删除策略
<br /> 一直以来以为在new IndexWriter时create设为true则会自动删除或覆盖以前的所有索引文件,今天由于需要当重建索引时则需要删除所有的索引文件然后再建索引,可是发现IndexSearcher.close()之后.cfs文件却报:正在被使用而无法删除的问题。<br /> 心想不是在建的时候可以设置为true来删除原来的索引文件,测试了一下发现并没有删除,又去学了google一下,看了一下源代码发现默认其保持最近一次提交的索引文件。<br /> 其主要原创 2010-07-14 13:01:00 · 2691 阅读 · 6 评论 -
Lucene中的特殊字符
<br />转自:http://www.jssay.com/blog/index.php/2009/10/28/lucene%E4%B8%AD%E7%9A%84%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6/<br /> <br />Lucene中特殊符号一般用来匹配查询,但是也不可避免有些关键字中含有特殊符号,这时候我们需要对其进行转义,在网上搜索了很久,还是那篇来自车东的《在应用中加入全文检索功能 ——基于Java的全文索引引擎Lucene简介》写得比较经典,先将部分内容摘录如转载 2010-07-10 09:40:00 · 7151 阅读 · 1 评论 -
beta技术沙龙:大型网站的Lucene应用
<br />转自:http://www.programmer.com.cn/413/<br />beta技术沙龙越办越有意思了,上次错过了阙宏宇的mod_cache(还有关于线程进程的讨论)就很可惜,这次关于Lucene的演讲,是无论如何不应该错过了。<br />到目前为止,全文检索已经完全不算高技术门槛了,记得以前看过一本书里面写:“今天,任何程序员,都可以很容易地构造一个全文检索应用”。是的,全文检索的基本原理大家都知道差不多了,剩下的只是实践。我见过纯粹自己开发的,具有AS(Advanced Sear转载 2010-07-09 16:59:00 · 672 阅读 · 0 评论 -
教你如何修改源代码使paoding庖丁分词器支持最新版本Lucene3.0.2
<br /> 大家都喜欢开源,不过其有一个问题就是版本的兼容性问题。<br /> 去年我还在用lucene2.3现在却到了3.0.2.而qieqie前辈估计很忙,所以对于兼容Lucene3的版本的paoding迟迟未发布。<br /> 在google代码网http://code.google.com/p/paoding/issues/detail?id=49#makechanges有提供的三个文件用来覆盖原有的代码使paoding兼容Lucene3.<br /> 而我原创 2010-07-09 14:48:00 · 4076 阅读 · 0 评论 -
TermVector用法:相关搜索功能及提高高亮显示性能
<br />转自:http://hi.baidu.com/z57354658/blog/item/b80f524b2c92e1fa82025cbd.htmlpublic class TermVectorTest { Analyzer analyzer = new SimpleAnalyzer(); Directory ramDir = new RAMDirectory(); public void createRamIndex() throws Corr转载 2010-07-08 22:44:00 · 1116 阅读 · 0 评论 -
全面讲述Lucene3.0的Lucene In Action(第二版)出来了
<br />转自:http://caihx.javaeye.com/blog/569160<br /> <br />此版为图灵的MEAP版本,感兴趣的赶紧下哦……<br />源代码文件太大,不传了,给个地址:http://www.manning.com/hatcher3/<br />LuceneInAction2ndEditionMEAP.rar (4.1 MB) 下载次数: 634 <br />其他链接:<br /> 下载源代码: http://www.manning.com/hatcher3/原创 2010-07-06 14:52:00 · 2533 阅读 · 0 评论 -
Lucece中的filter器群组及其缓存大盘点
<br />转自:http://wjboy49.javaeye.com/blog/576050<br /> lucene中的filter其实并不起眼,大家对其对性能的影响也不是很关注,但实际上filter是除了单纯搜索以外,其他搜索附加功能的必选组件,其性能很大程度上会直接影响搜索的性能,之前我一直认为filter的性能比query高,但事实说明并不完全如此(这里所说的负荷是指io消耗并不是cpu),实际上在lucene中充满着各种io流,也就是说很多东西都无法从根本上保存,这也给缓存带来了很大难转载 2010-07-02 23:09:00 · 1485 阅读 · 0 评论 -
Lucene3.0.2高亮显示报:java.lang.reflect.InvocationTargetException
<br />项目原导入包:<br />lucene-core-3.0.2.jar<br />lucene-highlighter-3.0.2.jar<br />采用TermPositionVector位置方式进行高亮显示,主要代码如下:<br /> TermPositionVector termFreqVector = (TermPositionVector)reader.getTermFreqVector(id, fieldName);<br /><br /> TokenStream to原创 2010-07-20 18:37:00 · 1071 阅读 · 0 评论 -
Lucene3中的Lock锁
最近同事发来一个bug,如图所示:以前跑的一直是没问题,但不知为何突然会报这个错。google一下搜到:http://www.gossamer-threads.com/lists/lucene/java-user/100965其中ian.lea at gmail 提出几点:1、文件路径问题。2、使用SimpleFSLockFactory而不是默认的native class类。3、使用lucene的最新版本。由于无法远程调试这个问题还得等到下周同事过去才能去处理。趁着这机会又去了解了一下Lucene中的Loc原创 2011-04-23 14:43:00 · 1675 阅读 · 0 评论 -
解决数字和英文字母结合检索出现高亮重复问题
问题如下: 数字与英文结合在一起检索,出现高亮重复问题 如:检索“220”则 关于同意220kV佛山变电站#1、#2主变报废的批复 .txt 检索“220kv”则 关于同意220220kV佛山变电站#1、#2主变报废的批复 .txt 高亮采用的是索引时记录Term的位置,高亮处理采用TermPositionVector termF原创 2011-01-26 13:04:00 · 3469 阅读 · 0 评论 -
org.logicalcobwebs.proxool.ProxoolException: Unexpected prototyping problem
<br />报错异常:<br />[prototyper] null.sweep<105> | Prototype<br /> org.logicalcobwebs.proxool.ProxoolException:Unexpected prototyping problem<br /> at org.logicalcobwebs.proxool.Prototyper.buildConnection<Prototyper.java:229><br /> at org.logicalcobwebs.pr原创 2010-12-29 11:35:00 · 7312 阅读 · 0 评论 -
PDF抽词报错:java.lang.NullPointerException at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:194)
<br />最近遇到PDF抽词报错:<br />java.lang.NullPointerException<br /> at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:194)<br /> at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:182)<br /> at org.pdfbox.pdmodel.PDDocumentCatalog.getAllP原创 2010-12-22 14:44:00 · 3133 阅读 · 0 评论 -
解决抽词word2003之前版本文档报错问题
<br />抽词扩展名为.doc的word文档报一系列异常如下:<br />异常一:<br />java.lang.IndexOutOfBoundsException: Index: 10, Size: 7<br /> at java.util.ArrayList.RangeCheck(Unknown Source)<br /> at java.util.ArrayList.get(Unknown Source)<br /> at org.apache.poi.hwpf.model.PlexOf原创 2010-12-22 15:59:00 · 2352 阅读 · 0 评论 -
《自己动手建搜索引擎》日志分析类代码解析与修正为兼容lucene3.0.2
<br />搜索日志是用来分析用户搜索行为和信息需求的重要依据。一般记录如下信息:搜索关键字 用户来源IP 本次搜索返回结果数量 搜索时间 其他需要记录的应用相关信息<br /> 例如:搜索时间|日志类型|搜索类型|搜索关键字|IP地址|本次搜索返回结果数量, 存放日志文件内容如下:2008-04-0412:01:19.2876|DEBUG|blog|title:瑞丽女性网|222.130.192.109|8<br />2008-04-0412:01:22.1626|DEBUG|blog|title:瑞原创 2010-12-02 18:56:00 · 1236 阅读 · 0 评论 -
自动提示功能实现:solr中TermsComponent源代码分析
一个曾实现的简单思路:<br />自动提示功能,以前的有一种实现思路就是在数据库里建一张表,其主要字段有:<br /> keyword-检索关键字;kcount-检索次数;dissect_word-对检索关键字分词后的结果;kdate:检索时间<br /> 由于用户输入的检索关键字可能很乱,又可能很杂,所以想到通过分词器把检索关键字进行分词处理,若数据库中在dissect_word中找到含有相同的值则认为是检索相同的关键字,kcount+1.<br /> 当用户检索“lucene”的时候原创 2010-12-01 20:40:00 · 4480 阅读 · 0 评论 -
获取一个索引文件频率最高的Term(可实现热点关键字的一个思路之一)
<br /> 前段时间同事也开始对搜索感兴趣,他看到luke工具界面上会显示Term的频率数,提出通过索引用户的搜索日志中的检索关键字,我们是否可以利用这个Field字段中Term频率高低来说明其是否代表热点关键字。<br /> 想想觉得也是有一点在理,特别是对用户没有任何可分析性的情况下。但这就引出了一个问题:如何获取整个索引文件里频率最高的哪几个Term?<br /> 翻了几次API,网上也搜了但没找到什么信息,仅仅看到网上有一篇文章讲到通过IndexReader取出所有的Term,然原创 2010-12-01 20:38:00 · 2646 阅读 · 0 评论 -
MoreLikeThis实现检索相似文档
<br />输入“related:doc_id”返回索引库中的相关文档publicstaticvoid main(String[] args) throws IOException {<br /> FSDirectory directory = FSDirectory.open(new File("D://DATAMANAGER//INDEX//SYS_3000"));<br /> IndexReader r = IndexReader.open(directory);<br /> MoreLikeThis原创 2010-12-01 20:36:00 · 3559 阅读 · 0 评论 -
FieldCache在lucene中使用的代码解析
<br />转自:http://moshalanye.javaeye.com/blog/281379<br />这篇文章的由来是在寻求lucene的搜索的性能提高的过程中成形的, <br />感谢所有所以给于我帮助的朋友,在baseworld的提示下,我仔细翻阅了代码, <br />于是想把自己的一些收获和想法写出来,希望对在学习的人提供帮助, <br />更希望有人不吝啬手中的砖头,指正我的想法 <br /><br /><br /><br />FieldCache为FieldCacheImpl的接口, <转载 2010-07-02 22:34:00 · 2212 阅读 · 0 评论 -
庖丁解牛分词自定义词库
<br />收藏以便以后用到:<br />转自:http://blog.youkuaiyun.com/askpp/archive/2009/09/08/4532355.aspx<br />庖丁分词 paoding 字典的自定义加载<br />大家下载好了庖丁中文分词后并且在MyEclipse配置好了后,并且在wingdows的环境变量里面配好了dic的字典路径后,就想着怎么加载自定义的字典了吧,哈哈,其实很简单啦,我突然之间看到的啦,你进入dic文件夹找到paoding-dic-names.properties这个文件原创 2010-06-30 08:56:00 · 7558 阅读 · 1 评论 -
使用POI解析Word2007和Excel2007的实例代码
这周额外分配的任务是对office2007的文档进行解析,以前采用的是poi3.0版本,其只能对office2003版本的文档进行解析,还无法解析office2007.网上查了一下有人提供了最原始的解决方法,但是发现其实poi在3.5版本已经解决了这个问题。 下面是网上搜的一篇文章:其实不需要完全匹配下面该文章提供的jar包,本人就是下载了poi-bin-3.6-20091214包,然原创 2010-04-15 15:38:00 · 4827 阅读 · 3 评论 -
Lucene多索引目录检索
我们可以使用 MultiReader 或 MultiSearcher 搜索多个索引库。 MultiReader reader = new MultiReader(new IndexReader[] { IndexReader.Open(@"c:/index"), IndexReader.Open(@"//server/index") }); IndexSearcher searcher = ne原创 2008-09-24 12:22:00 · 2706 阅读 · 0 评论 -
Lucene多线程操作实现
Lucene多线程操作实现对于并发,Lucene 遵循以下规则:1. 允许任意多的读操作并发,即任意数量用户可同时对同一索引做检索操作。2. 即便正在进行索引修改操作(索引优化、添加文档、删除文档),依然允许任意多的检索操作并发执行。3. 不允许并发修改操作,也就是说同一时间只允许一个索引修改操作。Lucene内部已经对多线程安全进行了处理,很多操作都使用了 lock 进行多线程同步锁定。只要原创 2008-09-08 08:47:00 · 4088 阅读 · 0 评论 -
Heritrix扩展和定制的配置操作
sorry,对于前面发表的《MyEclipse下配置Heritrix的开发环境》,这个配置最初我只是检验到在MyEclipse可以运行,但是后来在 WebUI建立JOB,配置简单任务运行时,在进入module配置页,发现所有的配置可以删除,移动,但是不可以添加和修改,没有可选的下拉框。最后网上查找原因是:配置文件找不到,应该在classpath标签页添加配置文件的路径,但是我最后没搞出来,最原创 2008-04-29 12:07:00 · 2824 阅读 · 0 评论 -
heritrix配置篇
目前对Heritrix做了初步选型测试,有了一些总结: 1.关于安装: 目前的版本号为1.12.1,官网地址为 http://crawler.archive.org/。常规安装,即解压到相关目录,之后配置系统环境变量"HERITRIX_HOME"到该解压目录(Java环境已经配置好)。 2.安装的后续工作: 将 %HERITRIX_HO原创 2008-04-27 22:52:00 · 2971 阅读 · 2 评论 -
Heritrix架构学习笔记(三)
3、Frontier链接制造工厂在heritrix-1.12.1/docs/articles/developer_manual/frontier.html下可找到Heritrix的官方文档的一个Frontier例子: /** * A simple Frontier implem原创 2008-04-25 22:21:00 · 1380 阅读 · 0 评论 -
Heritrix架构学习笔记(二)
2、中央控制器CrawlController该类是一次抓取任务中的核心组件。塔将决定整个抓取任务的开始和结束。 org.archive.crawler.framework Class CrawlController java.lang.Object org.arc原创 2008-04-25 22:18:00 · 1856 阅读 · 0 评论 -
Heritrix的多线程ToeThread和ToePool
4、Heritrix的多线程ToeThread和ToePool要想更有效更快捷地抓取网页内容,则必须采用多线程。Heritirx提供了一个标准的线程池ToeThread,用于管理所有的抓取线程。 org.archive.crawler.framework Class ToePool原创 2008-04-25 22:23:00 · 1791 阅读 · 0 评论 -
Heritrix架构学习笔记(一)
1、抓取起点CrawlOrder在heritrix-1.12.1/docs/apidocs目录下可以查看其API: org.archive.crawler.datamodel Class CrawlOrder java.lang.Object原创 2008-04-25 22:16:00 · 1753 阅读 · 0 评论 -
MyEclipse下配置heritrix 1.12.1步骤
最近做一个基于LUCENE+HERITRIX的毕业设计,在MyEclipse下配置heritrix 1.12.1,参考《开发自己的搜索引擎》书中介绍的越看越糊涂,网上查找也是不完全,昨晚再配置了一下,现整理如下,希望对大家有帮助:1. 下载heritrix 1.12.1-src.zip和heritrix 1.12.1.zip。 2. 新建空的java项目(注意不是WEB项目原创 2008-04-25 20:32:00 · 1562 阅读 · 5 评论 -
多个TermQuery或一个MultiFieldQueryParser构建BooleanQuery多个域的检索学习实例代码
import java.io.IOException;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.in原创 2008-09-24 12:39:00 · 8599 阅读 · 1 评论 -
查看Lucene分词器分词后的结果
import java.io.StringReader;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.Token;import org.apache.lucene.analysis.TokenStream;import org.apache.lucene.analysis.Whitesp原创 2008-09-24 18:57:00 · 3433 阅读 · 0 评论 -
Lucene 分组统计方案——只能适合于小数据量,性能耗用太大
转:http://tech.ddvip.com/2009-01/1231742812105589.html 注意:本文内容仅适用于Lucene.Net,以2.1版为例,其它版本可能会有出入,Java版本差别更大一些。 改动库先要有个思路。Lucene.Net的查询结果是一个Hits,而它有一个方法length可以得到总的结果。这个结果是一个精确值。这个值实际上是在TopD原创 2009-10-01 09:10:00 · 1581 阅读 · 0 评论 -
全文搜索 lucene使用与优化
1 lucene简介1.1 什么是luceneLucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。1.2 lucene能做什么要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要转载 2009-10-01 15:43:00 · 680 阅读 · 0 评论 -
Lucene Payload 的研究与应用
http://www.linuxeden.com/html/sysadmin/20081110/62352.htmlPayload (元数据) 诞生于 Lucene 的2.2 版本,它是在 Lucene 2.1 索引文件格式的基础上扩展而来,提供了一种可以灵活配置的高级索引技术,在某些特定应用场景下能优化基于 Lucene 构建的应用的搜索性能。本文重点研究了 Payload 的实现原理、索引转载 2009-06-15 12:13:00 · 945 阅读 · 0 评论 -
IndexSearch中增量索引使用reopen
public IndexSearcher newIndexSearcher() { try { if(null==isearcher){ isearcher = new IndexSearcher(IndexReader.open("D:/Index")); }else{ IndexReader indexReader=isearc原创 2009-08-04 23:04:00 · 1903 阅读 · 2 评论 -
都是分词模式惹的祸——庖丁解牛分词查询不出结果问题
最近一直负责做lucene构建搜索引擎,其中采用的中文分词器就是qieqie提供的庖丁解牛分词器。由于发现当搜索: 1、关于番禺供电局增加乙类工作票签发人的请示 2、关于从化供电局2006年度“两票”考核奖励方案的报告 3、关于辖区内10KV架空线路两旁(线行下)受树木影响情况的报告 4、关于增城供电局防坠落装置安装和使用情况的报告 5、关于广州萝岗供电局2007年安措计划的报告 6、关于召开重要原创 2009-04-30 09:08:00 · 2806 阅读 · 0 评论 -
lucene日期索引与搜索
工具类里:TimestampConverter类里的方法:/** * lucene建日期索引转换 * @param timestamp * @return */ public String timestampToShortStr2(Timestamp timestamp){ Date date = new Date(timestamp.getTime()); SimpleD原创 2009-03-14 15:53:00 · 3115 阅读 · 0 评论