使用 GroupDocs.Search for Java 将文档添加到索引

在本教程中,您将了解 如何将文档添加到索引,并使用 GroupDocs.Search for Java 创建高度可扩展的搜索解决方案。我们将演示如何配置搜索网络、部署节点以及处理事件,以便您的应用程序能够在多台服务器上高效处理大型文档集合。

快速回答

  • “将文档添加到索引”是什么意思? 它指的是将文件插入可搜索的索引,以便能够快速查询。
  • 哪个库提供此功能? GroupDocs.Search for Java。
  • 我需要许可证吗? 提供临时试用许可证;生产环境需要商业许可证。
  • 我可以水平扩展吗? 可以——通过部署多个 SearchNetworkNode 实例实现。
  • 需要哪个 Java 版本? JDK 8 或更高。

什么是将文档添加到索引?

将文档添加到索引是将您的源文件(PDF、Word 文档等)导入 GroupDocs.Search 引擎的过程,使其内容可被搜索。索引存储词频数据,从而在查询时实现快速检索。

为什么在网络环境中使用 GroupDocs.Search for Java?

  • 可扩展性: 将索引和搜索工作负载分布到多个节点。
  • 性能: 通过在靠近数据源的地方处理查询来降低延迟。
  • 可靠性: 节点可以在不中断服务的情况下添加或移除。
  • **灵多种文档格式。

前置条件

<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 下载最新版本。

环境设置要求

  • 在系统上安装 JDK 8 或更高版本。
  • 如果使用 Maven 项目,请安装并配置 Maven。

知识前提

  • 对 Java 编程有基本了解。
  • 熟悉 Maven 中的依赖管理。

设置 GroupDocs.Search for Java

  1. Maven 设置:在 pom.xml 文件中添加如上所示的仓库和依赖。
  2. 直接下载:或者,从 GroupDocs Search Java releases 下载库。

获取许可证

  • 通过访问 GroupDocs website 获取免费试用或临时许可证。
  • 如需完整访问和支持,请考虑购买商业许可证。

基本初始化

在 Java 应用程序中初始化 GroupDocs.Search:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize an index
        Index index = new Index("path/to/index/directory");

        // Add documents to the index
        index.add("path/to/documents");
        
        System.out.println("GroupDocs.Search setup complete.");
    }
}

如何在搜索网络中将文档添加到索引

当您在网络环境中 将文档添加到索引 时,工作负载会自动在可用节点之间分配,从而提升吞吐量和容错能力。

功能 1:配置搜索网络

概述

配置搜索网络涉及设置节点,以高效管理和分配搜索任务。

步骤 1:定义基础路径和端口
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SearchNetworkNodeEvents/";
int basePort = 49140; // Change if necessary due to busy port issues
步骤 2:配置网络
import com.groupdocs.search.scaling.*;
import com.groupdocs.search.scaling.configuring.*;

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

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

概述

部署节点,以在网络中分配和处理搜索操作。

步骤 1:使用配置部署节点
import com.groupdocs.search.scaling.*;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

功能 3:订阅节点事件

概述

订阅节点事件可让您监控并响应搜索网络中的各种操作。

步骤 1:定义订阅方法
import com.groupdocs.search.events.*;
import com.groupdocs.search.scaling.events.*;

public static void subscribe(SearchNetworkNode node) {
    // Subscribe to IndexingCompleted event
    node.getEvents().IndexingCompleted.add(new EventHandler() {
        @Override
        public void invoke(Object s, EventArgs e) {
            System.out.println("Indexing completed.");
        }
    });

    // Additional events can be subscribed similarly...
}
步骤 2:使用订阅方法
SearchNetworkNode masterNode = nodes[0];
subscribe(masterNode);

关闭节点

使用完毕后,请确保关闭所有已部署的节点:

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

实际应用

  1. 企业搜索解决方案 – 实施搜索网络,以在多台服务器上处理大规模文档搜索。
  2. 电子商务平台 – 通过在多个节点上分配索引任务,提升产品搜索能力。
  3. 内容管理系统(CMS) – 改善 CMS 环境中内容检索和更新的性能。

性能考虑因素

  • 根据系统资源优化节点部署。
  • 定期监控内存使用情况,以防泄漏,尤其是在处理大型数据集时。
  • 利用配置设置对索引和搜索操作进行微调,以提高效率。

常见问题及解决方案

问题常见原因解决方案
端口冲突basePort 已被占用basePort 更改为可用的端口
节点不可达防火墙或网络规则打开所需端口并验证连通性
索引未更新文档路径不正确确认 basePath 指向正确的目录
高内存使用大批量索引将文档分成更小的批次索引或增大堆内存大小

常见问答

问:部署节点时如何处理端口冲突?
答:将配置代码中的 basePort 变量更改为可用端口。

问:GroupDocs.Search 可以用于实时索引吗?
答:可以,使用适当的配置即可实现实时索引。

问:节点部署期间常见哪些问题?
答:网络连通性和路径设置错误是常见原因。请确保所有路径和端口配置正确。

问:网络运行后还能将文档添加到索引吗?
答:完全可以。您可以在任意节点调用 index.add(...),网络会自动分配新的工作负载。

问:开发测试是否需要许可证?
答:临时试用许可证足以用于测试,生产环境需要商业许可证。

资源

通过遵循本指南,您可以有效地 将文档添加到索引,并使用 GroupDocs.Search for Java 管理强大且可扩展的搜索网络。祝编码愉快!


最后更新: 2026-01-24