Lucene - 搜索操作
-
简述
搜索过程是Lucene提供的核心功能之一。下图说明了该过程及其使用。IndexSearcher 是搜索过程的核心组件之一。我们首先创建目录(S)包含索引,然后将它传递给IndexSearcher的这将打开目录使用的IndexReader。然后我们创建一个带有Term的Query并通过将Query传递给搜索器来使用IndexSearcher进行搜索。IndexSearcher的返回TopDocs对象包含与所述的文档ID(S)沿着搜索细节文献这是搜索操作的结果。现在,我们将向您展示一个逐步的方法,并使用一个基本示例帮助您理解索引过程。 -
创建一个查询解析器
QueryParser 类将用户输入的输入解析为 Lucene 可理解格式的查询。按照以下步骤创建一个 QueryParser -Step 1 − 创建 QueryParser 对象。Step 2 - 初始化使用标准分析器创建的 QueryParser 对象,该对象具有要运行此查询的版本信息和索引名称。 -
创建一个索引搜索器
IndexSearcher 类充当在索引过程中创建的搜索器索引的核心组件。按照以下步骤创建一个 IndexSearcher -Step 1 − 创建IndexSearcher 对象。Step 2 − 创建一个 Lucene 目录,该目录应指向要存储索引的位置。Step 3 − 初始化使用索引目录创建的 IndexSearcher 对象。 -
进行搜索
按照以下步骤进行搜索 -Step 1 − 通过QueryParser 解析搜索表达式,创建一个Query 对象。Step 2 − 通过调用IndexSearcher.search() 方法进行搜索。 -
获取文件
以下程序显示了如何获取文档。 -
关闭索引搜索器
以下程序显示了如何关闭 IndexSearcher。 -
示例应用
让我们创建一个测试 Lucene 应用程序来测试搜索过程。步骤 描述 1 创建一个名称的项目LuceneFirstApplication一个包下com.jc2182.lucene作为解释Lucene的-第一个应用程序的章节。您也可以使用在Lucene - First Application章节中创建的项目来理解本章的搜索过程。2 按照Lucene - First Application章节中的说明创建LuceneConstants.java、TextFileFilter.java和Searcher.java。保持其余文件不变。3 如下所述创建LuceneTester.java。4 清理并构建应用程序以确保业务逻辑按照要求工作。LuceneConstants.java
此类用于提供要在整个示例应用程序中使用的各种常量。TextFileFilter.java
这个类用作 .txt 文件过滤器。Searcher.java
此类用于读取对原始数据建立的索引并使用 Lucene 库搜索数据。LuceneTester.java
该类用于测试Lucene库的搜索能力。 -
数据和索引目录创建
我们使用了 10 个名为 record1.txt 的文本文件到 record10.txt 包含学生的姓名和其他详细信息,并将它们放在目录 E:\Lucene\Data 中。测试数据。索引目录路径应创建为 E:\Lucene\Index。运行本章中的索引程序后Lucene - Indexing Process,您可以看到在该文件夹中创建的索引文件列表。 -
运行程序
完成源、原始数据、数据目录、索引目录和索引的创建后,您可以继续编译和运行程序。为此,请保持LuceneTester.Java 激活文件选项卡并使用 Eclipse IDE 中提供的运行选项或使用 Ctrl + F11 编译并运行你的 LuceneTesterapplication. 如果您的应用程序成功运行,它将在 Eclipse IDE 的控制台中打印以下消息 -