java 全文搜索 – 添加文档并与 GroupDocs.Search 合并

在现代企业环境中,java full text search 是任何强大的文档管理 java 系统的支柱。无论您需要索引合同、发票还是内部报告,一个设计良好的索引都能让您在毫秒级检索到正确的信息。本教程将指导您创建索引、添加文档、配置合并选项,并安全地取消合并操作——全部使用 GroupDocs.Search for Java。

快速答案

  • “add documents to index” 是什么意思? 它告诉 GroupDocs.Search 扫描文件夹,提取可搜索的标记,并为每个文件存储元数据。
  • 我可以停止长时间的合并吗? 是的——使用 Cancellation 对象在可配置的超时后中止合并。
  • 我需要许可证吗? 免费试用或临时许可证可用于测试;商业许可证可解锁全部功能。
  • 需要哪个 Java 版本? JDK 8 或更高版本。
  • 这适用于大型数据集吗? 当然——GroupDocs.Search 能够通过增量索引处理数百页的文档。

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

将文档添加到索引意味着将一组文件导入 GroupDocs.Search,以便库能够分析其内容、提取标记并构建可搜索的数据结构。 该过程创建了紧凑的表示,使得对所有已索引文件的全文查询能够实现闪电般的速度。

为什么在文档管理 java 中使用 GroupDocs.Search?

GroupDocs.Search 提供 支持 50 多种输入格式的可扩展索引(PDF、DOCX、XLSX、PPTX、HTML、图像等),并且能够 在不将整个文件加载到内存的情况下处理高达 2 GB 的文档。其 API 为您提供对索引、合并和取消的细粒度控制,使其成为企业级 java 全文搜索解决方案的首选。

前置条件

  • 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: 购买用于生产环境。

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

实施指南

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

通过实例化 Index 类加载或创建一个空索引,该类表示磁盘上的可搜索容器。 此步骤为将从文档生成的所有标记准备存储位置。

import com.groupdocs.search.Index;

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

将文档添加到索引

使用文件夹路径调用 index.add;该方法会扫描每个文件,提取文本,并将可搜索的元数据存储到索引中。 该操作一次性完成,并遵循配置的 IndexSettings。

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

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

实例化另一个 Index 对象以保存独立的文档集,在合并之前实现隔离处理。 该模式对多租户场景或分阶段索引非常有用。

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

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

创建 MergeOptions 实例,设置所需参数,并附加一个在指定超时后中止合并的 Cancellation 令牌。 这让您在大型合并期间对资源使用拥有完全控制。

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 让您能够自动 取消合并操作,防止任务失控。

合并索引

调用 index1.merge(index2, mergeOptions);主索引在保持标记完整性的同时吸收二级索引的所有文档。 合并后,您将拥有统一的可搜索仓库。

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

文档管理 Java 的实际应用

  • Legal firms: 将多个办公室的案件文件合并为单一可搜索索引。
  • Financial institutions: 将季度报告合并到统一仓库,以便快速审计查询。
  • Enterprises: 合并人力资源政策、合规手册和内部指南,实现全企业范围的搜索。

性能考虑因素

  • Incremental indexing: 定期添加新文件,而不是重建整个索引。
  • Memory monitoring: 大批量可能消耗大量内存;请将文件分成更小的块处理或启用流式模式。
  • Garbage collection: 及时释放未使用的 Index 对象以释放资源。
  • SSD storage: 将索引文件存储在 SSD 上可将合并速度提升至约 2 倍。

常见问题与解决方案

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

常见问答

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

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

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

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

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

结论

通过本指南,您现在了解如何 将文档添加到索引、配置合并行为,并在需要时安全地 取消合并操作——全部在强大的 java full text search 工作流中。尝试更大的数据集,探索自定义分词器,或将 GroupDocs.Search 与其他 GroupDocs 产品结合,构建企业级解决方案。

资源


最后更新: 2026-05-12
已测试: GroupDocs.Search 25.4 for Java
作者: GroupDocs

相关教程