在 Java 中使用 GroupDocs.Search 将文档添加到索引并合并

在当今快速发展的数字环境中,高效学习 how to add documents to index 对任何 document management java 解决方案都至关重要。无论是处理合同、发票还是内部报告,结构良好的索引都能让您在毫秒级检索信息。本教程将引导您创建索引、添加文档、配置合并选项,甚至在需要时 cancel merge operation——全部使用 GroupDocs.Search for Java。

快速答案

  • What does “add documents to index” mean? 它告诉 GroupDocs.Search 扫描文件夹并为每个文件存储可搜索的元数据。
  • Can I stop a long merge? 可以——使用 Cancellation 对象在超时后 cancel merge operation
  • Do I need a license? 免费试用或临时许可证可用于测试;商业许可证解锁全部功能。
  • Which Java version is required? JDK 8 或更高版本。
  • Is this suitable for large datasets? 绝对适用——只需监控内存并使用增量索引。

在 GroupDocs.Search 中,“add documents to index” 是什么?

将文档添加到索引意味着将一组文件导入 GroupDocs.Search,以便库能够分析其内容、提取标记并构建可搜索的数据结构。完成索引后,您可以对所有文档执行快速全文。

为什么在 document management java 中使用 GroupDocs.Search?

  • Scalable indexing – 处理数千个文件而不降低性能。
  • Rich API – 提供对索引、合并和取消的细粒度控制。
  • Cross‑format support – 开箱即用地支持 PDF、Word、Excel 等多种格式。

前置条件

  • GroupDocs.Search for Java 版本 25.4 或更高
  • Maven(或手动下载 JAR)。
  • 基本的 Java 知识以及 JDK 8+ 环境。

设置 GroupDocs.Search for Java

Maven 安装

如果您使用 Maven 管理依赖,请将仓库和依赖添加到 pom.xml

<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>

直接下载

或者,从官方网站下载最新的 JAR: GroupDocs.Search for Java releases

获取许可证

  • Free Trial: 在 GroupDocs 网站注册获取试用许可证。
  • Temporary License: 如需延长评估,可申请临时密钥。
  • Commercial License: 购买用于生产环境。

获取许可证文件后,将其放置在项目中,并按后文所示初始化库。

实现指南

如何将文档添加到索引 – 创建第一个索引

首先,创建一个空索引,用于保存可搜索的数据。

import com.groupdocs.search.Index;

// Create an instance of the index at the specified path
Index index1 = new Index("YOUR_DOCUMENT_DIRECTORY\\\\Index1");
  • Why: 此步骤设置了一个存储容器,用于保存已索引的标记。

将文档添加到索引

现在让 GroupDocs.Search 扫描文件夹并 add documents to index

index1.add("YOUR_DOCUMENT_DIRECTORY"); // Add documents from this directory
  • Why: 库读取每个文件,提取文本,并将其存储在 index1 中。

创建第二个索引以实现灵活的工作流

有时您需要单独的索引,例如,用于隔离某个客户的数据。

Index index2 = new Index("YOUR_DOCUMENT_DIRECTORY\\\\Index2");
index2.add("YOUR_DOCUMENT_DIRECTORY");
  • Why: 多个索引可让您管理不同的文档集合,随后再将它们合并。

如何配置合并选项并取消合并操作

在合并之前,您可以对过程进行微调,甚至在运行时间过长时停止它。

import com.groupdocs.search.options.MergeOptions;
import com.groupdocs.search.options.Cancellation;

MergeOptions options = new MergeOptions();
options.setCancellation(new Cancellation()); // Initialize cancellation object
options.getCancellation().cancelAfter(5000); // Cancel merge operation after 5 seconds
  • Why: Cancellation 让您能够自动 cancel merge operation,防止任务失控。

合并索引

最后,将次级索引合并到主索引中。

index1.merge(index2, options);
  • Why: 调用此方法后,index1 包含来自两个来源的所有文档,为您提供统一的搜索体验。

Document Management Java 的实际应用

  • Legal firms: 整合多个办公室的案件文件。
  • Financial institutions: 将季度报告合并为单一可搜索的存储库。
  • Enterprises: 合并人力资源、合规和政策文档,实现全企业搜索。

性能考虑

  • Incremental indexing: 定期添加新文件,而不是重新构建整个索引。
  • Memory monitoring: 大批量可能消耗大量内存;考虑分批处理。
  • Garbage collection: 及时释放未使用的 Index 对象以释放资源。

常见问题与解决方案

问题解决方案
文件夹路径不正确验证绝对路径并确保应用具有读取权限。
内存不足增加 JVM 堆内存 (-Xmx) 或分批索引文件。
取消未触发确保在调用 merge 前设置 cancelAfter
不支持的文件格式如有需要,安装来自 GroupDocs 的额外格式插件。

常见问答

Q: 为什么我要创建多个索引而不是单个索引?
A: 单独的索引可以隔离数据域,应用不同的安全策略,并仅在需要时合并,从而提升性能和组织性。

Q: 我可以像取消合并一样取消索引操作吗?
A: 可以——使用 Cancellation 对象配合 add 方法停止长时间运行的索引任务。

Q: 如何确保在非常大的文档集合中获得最佳性能?
A: 进行增量索引,监控 JVM 内存,并考虑使用 SSD 存储索引目录。

Q: 如果收到 “Access denied” 错误,我该怎么办?
A: 检查运行 Java 进程的用户的文件夹权限,并确保许可证文件可读。

Q: GroupDocs.Search 是否兼容其他 GroupDocs 库?
A: 绝对兼容——您可以将其与 GroupDocs.Viewer、GroupDocs.Conversion 等集成,构建完整的文档解决方案。

结论

通过本指南,您现在了解如何 add documents to index、配置合并行为,并在需要时安全地 cancel merge operation——全部在强大的 document management java 工作流中。尝试更大的数据集,探索自定义分词器,或将 GroupDocs.Search 与其他 GroupDocs 产品结合,构建真正的企业级解决方案。

资源


最后更新: 2026-01-03
测试环境: GroupDocs.Search 25.4 for Java
作者: GroupDocs