lucene
文章平均质量分 68
eric509
这个作者很懒,什么都没留下…
展开
-
lucene中用到的常用算法
在lucene中,使用了很多常用的算法。还有一些很不错的算法,在学习lucene的过程中,顺便把这些算法也纪录下来,以后编程中可以直接使用。1、在类TermHashPerField类中使用了快速排序:[code="java"]void quickSort(RawPostingList[] postings, int lo, int hi) { if (lo >= hi...原创 2011-05-16 17:39:07 · 329 阅读 · 0 评论 -
影响Lucene索引速度原因以及提高索引速度技巧
原帖地址:http://www.cnblogs.com/gaoweipeng/archive/2009/10/16/1584503.html MaxMergeDocs该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬盘,生成一个新的索引segment文件。所以该参数也就是一个内存buffer,一般来说越大索引速度越快。MaxBufferedDocs这个参数默认是d...原创 2014-02-21 11:44:15 · 149 阅读 · 0 评论 -
提高Lucene索引性能
提高Lucene索引性能当索引的文件不多时,用 Lucene 默认的设置就能得到很好的性能。但是,如果索引大量文件,就得通过一些手段去提高 Lucene 索引性能。 1、 索引性能差的原因 1) Lucene 索引过程 在索引文件的过程中, Lucene 不是直接将文件索引到磁盘上,而是首先缓存,然后在写到磁盘。如上图所示。 2) ...原创 2012-09-21 16:09:27 · 119 阅读 · 0 评论 -
改进lucene的打分算法
这个是从别人的文章转过来的,记录一下,做全网搜索的时候可能会有用 Lucene基础排序算法:score_d = sum_t(tf_q * idf_t / norm_q * tf_d * idf_t / norm_dt_t)score_d: Document(d) 的得分sum_t: Term(t) 的总和tf_q: 查询中 t 的频度的平方根tf_...原创 2012-09-21 16:02:03 · 206 阅读 · 0 评论 -
lucene高亮时由于QueryParser引起的问题
在使用QueryParser之前,要使用一个函数QueryParser.escape() 对关键字进行escape,主要是对 " [ )等符号进行转译,因为这些符号在QueryParser中是表示一个query的开始或结束的,所以当keyword中出现这些符号时,如果没有对应的另一个作为结束的话,那么调用QueryParser.parse()时,就会出错,抛出异常。 我们搜索的时...原创 2012-04-19 16:09:20 · 417 阅读 · 0 评论 -
lucene中高亮遇到的问题
之前做高亮,用lucene默认的HighLighter,显示结果的时候有个问题.但是也是在细颗粒分词的时候才出现的,比如说: 中国地质大学 分词的时候是一个长词,如果细颗粒分词的话,我们希望分词结果是: 中国地质大学 |中国|地质|大学| 如果用HighLighter的话,就会有个问题,当搜索词是 "中国 大学"的时候,对"中国地质大学" 这个字符串的高亮就是错误的,正...原创 2012-04-16 17:11:28 · 346 阅读 · 0 评论 -
lucene提高搜索性能
译自:http://wiki.apache.org/lucene-java/ImproveSearchingSpeed这里讨论了提高基于Lucene的应用程序搜索速度的几种方法。如果你想提高索引的速度,请阅读“如何提高Lucene构建索引的速度”。首先确定你需要加快搜索速度。这里的很多方法很容易尝试,但是有些会增加你程序的复杂性。所以请首先确定搜索速度确实太慢,而且速度问题确实是L...原创 2012-08-07 16:23:21 · 154 阅读 · 0 评论 -
(转)zoie中DocIDMapperImpl类的分析
原文:http://www.kafka0102.com/2010/07/238.html (这是个牛人) 还是说下DocIDMapperImpl的作用吧。在zoie中,uid和lucene的docid有一一对应关系。从docid到uid的映射很简单,就是分配个maxdoc大小的数组,索引位置是docid,值是uid。这样做也是因为docid是从小到大自增的,大小总有限。但uid是...原创 2012-11-08 16:13:59 · 173 阅读 · 0 评论 -
lucene中的ListMerger类(多路归并算法的实现)
linkedIN的开源bobo项目中ListMerger类的分析: 实现的是一个多路归并的算法,构造函数的参数Iterator<T>[] iterators,是一个iterator的array,每个iterator就看作是一个list, 每一个list 都是排好序的,这里要找得分最高的结果,那么就是一个降序的list。 public...原创 2012-03-31 16:13:53 · 102 阅读 · 0 评论 -
lucene中PriorityQueue类的功能
org.apache.lucene.util.PriorityQueue PriorityQueue<T>类实际上是一个最大堆,在N中找出最小的M个数字,可以用这个类来做。 可以自己写一个Comparator<T>,那么可以控制为最大堆,还是最小堆。 Comparator<Integer> myComparator= ne...原创 2012-03-28 16:09:15 · 108 阅读 · 0 评论 -
FuzzyQuery中计算edit distance的算法函数
FuzzyQuery使用中有一个计算edit distance的函数,在类FuzzyTermEnum中,如下: /****************************** * Compute Levenshtein distance ******************************/ /** * <p>Similarity...原创 2012-07-16 16:15:21 · 152 阅读 · 0 评论 -
重新Query对象树及里边用到的常用算法
重建Query对象是个递归的过程,是个广度遍历树的过程。BooleanQuery.reWrite()函数:BooleanQuery clone = null; // recursively rewrite for (int i = 0 ; i < clauses.size(); i++) { BooleanClause c...原创 2012-07-13 17:32:52 · 120 阅读 · 0 评论 -
zoie建索引的过程以及多线程建索引的一点想法
zoie的原理在之前转载的文章中介绍过,现在介绍一下zoie建索引的过程。zoie建索引是一个异步消费过程,ZoieSystem使用的是父类AsyDataConsumer的consume()函数,这个类保持一个类型为List的_batch用来装载将要进行索引的doc。AsyDataConsumer的consume函数,只是负责将doc插入到这个_batch中,并不进行具体的索引工作...原创 2012-05-11 16:41:21 · 129 阅读 · 0 评论 -
lucene中一个多线程时顺序处理某些事务的例子(WaitQueue)
在lucene中,文档是按照添加的顺序编号的,由lucene的索引格式可知,文档是按照ID的顺序从小到大写到索引文件中的。在多线程建索引的情况下,有可能编号考前的文档是个大文档,处理的时间比较长,而后边的文档又处理的比较快,那么就需要将后边先处理完的文档缓存起来,等前面的文档处理完了再顺序的写到索引文件中。lucene中的WaitQueue类就是实现这个功能的。 算法主要...原创 2012-05-10 17:38:50 · 82 阅读 · 0 评论 -
lucene中一个多线程时顺序处理某些事务的例子(WaitQueue)
在lucene中,文档是按照添加的顺序编号的,由lucene的索引格式可知,文档是按照ID的顺序从小到大写到索引文件中的。在多线程建索引的情况下,有可能编号考前的文档是个大文档,处理的时间比较长,而后边的文档又处理的比较快,那么就需要将后边先处理完的文档缓存起来,等前面的文档处理完了再顺序的写到索引文件中。lucene中的WaitQueue类就是实现这个功能的。 priv...原创 2012-05-10 17:38:33 · 110 阅读 · 0 评论 -
zoie的原理
Zoie是一个实时的搜索引擎系统,其需要逻辑上独立的索引和搜索子系统相对紧密的结合在一起,从而使得一篇文档一经索引,就能够立刻被搜索的到。ZoieSystem是Zoie的重要组成部分,其一方面通过实现DataConsumer接口而完成了索引功能,一方面通过实现IndexReaderFactory<ZoieIndexReader<R extends IndexReader&...原创 2011-07-08 15:03:46 · 628 阅读 · 0 评论 -
一种基于Lucene的实时搜索方案
原文:http://www.tuicool.com/articles/NZ7v6b背景阿里集团各大业务快速发展过程中都对搜索服务很多刚性的需要,而这样的搜索需求有着非常明显的特征:快速支持、低成本、实时性和稳定性。快速支持:业务需求急迫、需要一周甚至几天内完成索引服务搭建、测试、上线环节。低成本:搜索需求方要求接入便捷,低成本的机器和运维成本。实时性:搜...原创 2016-05-06 18:35:41 · 177 阅读 · 0 评论