将文档添加到索引:在 Java 中使用 GroupDocs 实现区分大小写的搜索

从海量文档集合中检索到正确的信息是现代应用的核心需求。在本指南中,您将学习 如何将文档添加到索引 并使用 GroupDocs.Search for Java 执行 区分大小写的搜索。无论您是在构建法律文档库、电子商务目录,还是内容管理系统,精准的搜索结果都能让用户满意并提升数据可信度。

快速答案

  • 开始搜索的首要步骤是什么? 使用 index.add(...) 将文档添加到索引。
  • 如何启用区分大小写的搜索? 设置 options.setUseCaseSensitiveSearch(true)
  • 可以跨多个目录搜索吗? 可以——对每个想要包含的文件夹调用 index.add()
  • 哪个方法可以使用对象进行搜索? 使用 SearchQuery.createWordQuery(...)
  • 测试时需要许可证吗? 可获取临时许可证用于试用。

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

将文档添加到索引是指将源文件(PDF、Word 文档、纯文本等)导入 GroupDocs.Search,以便它构建可搜索的数据结构。完成索引后,搜索引擎即可快速执行查询,包括区分大小写的查询。

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

  • 精确词语匹配 – 区分 “Apple”(公司) 与 “apple”(水果)。
  • 合规要求 – 某些行业需要精确短语匹配。
  • 提升相关性 – 在技术或法律场景下,用户常常期望区分大小写的结果。

前置条件

  • JDK(推荐 Java 17 或更高)
  • 用于依赖管理的 Maven
  • IntelliJ IDEA 或 Eclipse 等 IDE
  • 基本的 Java 编程经验

为 Java 设置 GroupDocs.Search

首先,在 pom.xml 中添加 GroupDocs 仓库和依赖:

<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 获取临时许可证。这样即可在不受限制的情况下测试所有功能。

如何将文档添加到索引 – 文本查询搜索

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

创建一个用于存放索引文件的文件夹,然后添加包含待搜索文档的源目录。

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 options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

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

运行一个能够区分 “Advantages” 与 “advantages” 的查询。

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

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

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

如何将文档添加到索引 – 对象查询搜索

对象查询提供了更大的灵活性,尤其在需要组合多个条件时。

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

如果希望将基于对象的搜索单独管理,可创建另一个索引文件夹。

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:构建并运行对象查询

创建一个词查询对象并将其传递给搜索引擎。

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 可在后续将其与短语、通配符或布尔查询组合,实现更复杂的场景。

实际应用场景

  • 法律文档管理: 检索大小写敏感的法规条文。
  • 电子商务平台: 区分 “PRO‑X” 与 “pro‑x” 等 SKU。
  • 内容管理系统(CMS): 确保作者能够精确找到标题或标签。

性能注意事项

  • 保持索引最新 – 在新增或修改文件后重新索引。
  • 监控内存使用 – 大规模语料库受益于增量索引和适当的 JVM 堆大小。
  • 利用 Java 垃圾回收 – 在不再需要时释放 Index 对象。

常见问题与解决方案

问题解决方案
useCaseSensitiveSearch 似乎被忽略确认使用的是最新的 GroupDocs.Search 版本,并在更改选项后重新构建索引。
已知词语没有返回结果确认查询词的大小写完全匹配,并且文档已成功添加到索引。
搜索大量文件夹导致变慢使用 index.add() 分别添加每个文件夹,必要时将索引拆分为多个分片以处理超大数据集。

常见问答

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

问: 能否同时跨多个目录搜索?
答: 可以——对每个目录调用 index.add(),随后对合并后的索引执行单一查询。

问: 设置区分大小写搜索时常见的坑有哪些?
答: 启用 useCaseSensitiveSearch 后忘记重新构建索引,或在查询字符串中使用了错误的大小写。

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

问: GroupDocs.Search 适合实时应用吗?
答: 通过适当的索引策略(增量更新和内存缓存),它能够提供近实时的搜索结果。

资源


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