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
Lucene in action-01-lucene 是什么?
初识Lucene
Lucene的简单易用性是它广受欢迎和成功的关键因素之一。Lucene是一个设计得非常优秀的软件, 因为它向用户提供了简单易用的索引和搜索API, 并屏蔽了复杂的实现过程。因此, 当开始使用Lucene时, 不必很深入地了解它的信息索引及检索的内部工作原理。而且由于Lucene API的简单直接, 你只需要学会如何使用它提供的类就可以了。在本章中, 我们通过一些现成的代码...
2022-01-10 13:01:55 |
Lucene