Lucene - 字段选项
-
简述
字段是索引过程中最重要的单元。它是包含要索引的内容的实际对象。当我们添加一个字段时,Lucene 使用字段选项在该字段上提供了大量控件,这些控件说明了一个字段有多少可搜索。我们将包含Field(s) 的Document(s)添加到IndexWriter,其中 IndexWriter 用于更新或创建索引。现在,我们将向您展示逐步方法,并使用一个基本示例帮助您了解各种字段选项。 -
各种字段选项
以下是各种字段选项 --
Index.ANALYZED——这里,我们先分析,再做索引。这用于普通文本索引。Analyzer 会将字段的值分解为令牌流,并且每个令牌都可以单独搜索。
-
Index.NOT_ANALYZED- 在这里,我们不分析而是做索引。这用于完整的文本索引。例如,人名、URL 等。
-
Index.ANALYZED_NO_NORMS - 这是一个变种 Index.ANALYZED. 分析器会将字段的值分解为令牌流,并且每个令牌都可以单独搜索。但是,NORM 不存储在索引中。NORMS 用于促进搜索,这通常最终会消耗大量内存。
-
Index.Index.NOT_ANALYZED_NO_NORMS - 这是 Index.NOT_ANALYZED. 索引已完成,但 NORMS 未存储在索引中。
-
Index.NO − 字段值不可搜索。
-
-
字段选项的使用
以下是可以使用字段选项的不同方式 --
创建一种从文本文件中获取 Lucene 文档的方法。
-
创建各种类型的字段,这些字段是键值对,包含键作为名称和值作为要索引的内容。
-
设置要分析或不分析的字段。在我们的例子中,只分析内容,因为它可以包含搜索操作中不需要的数据,例如 a、am、are、an 等。
-
将新创建的字段添加到文档对象并将其返回给调用者方法。
-
-
示例应用
为了测试索引过程,我们需要创建一个 Lucene 应用程序测试。步 描述 1 创建一个名称的项目LuceneFirstApplication一个包下com.jc2182.lucene作为解释Lucene的-第一个应用程序的章节。您还可以使用在EJB - First Application章节中创建的项目来理解本章的索引过程。2 创建LuceneConstants.java,TextFileFilter.java和Indexer.java作为解释Lucene的-第一个应用程序的章节。保持其余文件不变。3 如下所述创建LuceneTester.java。4 清理并构建应用程序以确保业务逻辑按照要求工作。LuceneConstants.java
此类用于提供要在整个示例应用程序中使用的各种常量。TextFileFilter.java
此类用作 .txt 文件过滤器。Indexer.java
此类用于索引原始数据,以便我们可以使用 Lucene 库对其进行搜索。LuceneTester.java
该类用于测试 Lucene 库的索引能力。 -
数据和索引目录创建
我们使用了从 record1.txt 到 record10.txt 的 10 个文本文件,其中包含学生的姓名和其他详细信息,并将它们放在目录 E:\Lucene\Data 中。 测试数据. 索引目录路径应创建为 E:\Lucene\Index。运行此程序后,您可以看到在该文件夹中创建的索引文件列表。 -
运行程序
完成源、原始数据、数据目录和索引目录的创建后,就可以编译和运行程序了。为此,请保持LuceneTester.Java 激活文件选项卡并使用 Eclipse IDE 中提供的运行选项或使用 Ctrl + F11 编译并运行你的 LuceneTester应用。如果您的应用程序成功运行,它将在 Eclipse IDE 的控制台中打印以下消息 -成功运行程序后,您将在您的 index directory −