掌握使用 GroupDocs.Search for Java 的高效文档搜索

在文档管理的世界中,快速在大量文档中找到特定内容至关重要。无论您是管理法律合同还是学术论文,create index java 功能都能节省数小时的人工劳动。本教程深入探讨如何使用 GroupDocs.Search for Java,这是一款强大的 java search library,帮助您创建索引、add documents to index,以及高效地从文件中 extract text java。阅读完本指南后,您将了解如何使用自定义设置进行索引创建,并以多种格式输出文档文本,包括结构化文本提取。

快速答案

  • 主要目的是什么? 用于 create index java 并快速检索文档内容。
  • 应该使用哪个库? GroupDocs.Search for Java java search library
  • 可以将文本输出到文件吗? 可以,使用提供的 output text to file 适配器。
  • 是否支持结构化提取? 当然——使用 structured text extraction 适配器。
  • 需要许可证吗? 生产环境使用需购买试用或永久许可证。

您将学到的内容

  • 使用 GroupDocs.Search for Java create index javaadd documents to index
  • output text to file、流、字符串以及结构化数据的技术。
  • 提高搜索效率和内存管理的性能优化技巧。
  • 这些功能的实际应用案例。

前置条件

在开始教程之前,请确保具备以下条件:

  • Java Development Kit (JDK):建议使用 8 版或以上。
  • GroupDocs.Search for Java 库。
  • 用于依赖管理和项目构建的 Maven
  • 基本的 Java 编程知识,尤其是文件 I/O 操作。

设置 GroupDocs.Search for Java

要开始使用 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>

如果您更喜欢直接下载,也可以从 GroupDocs.Search for Java releases 获取最新版本。

许可证获取
使用 GroupDocs.Search 时,请考虑获取免费试用或临时许可证。若需正式购买,请访问其官方网站获取永久许可证。

如何使用自定义设置 create index java

本节将指导您创建索引、添加文档,并配置压缩以实现最佳存储。

索引创建与文档索引

概述

创建索引可让您高效搜索文档。下面的示例演示了如何 create index java 并使用高压缩,然后 add documents to index

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureIndexCreation {
    public static void main(String[] args) {
        // Define the folder paths for indexing
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        String documentsFolder = YOUR_DOCUMENT_DIRECTORY + "/DocumentsPath";  // Adjust as needed

        // Creating an index settings instance with compression enabled
        IndexSettings settings = new IndexSettings();
        settings.setTextStorageSettings(new TextStorageSettings(Compression.High));

        // Creating the index in the specified folder
        Index index = new Index(indexFolder, settings);

        // Adding documents from the specified folder to the index
        index.add(documentsFolder);
    }
}

说明

  • Index Settings:我们为文本存储启用了高压缩,以优化磁盘空间使用。
  • Adding Documentsindex.add() 方法 adds documents to index,递归扫描文件夹。

如何将文本输出到文件、流、字符串和结构化格式

以下是四种常见方式,用于在 create index java 后检索并存储提取的内容。

文档文本输出到文件

概述

此示例展示了如何以 HTML 格式 output text to file,便于可视化检查或进一步处理。

import com.groupdocs.search.*;

public class FeatureOutputToFile {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to an HTML file
            FileOutputAdapter fileOutputAdapter = new FileOutputAdapter(OutputFormat.Html, YOUR_OUTPUT_DIRECTORY + "/Text.html");
            index.getDocumentText(document, fileOutputAdapter);
        }
    }
}

说明

  • FileOutputAdapter:将已索引文档的文本转换为 HTML 并写入指定文件路径。

文档文本输出到流

概述

当需要内存中处理——例如生成动态网页内容时,输出到流是理想选择。

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureOutputToStream {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a stream in HTML format
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            StreamOutputAdapter streamOutputAdapter = new StreamOutputAdapter(OutputFormat.Html, stream);
            index.getDocumentText(document, streamOutputAdapter);
        }
    }
}

说明

  • StreamOutputAdapter:将文档文本流入 ByteArrayOutputStream,实现灵活处理而无需触及文件系统。

文档文本输出到字符串

概述

如果仅需记录或显示内容,将结果转换为 String 是最快的方式。

import com.groupdocs.search.*;

public class FeatureOutputToString {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a string in HTML format
            StringOutputAdapter stringOutputAdapter = new StringOutputAdapter(OutputFormat.Html);
            index.getDocumentText(document, stringOutputAdapter);
            String result = stringOutputAdapter.getResult();
        }
    }
}

说明

  • StringOutputAdapter:将文档文本捕获到 String 中,便于嵌入日志或 UI 组件。

文档文本输出到结构化格式

概述

对于高级解析——如提取字段、表格或自定义元数据,请使用结构化输出适配器。

import com.groupdocs.search.*;

public class FeatureOutputToStructure {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a structured format like PlainText
            StructuredOutputAdapter structuredOutputAdapter = new StructuredOutputAdapter(OutputFormat.PlainText);
            index.getDocumentText(document, structuredOutputAdapter);
        }
    }
}

说明

  • StructuredOutputAdapter:将文档文本提取为 structured text extraction 格式,支持细粒度分析或下游数据管道。

常见问题与解决方案

问题原因解决方案
未创建索引文件夹路径错误或缺少写入权限确认 indexFolder 存在且应用拥有写入权限
未返回文档未调用 index.add() 或源文件夹错误确保 documentsFolder 指向正确目录且包含受支持的文件类型
输出文件为空输出适配器路径无效或缺少目录在运行前创建目标目录 (YOUR_OUTPUT_DIRECTORY)
大文件导致内存激增将整个文件加载到内存使用流适配器 (StreamOutputAdapter) 逐步处理数据

常见问答

Q: 可以在 Kotlin 或 Scala 等其他 JVM 语言中使用 GroupDocs.Search 吗?
A: 可以,库是纯 Java 的,能够无缝与任何 JVM 语言配合使用。

Q: 压缩会影响搜索速度吗?
A: 高压缩会减少磁盘占用,但在索引时可能会带来轻微的 CPU 开销。搜索性能仍然保持快速,因为库会在运行时即时解压。

Q: 能否在不重新构建的情况下更新已有索引?
A: 完全可以。使用 index.add() 添加新文件,使用 index.remove() 删除旧文件。

Q: 哪种输出格式最适合后续的自然语言处理?
A: 通过 structured text extraction 适配器得到的 PlainText 提供干净、语言无关的内容,非常适合 NLP 流水线。

Q: 开发和测试阶段需要许可证吗?
A: 开发与评估阶段可使用免费试用许可证。生产部署则需要购买许可证。


最后更新: 2026-01-14
测试版本: GroupDocs.Search 25.4 for Java
作者: GroupDocs