Lucene in action-09-define 自定义
扩展功能点
通过前面几章中关于搜索内容的介绍,你可能会以为本书有关搜索的话题已经结束了。其实不然,在本章中我们将继续讲述此主题的内容。
在前面的第3章和第5章,我们分别讨论了 Lucene 基本的内置搜索功能以及在这些功能之上的一些更高级的搜索特性。
在这两章中,我们只探究了 Lucene 的内置特性。
除此之外, Lucene 还具有一些令人叫绝的扩展功能点。
首先,我们介绍第一...
2022-01-10 13:01:55 |
Lucene
Lucene in action-08-sort 排序
排序
很多使用 Lucene 米实现搜索功能的应用程序都可以利用第三章中介绍的 API 来完成。
但是有些项目单靠前面介绍的基本搜索机制仍然无法实现其功能。
因此在本章中,我们将进一步介绍 Lucene 中更多更为复杂的内置搜索功能。
PhrasePrefixQuery 和 MultiFieldQueryParser这两个类为我们引出了本章要介绍的Lucene 附加的内置功能。
如...
2022-01-10 13:01:55 |
Lucene
Lucene in action-07-analysis 分析
分析
分析(Analysis), 在 Lucene 当中指的是将域(Field) 文本转换为最基本的索引表示单元——-项(Term)的过程。
在搜索过程中,这些项用于决定什么样的文档能匹配查询条件。
例如,如果这句话“For example. if this sentence were indexed into a field”被索引到一个域(Field)中(假设域类型为 Field....
2022-01-10 13:01:55 |
Lucene
Lucene in action-06-TermQuery RangeQuery BooleanQuery QueryParser
3.4在程序代码中创建 Query 对象
正如你在3.2节所看到的,Lucene 的查询操作最终要调用 IndexSearcher 中的 search方法, 在该方法中需要一个 Query 实例作为其参数。
Query 的子类能够通过其构造函数直接实例化;或者正如我们在3.1.2节所讨论的那样,它也能够通过 QueryParser 的 parser函数进行构造。
如果你的应用程序仅仅依...
2022-01-10 13:01:55 |
Lucene
Lucene in action-05-IndexSearcher 与 Query 和 Explanation
场景
如果我们不能通过搜索找到某个文档,那么这个文档就不能为我们所用。即使我们已经对文档进行了索引,如果不能够快速可靠地找到这些文档,我们仍然会徒劳无功。
例如,考虑如下情景:
假设我们需要找出最近12个月出版的有关 Java 的书籍列表,这些书的内容里一定要包含“open source”或“Jakarta”这样的关键字,此外还要求它们是特价书籍。
另外请别忘了,还要加上一点,关键字...
2022-01-10 13:01:55 |
Lucene
Lucene in action-04-indexing 索引过程控制
2.7 控制索引过程
在对中小型文档集合进行索引的情况下,默认配置的Lucene能够很好地工作。
但是,如果应用程序要处理很大的索引, 你可能想在Lucene的索引过程中添加一些控制,以保证应用程序获得最佳的索引性能。
例如,你可能正在索引几百万个文档,并想加速这一过程,使花费的时间从几个小时缩短到几分钟。而你的计算机有空闲的内存(RAM) ,所以你有必要知道如何使Lucene能更好地...
2022-01-10 13:01:55 |
Lucene
Lucene in action-03-indexing 索引
索引
2.1.1 转换成文本
在用Lucene索引数据之前,首先必须将数据转换成Lucene能够处理的格式——纯文本字符流。
在第1章中, 我们将索引和搜索的对象规定为.txt文件, 这样我们就能简便地用这些文件的内容来填充域的实例。
然而,事情并非都如此简单。假定你需要索引一套PDF格式的手册。
首先, 需要从PDF文档中提取文本信息, 然后用这些提取出来的数据来创建Lucene...
2022-01-10 13:01:55 |
Lucene
Lucene in action-02-lucene 核心类简介
1.5 理解索引过程的核心类
正如你在 Indexer 类中所看到的,执行最简单的索引过程需要用到下列几个类:
IndexWriter
Directory
Analyzer
Document
Field
接下来是这些类的一个简要的讲解,通过这些讲解可以使你对这些类有一个初步的印象。
...
2022-01-10 13:01:55 |
Lucene