Выделение текста Java с помощью GroupDocs.Search

В современном быстро меняющемся цифровом мире возможность highlight text java в больших коллекциях файлов является обязательной функцией. Независимо от того, создаёте ли вы платформу для юридического анализа, академический поисковый движок или консоль поддержки клиентов, мгновенное обнаружение искомых пользователями терминов делает работу гораздо эффективнее. Этот учебник проведёт вас через использование GroupDocs.Search for Java для search documents java, index documents java и применения богатого выделения — как для целых документов, так и для отдельных фрагментов.

Быстрые ответы

  • Что означает «поиск и выделение текста»? Это поиск запросных терминов в документе и их визуальное выделение (например, фоновым цветом).
  • Какая библиотека предоставляет эту возможность? GroupDocs.Search for Java.
  • Нужна ли лицензия? Бесплатная пробная версия подходит для оценки; полная лицензия требуется для продакшн‑использования.
  • Можно ли настроить цвета выделения? Да — любой RGB‑цвет можно задать через HighlightOptions.
  • Поддерживается ли выделение фрагментов? Абсолютно; можно задать количество слов до/после совпадения для создания лаконичных отрывков.

Как выделять текст Java в документах

Выделение текста Java включает три основных шага:

  1. Индексировать исходные файлы, чтобы обеспечить быстрый поиск.
  2. Выполнить запрос к индексу для нахождения подходящих документов.
  3. Отобразить результаты с визуальными подсказками с помощью API выделения.

Ниже мы подробно рассмотрим каждый шаг, сначала для вывода целого документа, затем для фрагментов уровня отрывка.

Что такое поиск и выделение текста?

Поиск и выделение текста — это процесс сканирования индекса документов по заданному запросу, получения совпадающих документов и последующей маркировки каждого вхождения поискового термина в выводе документа (HTML, PDF и т.д.). Эта визуальная подсказка помогает конечным пользователям мгновенно находить релевантную информацию.

Почему стоит использовать GroupDocs.Search for Java?

  • Высокопроизводительное индексирование с настраиваемой компрессией (index documents java).
  • Богатый API выделения, работающий как с целыми документами, так и с пользовательскими фрагментами (highlight search terms java).
  • Поддержка множества форматов (DOCX, PDF, PPTX, TXT и др.).
  • Простая интеграция через Maven и чистый Java‑центричный дизайн.

Предварительные требования

  • Java Development Kit (JDK) 8 или новее.
  • Maven для управления зависимостями.
  • IDE, например IntelliJ IDEA или Eclipse.
  • Базовое знакомство с синтаксисом Java.

Настройка GroupDocs.Search for Java

Добавьте репозиторий GroupDocs и зависимость в ваш 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.

Приобретение лицензии

Начните с бесплатной пробной версии или получите временную лицензию для оценки. Для продакшн‑развёртываний необходимо приобрести полную лицензию, чтобы разблокировать все функции.

Руководство по реализации

Реализация разделена на две практические части: выделение в полных документах и выделение во фрагментах. Обе секции включают необходимые шаги для how to highlight Java документов с помощью GroupDocs.Search.

Настройка параметров индекса

Перед индексированием настройте хранилище на использование высокой компрессии — это уменьшит объём на диске, сохраняя скорость поиска.

IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));

Выделение в полных документах

Шаг 1: Создание и заполнение индекса

Создайте папку индекса и добавьте все исходные файлы, которые нужно искать.

String indexFolder = "/path/to/your/document/directory/HighlightingInEntireDocument";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");

Шаг 2: Выполнение поиска и применение выделения

Ищите термин (например, ipsum) и генерируйте HTML‑файл с выделенными совпадениями.

SearchResult result = index.search("ipsum");

if (result.getDocumentCount() > 0) {
    FoundDocument document = result.getFoundDocument(0);
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/to/your/output/directory/Highlighted.html");
    
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    HighlightOptions options = new HighlightOptions();
    options.setHighlightColor(new Color(150, 255, 150)); // Custom green shade
    options.setUseInlineStyles(false); // Prefer CSS for styling
    
    index.highlight(document, highlighter, options);
}

Пояснение ключевых опций

  • Compression – высокая компрессия экономит место хранения.
  • HighlightColor – задайте любой RGB‑значение, соответствующее вашей палитре UI.
  • UseInlineStylesfalse генерирует чистый HTML, который можно стилизовать глобально через CSS.

Выделение во фрагментах

Шаг 1: Индексирование и поиск (как выше)

String indexFolder = "/path/to/your/document/directory/HighlightingInFragments";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");

SearchResult result = index.search("ipsum");

Шаг 2: Определение контекста фрагмента и выделение

Укажите, сколько терминов до и после совпадения должно отображаться в каждом фрагменте.

HighlightOptions options = new HighlightOptions();
options.setTermsBefore(5); // Include 5 terms before the match
options.setTermsAfter(5);   // Include 5 terms after the match
options.setHighlightColor(new Color(127, 200, 255)); // Custom blue shade
options.setUseInlineStyles(true); // Use inline styles for emphasis

FoundDocument document = result.getFoundDocument(0);
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.Html);

index.highlight(document, highlighter, options);

Шаг 3: Получение и запись выделенных фрагментов

Соберите сгенерированные фрагменты и запишите их в HTML‑файл.

StringBuilder stringBuilder = new StringBuilder();
FragmentContainer[] fragmentContainers = highlighter.getResult();

for (FragmentContainer container : fragmentContainers) {
    String[] fragments = container.getFragments();
    
    if (fragments.length > 0) {
        stringBuilder.append("\n<br>").append(container.getFieldName()).append("<br>\n");
        
        for (String fragment : fragments) {
            stringBuilder.append(fragment).append("\n");
        }
    }
}

try {
    Files.write(Paths.get("/path/to/your/output/directory/Fragments.html"), stringBuilder.toString().getBytes());
} catch (IOException ex) {
    // Handle exceptions
}

Практические применения

  1. Юридический обзор документов – мгновенно выделять законы, пункты или ссылки на судебные решения.
  2. Академические исследования – находить ключевые термины в десятках PDF‑ и Word‑файлов.
  3. Поддержка клиентов – быстро находить номера заказов или коды ошибок в истории обращений.

Соображения по производительности

  • Размер индекса – высокая компрессия (Compression.High) уменьшает объём на диске.
  • Контекст фрагмента – большие значения termsBefore/After повышают точность, но могут влиять на скорость.
  • Управление памятью – контролируйте кучу JVM при индексировании больших корпусов; рассматривайте инкрементальное индексирование для очень больших наборов.

Распространённые проблемы и решения

  • Ошибки индексирования – проверьте пути к файлам и убедитесь, что приложение имеет права чтения/записи.
  • Отсутствие выделения – убедитесь, что UseInlineStyles соответствует вашему формату вывода (HTML vs. PDF).
  • Цвет не применяется – проверьте, что RGB‑значения находятся в диапазоне 0‑255 и что HTML‑просмотрщик поддерживает стиль.

Часто задаваемые вопросы

В: Какие преимущества даёт использование GroupDocs.Search for Java?
О: Быстрое, масштабируемое индексирование, настраиваемое выделение и поддержка множества форматов документов.

В: Как интегрировать GroupDocs.Search с REST API?
О: Откройте методы поиска и выделения через контроллеры Spring Boot, возвращая HTML или JSON‑payload.

В: Обрабатывает ли библиотека файлы, защищённые паролем?
О: Да — укажите пароль при добавлении документа в индекс.

В: Можно ли настроить разметку выделения помимо цвета?
О: Конечно; через HighlightOptions можно добавить CSS‑классы или изменить HTML после генерации.

В: Какая версия использовалась при тестировании этого руководства?
О: Код проверен на GroupDocs.Search 25.4.

В: Как установить highlight options java для использования CSS‑класса вместо встроенных стилей?
О: Установите options.setUseInlineStyles(false) и добавьте правило CSS для класса, задаваемого через options.setCssClass("myHighlight").

В: Есть ли способ highlight terms pdf java напрямую, когда источник — PDF?
О: Да — GroupDocs.Search работает с PDF‑входом, а выделитель выводит HTML, который можно встроить в PDF‑просмотрщик или конвертировать обратно в PDF с помощью GroupDocs.Conversion.


Последнее обновление: 2026-02-27
Тестировано с: GroupDocs.Search 25.4
Автор: GroupDocs