如何为搜索网络添加 GroupDocs Maven 依赖

在本综合指南中,您将了解 如何添加 groupdocs Maven 依赖,使用 GroupDocs.Search 配置强大的 Java 搜索网络,并保持分片同步。无论是索引法律简报、财务报表还是学术论文,下面的步骤都将帮助您创建可搜索的索引、在节点之间分配查询负载,并以最小的工作量保持数据一致性。

快速答案

  • GroupDocs Maven 依赖是什么? Maven 构件,捆绑了适用于 Java 项目的 GroupDocs.Search 库。
  • 为什么使用搜索网络? 它在多个节点之间分配索引和查询负载,提高速度和可靠性。
  • 如何添加目录进行索引? 在主节点上使用 IndexingDocuments.addDirectories。
  • 如何同步分片? 在每个节点的 Indexer 上调用 SynchronizeOptions。
  • 我需要许可证吗? 是的,生产使用需要试用或商业许可证。

什么是 GroupDocs Maven 依赖?

GroupDocs Maven 依赖 是一个 Maven 构件,捆绑了适用于 Java 项目的 GroupDocs.Search 库。
它提供创建可搜索索引、管理网络节点和执行快速查询所需的所有类,Maven 会自动解析传递依赖,使您只需在 pom.xml 中添加几行代码即可获得可直接使用的搜索引擎。

如何添加 GroupDocs Maven 依赖

将仓库和依赖项条目添加到您的 pom.xml,然后运行 mvn clean install;Maven 会下载 groupdocs-search JAR 及其所需的库,使 API 在您的项目中可用。构建成功后,您即可立即开始使用 com.groupdocs.search 类。

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。

为什么使用搜索网络?

搜索网络通过将索引划分为位于不同节点的分片,实现水平扩展。GroupDocs.Search 能处理 50+ 输入格式 并处理 数百页文档,无需将整个文件加载到内存中,即使数据量增长也能提供亚秒级查询响应。

前提条件

  • JDK(11 或更高)已安装。
  • IntelliJ IDEA 或 Eclipse 等 IDE。
  • 基本的 Java 知识、Maven 使用经验以及网络节点概念的了解。
  • 有效的 GroupDocs.Search 许可证(免费试用或商业)。

基本初始化和设置

首先创建一个索引目录:

import com.groupdocs.search.SearchIndex;
import com.groupdocs.search.options.IndexingOptions;

// Create an index in the specified directory
SearchIndex index = new SearchIndex("YOUR_INDEX_DIRECTORY");

此简单步骤为后续的网络配置做好准备。

实施指南

功能 1:搜索网络配置

概述

配置搜索网络设置节点用于通信的文件路径和端口。

设置路径和端口

Configuration 是一个类,保存搜索集群的网络路径、端口和其他设置。

import com.groupdocs.search.options.*;
import com.groupdocs.search.scaling.configuring.ConfiguringSearchNetwork;

// Set custom paths for input/output directories
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SynchronizingShards/";
int basePort = 49144; // Adjust if there's a port conflict

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

configuration 对象现在包含了搜索网络所需的所有设置。

功能 2:部署搜索网络节点

概述

部署节点以在网络中分配工作负载。主节点管理操作和事件。

部署代码

SearchNetworkNode 表示搜索网络中的一个节点,可以充当主节点或工作节点。

import com.groupdocs.search.scaling.*;
import com.groupdocs.search.options.Configuration;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
// Retrieve the master node for further operations
SearchNetworkNode masterNode = nodes[0];

功能 3:订阅搜索网络节点事件

概述

监听事件可动态处理网络中的更改或更新。

订阅实现

SearchNetworkNodeEvents 提供节点生命周期和索引操作的事件钩子。

import com.groupdocs.search.scaling.SearchNetworkNode;
import com.groupdocs.search.scaling.SearchNetworkNodeEvents;

SearchNetworkNodeEvents.subscribe(masterNode);

功能 4:向索引添加目录

概述

添加目录是使文档可搜索的核心步骤。

文档添加

IndexingDocuments.addDirectories 将文件夹路径添加到索引进行处理。

import com.groupdocs.search.indexing.IndexingDocuments;
import com.groupdocs.search.scaling.SearchNetworkNode;

IndexingDocuments.addDirectories(masterNode, "YOUR_DOCUMENT_DIRECTORY/DocumentsPath");

功能 5:在搜索网络节点中同步分片

概述

同步确保所有分片之间的数据一致性。

同步代码

SynchronizeOptions 配置分片在节点之间的同步方式。

import com.groupdocs.search.indexing.Indexer;
import com.groupdocs.search.scaling.SearchNetworkNode;
import com.groupdocs.search.options.SynchronizeOptions;

SearchNetworkNode node = null; // Assume 'node' is initialized as a SearchNetworkNode

def synchronizeShards(SearchNetworkNode node) {
    Indexer indexer = node.getIndexer();
    SynchronizeOptions options = new SynchronizeOptions();
    indexer.synchronize(options);
}

功能 6:关闭搜索网络节点

概述

正确关闭节点可释放资源并防止内存泄漏。

节点关闭

close() 释放资源并关闭搜索网络节点。

import com.groupdocs.search.scaling.SearchNetworkNode;

for (SearchNetworkNode node : nodes) {
    node.close();
}

实际应用

  1. 法律文档管理 – 快速检索案件文件和判例。
  2. 财务记录保存 – 在几秒钟内访问报表和审计轨迹。
  3. 学术研究 – 在数千篇论文中搜索以找到相关引用。

性能考虑

  • 优化查询 – 编写简洁的查询以降低响应时间。
  • 内存管理 – 监控 JVM 堆使用情况;对大型索引考虑 GC 调优。
  • 扩展策略 – 根据数据量和查询负载按比例添加节点。

常见问题及解决方案

问题原因解决方案
节点连接失败端口冲突将 basePort 更改为未使用的值
索引未更新缺少事件订阅确保调用 SearchNetworkNodeEvents.subscribe(masterNode)
高延迟分片不足增加节点数量并平衡文档分布

常见问答

Q: 使用 GroupDocs.Search 的主要好处是什么?
A: 它提供快速、可扩展的搜索能力,能够在大型文档集合上以最少的配置实现高效检索。

Q: 我可以在搜索网络中自定义节点配置吗?
A: 可以,您可以通过 Configuration 对象设置自定义路径、端口和其他选项。

Q: 网络运行后,如何向索引添加目录?
A: 在需要索引新文件夹时,调用 IndexingDocuments.addDirectories(masterNode, "path")。

Q: 新节点加入网络时如何同步分片?
A: 在新添加的节点上使用上文示例的 synchronizeShards 方法。

Q: 开发阶段需要许可证吗?
A: 测试使用免费试用许可证即可;生产环境需要商业许可证。

结论

通过本指南,您现在了解如何 添加 groupdocs Maven 依赖、配置多节点搜索网络、索引目录并保持分片同步。这些步骤为构建高性能文档搜索解决方案奠定了基础,能够随组织需求的增长而扩展。


最后更新: 2026-05-17
测试版本: GroupDocs.Search 25.4
作者: GroupDocs

相关教程