实现 GroupDocs.Search Java 文档搜索

在当今数据驱动的环境中,implement groupdocs search java 对于任何需要在 PDF、Word 文件、电子表格等文档中进行快速、可靠全文搜索的应用都是必不可少的。无论你是在构建法律合同库、学术研究门户,还是客户支持知识库,本教程将指导你安装 SDK、创建索引、运行模糊查询以及生成带有高亮搜索词的 HTML——全部使用 Java。

快速答案

  • 什么库帮助实现 groupdocs search java? GroupDocs.Search for Java.
  • 我可以在结果中突出显示搜索词 java 吗? 是的——生成的 HTML 可以自动用 <mark> 标签包裹匹配项。
  • 生产环境需要许可证吗? 提供免费试用;商业使用需要完整许可证。
  • 哪个 IDE 最适合? 任何 Java IDE——IntelliJ IDEA、Eclipse 或 VS Code。
  • 是否支持 Maven? 当然——将仓库和依赖添加到你的 pom.xml。

什么是 GroupDocs.Search for Java?

GroupDocs.Search 是一个 Java SDK,可对超过 50+ 文档格式(PDF、DOCX、XLSX、PPTX、TXT 等)的文本进行索引和搜索,而无需将整个文件加载到内存中。它提供模糊匹配、布尔运算符、短语查询和内置结果高亮,使其成为可搜索文档库的即插即用解决方案。

为什么在 Java 中使用 GroupDocs.Search 进行文档搜索?

它提供高速的索引搜索,在 10 k 文档下可在 10 ms 以下返回结果;通过模糊搜索、布尔逻辑、短语查询和同义词扩展提供灵活性;通过生成自动标记匹配项的 HTML 预览实现高亮;并且具备可伸缩性,可在本地、云端或混合环境中运行,处理数百页的文件而不会消耗过多内存。

前置条件

  • Java Development Kit (JDK) 8 或更高。
  • Maven(或手动 JAR 管理)。
  • 如 IntelliJ IDEA、Eclipse 或 VS Code 等 IDE。
  • 对 Java 项目结构和 Maven 有基本了解。

设置 GroupDocs.Search for Java

通过 Maven 安装

将 GroupDocs 仓库和 Search 依赖添加到你的 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>

直接下载

如果不想使用 Maven,可从官方发布页面下载最新的 JAR: GroupDocs.Search for Java releases.

获取许可证的步骤

  • 免费试用: 从免费试用开始探索功能。
  • 临时许可证: 通过 GroupDocs’ official site 获取。
  • 购买: 购买完整许可证以实现无限制的生产使用。

基本初始化和设置

Index 类是表示存储在磁盘上的可搜索索引的核心组件。创建索引文件夹后,你实例化 Index 对象以添加、删除或查询文档:

String indexFolder = "YOUR_DOCUMENT_DIRECTORY/ObtainSearchResultInformation";
Index index = new Index(indexFolder);

如何在 Java 中搜索文档 – 功能 1:提取搜索结果信息

此功能说明如何运行查询、检索匹配的文档以及获取每个词的详细出现数据。按照步骤操作,你可以构建分析仪表板或从搜索结果生成详细报告。

步骤 1:创建索引

Index 类是存储在磁盘上的可搜索元数据的顶层对象。创建它时指向一个文件夹,所有索引文件将存放在该文件夹中:

String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/ObtainSearchResultInformation";
Index index = new Index(indexFolder);
index.add(documentFolder);

步骤 2:配置搜索选项(启用模糊搜索)

SearchOptions 允许你微调查询行为。将 FuzzySearch 设置为 true 可启用近似匹配,这对处理拼写错误或 OCR 错误很有用:

SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true);
options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3));

步骤 3:执行搜索

Index.search 对准备好的索引运行查询,并返回包含匹配文档和词项出现的 SearchResult 集合:

String query = "favourable OR \"ipsum dolor\"";
SearchResult result = index.search(query, options);

SearchResult 对象包含匹配查询的文档列表及其相关性分数。

步骤 4:提取出现位置

每个 SearchResult 项提供 getOccurrences(),返回查询词在源文件中的精确位置,帮助你构建分析仪表板或详细报告:

for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    for (FoundDocumentField field : document.getFoundFields()) {
        if (field.getTerms() != null) {
            for (String term : field.getTerms()) {
                int occurrences = field.getTermsOccurrences()[field.getTerms().indexOf(term)];
                System.out.println("Term: " + term + ", Occurrences: " + occurrences);
            }
        }
        if (field.getTermSequences() != null) {
            for (String[] terms : field.getTermSequences()) {
                int occurrences = field.getTermSequencesOccurrences()[ArrayUtils.indexOf(field.getTermSequences(), terms)];
                StringBuilder sequence = new StringBuilder();
                for (String term : terms) {
                    sequence.append(term).append(" ");
                }
                System.out.println("Phrase: " + sequence.toString() + ", Occurrences: " + occurrences);
            }
        }
    }
}

功能 2:在文档中高亮显示 Java 搜索词

生成 HTML 预览,将每个匹配项用 <mark> 标签包裹,为终端用户提供即时的视觉提示。

步骤 1:使用高压缩设置索引

高压缩可将存储空间减少 最高 70 %,同时保持毫秒级查询速度。索引前调整 CompressionLevel 属性:

String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/HighlightSearchResults";
IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));
Index index = new Index(indexFolder, settings);
index.add(documentFolder);

步骤 2:执行搜索并高亮结果

执行搜索后,对 SearchResult 对象调用 highlight(),生成一个 HTML 文件,高亮查询词的每一次出现。highlight() 方法生成的 HTML 预览会将匹配的词用 <mark> 标签包裹:

SearchResult result = index.search("solicitude");
if (result.getDocumentCount() > 0) {
    FoundDocument document = result.getFoundDocument(0);
    String path = YOUR_OUTPUT_DIRECTORY + "/Highlighted.html";
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, path);
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
}

实际应用

  1. 法律文档审查 – 在数千份合同中秒级定位特定条款。
  2. 学术研究 – 从研究论文中提取关键短语用于文献综述。
  3. 客户支持 – 在邮件存档中识别重复问题,以改进 FAQ 页面。
  4. 内容管理 – 在文章和博客中高亮 SEO 关键字,便于快速编辑检查。

性能考虑因素

  • 压缩: 高压缩降低存储空间,但可能增加 CPU 使用率;请使用典型工作负载进行基准测试。
  • 内存管理: 将文档分批(每批 500 – 1 000 文件)索引,以保持 JVM 堆内存受控。
  • 索引刷新: 每晚重新索引已更改的文件,确保搜索结果保持最新。

结论

本指南演示了如何 implement groupdocs search java,提取详细的结果信息,并在 HTML 预览中 highlight search terms java。按照这些步骤,你可以为任何文档库提供快速、用户友好的搜索体验。

下一步

  • 将高亮的 HTML 嵌入到你的 Web UI 中,可使用 <iframe> 或服务器端渲染。
  • 尝试使用额外的 SearchOptions,如 SynonymSearch 或 WildcardSearch。
  • 深入了解 GroupDocs.Search API 参考,获取自定义评分、结果分页和多语言支持。

常见问题

Q: 什么是 GroupDocs.Search?
A: GroupDocs.Search 是一个 Java SDK,可对超过 50 种文档格式的文本进行索引和搜索,提供模糊匹配和结果高亮。

Q: 模糊搜索是如何工作的?
A: 它容忍可配置数量的字符差异,允许对拼写错误或 OCR 错误的词进行匹配。

Q: 我可以在没有许可证的情况下使用 GroupDocs.Search 吗?
A: 可以,提供免费试用,但生产部署需要完整许可证。

Q: 支持哪些文件格式?
A: PDF、DOCX、XLSX、PPTX、TXT 等等——完整列表请参阅官方文档。

Q: 如何在 Web 应用中显示高亮结果?
A: 直接提供生成的 HTML 文件,或使用 <iframe> 或服务器端渲染将其内容嵌入页面。


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

相关教程