Создание индекса документов с GroupDocs.Search для Java: Полное руководство
В современную цифровую эпоху возможность создавать индекс документов быстро и эффективно выполнять поиск по нему является переломным моментом для любой организации. Независимо от того, создаёте ли вы систему управления документами или собственный поисковый движок, GroupDocs.Search для Java предоставляет инструменты для извлечения текста, сериализации данных и выполнения полнотекстового поиска Java с лёгкостью. Этот учебник проведёт вас через каждый шаг — от извлечения текста из PDF до добавления данных в индекс и поиска по проиндексированным документам.
Быстрые ответы
- Какова основная цель? Создать индексируемый документ с помощью GroupDocs.Search для Java.
- Какая версия библиотеки? GroupDocs.Search 25.4 (или последняя версия).
- Нужна ли лицензия? Бесплатная пробная версия подходит для разработки; полная лицензия требуется для продакшн‑окружения.
- Можно ли индексировать PDF? Да — извлеките текст PDF и добавьте его в индекс.
- Как выполнить поиск? Используйте метод
index.search(query)после добавления данных.
Что такое индекс документов?
Индекс документов — это структурированная коллекция поисковых терминов, извлечённых из ваших файлов. Создавая индекс документов, вы обеспечиваете быстрый полнотекстовый поиск по большим репозиториям, существенно повышая скорость и точность извлечения информации.
Почему использовать GroupDocs.Search для Java?
- Robust extraction – Handles PDFs, Word, Excel, and more.
- Easy serialization – Store extracted data as byte arrays for later reuse.
- Scalable indexing – Efficiently index millions of documents.
- Powerful query language – Supports complex full‑text search Java queries.
Предварительные требования
- GroupDocs.Search for Java (Version 25.4 or newer).
- Java Development Kit (JDK) compatible with your GroupDocs version.
- IDE such as IntelliJ IDEA or Eclipse.
- Maven for dependency management.
Настройка GroupDocs.Search для Java
First, add the library to your project.
Настройка Maven
Include the following in your pom.xml file:
<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>
Прямое скачивание
Alternatively, download the latest version from GroupDocs.Search for Java releases.
Приобретение лицензии
- Free Trial – Test all features with a temporary license.
- Purchase – Get full access and priority support.
Пошаговая реализация
Как извлечь текст из PDF (и других документов)
Extracting raw or formatted text is the first step toward creating a document index.
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);
Совет: Установите
setUseRawTextExtraction(true), если нужен чистый текст без форматирования.
Как сериализовать извлечённые данные
Serialization lets you store the extracted data for later indexing.
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
extractedData.serialize(outputStream);
byte[] serializedArray = outputStream.toByteArray();
Как десериализовать извлечённые данные
When you’re ready to build the index, convert the byte array back into an object.
ByteArrayInputStream inputStream = new ByteArrayInputStream(serializedArray);
ExtractedData deserializedData = ExtractedData.deserialize(inputStream);
Как создать индекс документов
Now that you have deserializedData, you can create the index that will hold searchable terms.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/SeparateDataExtraction";
com.groupdocs.search.Index index = new com.groupdocs.search.Index(indexFolder);
Как добавить данные в индекс и выполнить поиск
Adding data and querying the index completes the создание индекса документов workflow.
ExtractedData[] dataToIndex = new ExtractedData[] { deserializedData };
index.add(dataToIndex, new IndexingOptions());
String query = "ipsum";
SearchResult result = index.search(query);
Профессиональный совет: Используйте
index.search("your query", SearchOptions), чтобы точно настроить ранжирование релевантности.
Общие сценарии использования
- Document Management Systems – Quickly locate contracts, invoices, or policies.
- Content‑Based Search Engines – Power internal knowledge bases with full‑text search Java capabilities.
- Data Archiving Solutions – Index historic records for instant retrieval.
Соображения по производительности
- Memory Management: Adjust JVM heap size for large document batches.
- Indexing Options: Disable unnecessary features (e.g., term vectors) to speed up indexing.
- Regular Updates: Keep GroupDocs.Search up‑to‑date to benefit from performance patches.
Часто задаваемые вопросы
Q: How do I handle very large PDF files efficiently?
A: Stream the file using Extractor and process it in chunks; also increase the JVM heap if needed.
Q: Can I customize the search query syntax?
A: Yes—GroupDocs.Search supports Boolean operators, wildcards, and proximity searches.
Q: What should I do if serialization fails?
A: Verify that all objects implement Serializable and catch IOException to log details.
Q: Is it possible to index only specific sections of a document?
A: Absolutely—configure ExtractionOptions to filter pages or sections before indexing.
Q: How do I upgrade to a newer GroupDocs.Search version?
A: Update the version number in your pom.xml and run mvn clean install; review the migration guide for breaking changes.
Ресурсы
- Документация: GroupDocs Documentation
- API Reference: GroupDocs API Reference
- Download: GroupDocs Downloads
- GitHub: GroupDocs GitHub Repository
- Free Support: GroupDocs Forum
- Temporary License: Obtain a Temporary License
Last Updated: 2025-12-18
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs