Lucene 组件和概述
备注
此功能可用于 NCache 企业 和 做强做精做久。 版本。
众所周知,Lucene 是一个强大而高效的搜索引擎,可根据用户要求提供广泛的文本搜索技术。 Lucene 比任何其他文本搜索引擎都要多,因为给用户的选择不受任何歧视。 它具有强大而强大的搜索算法,并支持广泛的搜索查询。
Lucene 应用程序有一个基本循环,它主要包括在特定路径上执行搜索的第一个索引数据。 根据用户的需要,添加的数据可以是任何文本形式。 数据被索引和标记化,然后使用查询对这些标记执行搜索。 这是一个双向过程,因为它首先包括数据处理,然后对其进行搜索。
下图描述了基本的 Lucene 模型工作流程。
Lucene 的组件
为了使用 Lucene 进行文本搜索,让我们仔细看看 Lucene 使用的主要 API。 请注意,它不是 Lucene 的完整指南。 但是,它将帮助您了解基本和激进的 Lucene API。
以下是用于构建基于 Lucene 的解决方案的基本 API。
目录: 它是定义索引形成位置的基类。
文件: 它包含要索引的数据。
分析仪: 在对数据进行索引时,分析器会根据对数据进行标记和搜索的依据来决定标准。 同样,它在查询数据时使用,这也涉及标记化。
索引作者: 预先创建的文档使用此类传递到目录。 一次可以打开一个 indexWriter。
索引阅读器: 创建索引的每个目录都可能打开了负责从索引中读取数据的读取器。
索引搜索器: 搜索者负责通过阅读器查询数据。
下面给出这些类的详细描述:
目录
此类表示存储 Lucene 索引的位置。 需要打开一个目录来维护索引,以便可以对它们执行进一步的操作。
文件
文档是一个集合 领域. 这些字段包含文本数据作为字段名称的值。 该值是您要索引的数据,然后可用于将来搜索。 对于每个字段,用户可以指定是否要分析该字段值。 文档基本上是搜索单元,当针对某个字段搜索一个字段时将返回该单元 searchterm
.
分析仪
Analyzer
如前所述,主要负责根据提供的类型将数据标记为更小的块。 它基本上将文档的字段解析为可索引的标记。 分析仪分析数据的方式会影响用户搜索数据的能力。 下面列出了四种基本和最常用的 Lucene 分析器。
空白分析器
如名称所示,此分析器根据空格分析数据。 此外,该分析器维护单词的大小写。 它根据它主要包含的案例执行数据的标记化。
标准分析仪
它根据停用词分析数据,并对小写数据进行标记化,类似于简单的分析器。 此外,它还能识别 URL 和电子邮件地址并相应地生成令牌。 由于此功能,它最常用,因为它被认为是最智能的分析仪。
简单分析器
它以小写形式索引数据并根据非字母拆分它们。 它不会索引 URL 和非字母字符,例如符号或数字。
停止分析器
停止分析器根据非字母字符和停止词从数据中生成标记。 停用词是在索引时应该被忽略的词,因为分析器认为它们与被扫描无关。 此外,停止分析器不会索引 URL 和非字母字符,例如符号或数字。
考虑下面的句子:
这是“DistributedLucene”的教程,位于 alachisoft。com。
空白分析器 | 停止分析器 | 简单分析器 | 标准分析仪 |
---|---|---|---|
本篇 is a 教程 “分布式Lucene” at alachisoft。com。 |
教程 分布式lucene alachisoft COM |
Free Introduction is a 教程 “分布式lucene” alachisoft COM |
教程 分布式lucene alachisoft |
索引编写器
为了添加文档并对其进行索引,我们需要一个 IndexWriter
. 作家需求:
一个有效的 Lucene 目录:文档被索引的地方
分析器:让作者据此分析数据。
Writer 对应于索引数据的分析器,然后将结果添加到 Directory 用于存储数据。 确切地说,写入器负责对数据正确执行所有写入操作,然后将其存储。 有一组可以对写入器执行的操作,写入器在所有操作之后被释放。
索引阅读器
Lucene 的主要功能是搜索之前添加的数据。 为此,我们有 IndexReader
它从目录中读取数据。 在文档的每次更新中 IndexReader
需要重新初始化。 您可以创建一个 IndexReader
或获取一个实例 IndexReader
来自 IndexWriter
. 您将目录实例传递给已索引所有文档的阅读器。
索引搜索器
IndexSearcher
是用实例初始化的
IndexReader
它从用户那里获取查询并相应地搜索数据。 查询是 Lucene 提供的一个抽象类,用于定义要执行的搜索的范围和类型。 在搜索时,我们返回 TopDocs
这是使用查询搜索的结果。
现在查询已创建,您可以使用 QueryParser
. 分析器被传递给 queryParser,它根据该分析器解析查询。 此外,在文档中添加的字段名被传递给查询搜索器,以便它相应地搜索数据。
一个数组被维护在 topDocs
这被称为 scoreDocs
. ScoreDocs
将在查询执行的基础上维护搜索结果。 在迭代这个数组时,可以检索结果数据。
推荐:建议用于搜索的分析器与最初索引数据的分析器相同。