将文档添加到索引:在 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 适合实时应用吗?
答: 通过适当的索引策略(增量更新和内存缓存),它能够提供近实时的搜索结果。
资源
- 文档: GroupDocs.Search Java Docs
- API 参考: Java API Reference
- 下载: Latest Releases
- GitHub 仓库: GroupDocs.Search for Java
- 支持论坛: GroupDocs Free Support
- 临时许可证: Acquire a Temporary License
最后更新: 2026-02-06
测试环境: GroupDocs.Search 25.4
作者: GroupDocs