Извлечение текста из PDF Java: создание индекса документов с GroupDocs.Search

В этом практическом руководстве вы узнаете how to extract text from PDF Java приложения и преобразовывать этот сырой контент в быстрый полнотекстовый индекс. Независимо от того, создаёте ли вы внутреннюю базу знаний, портал поиска контрактов или собственный поисковый движок, нижеописанные шаги проведут вас через всё — от извлечения текста из PDF до сериализации данных, создания индекса и, наконец, выполнения запросов. Давайте погрузимся и посмотрим, почему GroupDocs.Search делает весь процесс плавным и масштабируемым.

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

  • Какова основная цель? Извлекать текст из файлов PDF Java и создавать полнотекстовый индекс документов с помощью GroupDocs.Search.
  • Какая версия библиотеки? GroupDocs.Search 25.4 (или последняя версия).
  • Нужна ли лицензия? Бесплатная пробная версия подходит для разработки; для продакшна требуется полная лицензия.
  • Можно ли индексировать PDF? Да — извлекать текст из PDF и добавлять его в индекс.
  • Как выполнить поиск? Используйте метод index.search(query) после добавления данных.

Что такое индекс документов?

Индекс документов — это структурированная коллекция поисковых терминов, извлечённых из ваших файлов. Создавая индекс документов, вы обеспечиваете быстрый полнотекстовый поиск по большим репозиториям, значительно повышая скорость и точность извлечения.

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

  • Robust extraction – Обрабатывает PDF, Word, Excel и другие форматы.
  • Easy serialization – Сохраняйте извлечённые данные в виде массивов байтов для последующего использования.
  • Scalable indexing – Эффективно индексировать миллионы документов.
  • Powerful query language – Поддерживает сложные полнотекстовые запросы Java.

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

  • GroupDocs.Search for Java (Версия 25.4 или новее).
  • Java Development Kit (JDK), совместимый с вашей версией GroupDocs.
  • IDE, например IntelliJ IDEA или Eclipse.
  • Maven для управления зависимостями.

Настройка GroupDocs.Search для Java

Сначала добавьте библиотеку в ваш проект.

Maven Setup
Включите следующее в ваш файл 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>

Direct Download
В качестве альтернативы загрузите последнюю версию с GroupDocs.Search for Java releases.

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

  • Free Trial – Тестировать все функции с временной лицензией.
  • Purchase – Получить полный доступ и приоритетную поддержку.

Пошаговая реализация

Как извлекать текст из PDF (и других документов)

Извлечение сырого или отформатированного текста — первый шаг к созданию индекса документов. Когда вы extract text from PDF Java, вы предоставляете поисковому движку то, что он может понять.

String documentPath = "YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.pdf";
Extractor extractor = new Extractor();
Document document = Document.createFromFile(documentPath);
ExtractionOptions extractionOptions = new ExtractionOptions();
extractionOptions.setUseRawTextExtraction(false); // Extract with formatting
ExtractedData extractedData = extractor.extract(document, extractionOptions);

Tip: Установите setUseRawTextExtraction(true), если нужен простой текст без форматирования.

Как сериализовать извлечённые данные

Сериализация позволяет сохранять извлечённые данные для последующего индексирования.

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
extractedData.serialize(outputStream);
byte[] serializedArray = outputStream.toByteArray();

Как десериализовать извлечённые данные

Когда вы готовы построить индекс, преобразуйте массив байтов обратно в объект.

ByteArrayInputStream inputStream = new ByteArrayInputStream(serializedArray);
ExtractedData deserializedData = ExtractedData.deserialize(inputStream);

Как создать индекс документов

Теперь, когда у вас есть deserializedData, вы можете создать индекс, который будет содержать поисковые термины.

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/SeparateDataExtraction";
com.groupdocs.search.Index index = new com.groupdocs.search.Index(indexFolder);

Как добавить данные в индекс и выполнить поиск

Добавление данных и запрос к индексу завершают рабочий процесс extract text from PDF Java.

ExtractedData[] dataToIndex = new ExtractedData[] { deserializedData };
index.add(dataToIndex, new IndexingOptions());
String query = "ipsum";
SearchResult result = index.search(query);

Pro tip: Используйте index.search("your query", SearchOptions), чтобы точно настроить ранжирование релевантности.

Распространённые сценарии использования

  1. Document Management Systems – Быстро находить контракты, счета или политики.
  2. Content‑Based Search Engines – Обеспечивать внутренние базы знаний с возможностями полнотекстового поиска Java.
  3. Data Archiving Solutions – Индексировать исторические записи для мгновенного доступа.

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

  • Memory Management: Настройте размер кучи JVM для больших пакетов документов.
  • Indexing Options: Отключите ненужные функции (например, term vectors), чтобы ускорить индексацию.
  • Regular Updates: Держите GroupDocs.Search в актуальном состоянии, чтобы получать улучшения производительности.

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

Q: Как эффективно обрабатывать очень большие PDF‑файлы?
A: Потоково считывайте файл с помощью Extractor и обрабатывайте его частями; также при необходимости увеличьте кучу JVM.

Q: Можно ли настроить синтаксис поискового запроса?
A: Да — GroupDocs.Search поддерживает логические операторы, подстановочные знаки и поиск по близости.

Q: Что делать, если сериализация не удалась?
A: Убедитесь, что все объекты реализуют Serializable, и перехватывайте IOException для записи деталей.

Q: Можно ли индексировать только определённые разделы документа?
A: Конечно — настройте ExtractionOptions, чтобы фильтровать страницы или разделы перед индексацией.

Q: Как обновить до более новой версии GroupDocs.Search?
A: Обновите номер версии в вашем pom.xml и выполните mvn clean install; ознакомьтесь с руководством по миграции для выявления несовместимых изменений.

Ресурсы


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