lucene
skywalkerVVV
牛逼的背后都是傻逼的坚持
展开
-
lucene in action 第一章
lucene 是一个索引引擎,和sphinx类似。他不是搜索引擎,只是建造搜索引擎的基础。 lucene 核心是一个 jar库。只有1M左右。 它的有很多外围的模块,使他更强大,比如spellchecker(拼写检查)和highlighter(高亮结果中的选中文本)。 下面是一个lucene的索引和搜索的列子。 索引主要用到的类有 Document Field Analyzer IndexWri原创 2012-12-26 12:39:54 · 531 阅读 · 0 评论 -
lucene in action第二章(1)(深…
lucene的索引 document是lucene的index和search的原子单位。每一个field包含若干个Field,每一个Field包含真正需要的内容 一、对一个Field我们可以对它有三种处理: new Field("city", "Den Haag", Field.Store.YES, Field.Index.ANALYZED,TermVector.WITH_POSI原创 2012-12-26 12:39:56 · 538 阅读 · 0 评论 -
lucene in action第二章(2)(深…
Field 详解 document是search和index的基本单位,Field就是存储数据的基本单位。Field 有 name和value还有其他很多的选项,可以控制它的行为。 一、如上一篇所讲的 Field的三种处理 new Field("city", "Den Haag", Field.Store.YES, Field.Index.ANALYZED,TermVector.WITH原创 2012-12-26 12:40:00 · 537 阅读 · 0 评论 -
lucene in action 第二章(3)(索…
一、索引数值类型的数据。 在早期的lucene,数值类型的值,如“1900”是作为一个文本来对待的。他就是一个字符串,没有大小,没有范围。在实际使用当中,我们经常需要使用数字作为索引。例如,图书的价格,邮件的收发时间等等。 在lucene2.9以后提供了这种numeric index的功能。 可以使用一个 NumericField的Field子类来实现原创 2012-12-26 12:40:03 · 909 阅读 · 0 评论 -
lucene in action 第三章(2)
lucene的这种各种各样的查询类型 1、TermQuery 最简单的Query类型,某一个field是否含有一个term的value 2、TermRangeQuery 由于term在index中是按照字典顺序排列的,可以使用TermRangeQuery查询一个范围内的Term 例如 Queryquery = new TermRangeQuery("city原创 2012-12-26 12:40:09 · 854 阅读 · 0 评论 -
lucene in ation 第三章(1) sear…
一、search设计的主要的类 IndexSearcher 搜索的关键途径,所有的search都必须通过它 QueryParser 将自然语言转化为一个Query对象。 Query 用于searcher的对象,有很多子类。 TopDocs 包括所有的已经几分的子类原创 2012-12-26 12:40:07 · 556 阅读 · 0 评论 -
lucene in action 第二章(索…
一、通过删除document来回收磁盘空间 Lucene用一个bit数组来标示要删除的document,非常快,但是要删除的document在磁盘空间。直到segment被merge或者显示调用optimize的时候才会真正滴删除那些 被标记需要删除的 document。 二、buffer 和flush 出于对 io的考虑,当有document被add或者delete的时候这些docu原创 2012-12-26 12:40:05 · 559 阅读 · 0 评论