创建可搜索索引 java:添加文档区分大小写搜索

在现代 Java 应用程序中,creating a searchable index java 是从大型文档集合中快速、准确检索信息的基础。本教程展示了如何向索引添加文档、启用区分大小写的搜索,并使用 GroupDocs.Search 对过程进行微调。无论您是构建法律仓库、电子商务目录,还是内容管理系统,这些步骤都能帮助您提供精确的结果,让用户满意。

快速答案

  • 启动搜索的主要步骤是什么? Add documents to an index with index.add(...).
  • 如何启用区分大小写的搜索? Set options.setUseCaseSensitiveSearch(true).
  • 可以跨多个目录搜索吗? Yes – call index.add() for each folder you want to include.
  • 哪个方法可以使用对象进行搜索? Use SearchQuery.createWordQuery(...).
  • 测试是否需要许可证? A temporary license is available for trial purposes.

“向索引添加文档” 是什么意思?

向索引添加文档是指将您的源文件(PDF、Word 文档、纯文本等)导入 GroupDocs.Search,以便它构建可搜索的数据结构。索引存储标记化的词项、位置和元数据,使引擎能够执行快速查询,包括区分大小写的查询,并高效地对结果进行排序。

为什么在 Java 中启用区分大小写的搜索?

启用区分大小写的搜索可确保引擎区分仅在字母大小写上不同的词项,这在大小写具有意义的领域尤为关键。它实现精确词项匹配,支持合规性要求,并通过返回与用户查询大小写完全匹配的结果来提升相关性。

  • Exact term matching – 例如,“Apple”(公司)与 “apple”(水果)。
  • Regulatory compliance – 许多行业要求精确的短语匹配。
  • Improved relevance – 技术和法律用户通常期望区分大小写的结果。

前置条件

  • JDK 17 或更高(推荐)
  • 用于依赖管理的 Maven
  • 如 IntelliJ IDEA 或 Eclipse 的 IDE
  • 对 Java 编程的基本熟悉

为 Java 设置 GroupDocs.Search

以下 Maven 代码段将 GroupDocs.Search 仓库及所需依赖添加到您的项目中。

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/search/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>25.4</version>
    </dependency>
</dependencies>

或者,您可以直接从 GroupDocs.Search for Java releases 下载最新版本。

许可证

要开始试用,请访问 GroupDocs 获取临时许可证。这将允许您在没有任何限制的情况下测试所有功能。

如何创建可搜索索引 java – 文本查询搜索

步骤 1:创建索引并添加文档

Index 类表示磁盘上的可搜索存储区域,文档将在此被索引。

String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInTextForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index

技巧提示: 您可以多次调用 index.add(),在单个索引中 跨多个目录搜索。

步骤 2:启用区分大小写的搜索

SearchOptions 配置查询的处理方式,包括大小写敏感性和其他搜索行为。

SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

步骤 3:执行区分大小写的文本查询

SearchQuery 构建引擎在索引上评估的查询对象。

String query = "Advantages";
SearchResult result = index.search(query, options);

// Output results
for (FoundDocument doc : result.getDocuments()) {
    System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}

循环打印包含完全匹配大小写词项的每个文档的完整路径。

如何创建可搜索索引 java – 对象查询搜索

步骤 1:初始化第二个索引(可选)

可以创建第二个 Index 实例,以将基于对象的搜索与纯文本搜索隔离。

String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInObjectForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index

步骤 2:复用区分大小写的选项

SearchOptions 可以在不同查询类型之间复用,以保持一致的大小写处理。

SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

步骤 3:构建并运行对象查询

WordQuery 表示词级搜索,可与其他查询类型组合以实现复杂搜索。

SearchQuery query = SearchQuery.createWordQuery("Advantages");
SearchResult result = index.search(query, options);

// Output results
for (FoundDocument doc : result.getDocuments()) {
    System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}

使用 createWordQuery 可让您随后将其与短语、通配符或布尔查询组合,以实现更复杂的场景。

实际应用

  • Legal document management: 检索在大小写重要的情况下的特定案例法规。
  • E‑commerce platforms: 区分诸如 “PRO‑X” 与 “pro‑x” 的产品 SKU。
  • Content management systems (CMS): 确保作者找到精确的标题或标签。

性能考虑因素

  • Keep the index up‑to‑date – 当添加新文件或现有文件更改时重新索引。
  • Monitor memory usage – 大型语料库受益于增量索引和适当的 JVM 堆大小。
  • Leverage Java’s garbage collector – 当不再需要时释放 Index 对象。

常见问题及解决方案

问题解决方案
useCaseSensitiveSearch 似乎被忽略确认您使用的是最新的 GroupDocs.Search 版本,并且在更改该选项后已重新构建索引。
已知词项未返回结果确保词项的大小写完全匹配,并且文档已成功添加到索引中。
搜索多个文件夹速度变慢使用 index.add() 单独添加每个文件夹,并考虑将索引拆分为多个分片以处理非常大的数据集。

常见问答

Q: 如何使用 GroupDocs.Search 处理大型数据集?
A: 使用索引分区、调优 JVM 内存设置,并定期压缩索引以保持最佳性能。

Q: 我可以同时跨多个目录搜索吗?
A: 可以 – 对每个要包含的目录调用 index.add(),然后对合并后的索引运行单个查询。

Q: 设置区分大小写搜索时常见的陷阱是什么?
A: 在启用 useCaseSensitiveSearch 后忘记重新构建索引,或在查询字符串中使用错误的大小写。

Q: 我如何排查搜索错误?
A: 检查 GroupDocs.Search 生成的日志文件以获取堆栈跟踪,并确认所有 Maven 依赖已正确解析。

Q: GroupDocs.Search 适用于实时应用吗?
A: 通过适当的索引策略(增量更新和内存缓存),它可以提供近实时的搜索结果。

资源


最后更新: 2026-08-10
测试环境: GroupDocs.Search 25.4
作者: GroupDocs


相关教程