Полнотекстовый поиск Java: создание индекса с GroupDocs.Search
Быстрые ответы
- Что такое “java full text search”? Это процесс создания индекса, который позволяет выполнять быстрые текстовые запросы по множеству файлов в Java‑приложении.
- Какая библиотека обеспечивает это «из коробки»? GroupDocs.Search for Java предоставляет готовое индексирование, управление словарём и выполнение запросов.
- Нужна ли лицензия? Бесплатная пробная версия подходит для оценки; полная лицензия требуется для продакшн‑развертываний.
- Можно ли настроить обработку символов? Абсолютно — используйте алфавитный словарь для определения пользовательских типов символов.
- Обязан ли Maven? Maven упрощает управление зависимостями, но вы также можете скачать JAR напрямую.
Что такое полнотекстовый поиск Java и зачем управлять алфавитным словарём?
Индекс java full text search хранит токенизированные представления ваших документов, позволяя мгновенно находить слова или фразы. Алфавитный словарь указывает движку, как обрабатывать каждый символ (букву, цифру, символ), что напрямую влияет на токенизацию и релевантность поиска — особенно для специальных символов или правил, специфичных для языка.
Почему использовать GroupDocs.Search для полнотекстового поиска Java?
GroupDocs.Search обрабатывает до 10 000 документов без полной загрузки их в память, обеспечивая время отклика менее секунды. Он предоставляет полный контроль над типами символов, поддерживает более 50 форматов ввода и вывода, и масштабируется горизонтально на несколько серверов, делая его самым надёжным выбором для корпоративного поиска.
Требования
- GroupDocs.Search for Java (последний релиз).
- Java 17 или новее, установленная на вашей машине разработки.
- Maven 3.6+ (или возможность добавить JAR вручную).
Требуемые библиотеки, версии и зависимости
- GroupDocs.Search for Java — последняя стабильная версия.
- Дополнительные сторонние библиотеки не требуются для базового индексирования.
Требования к настройке окружения
Убедитесь, что у вас есть окружение, совместимое с Maven. Если Maven ещё не установлен, скачайте его с официального сайта: Apache Maven.
Предварительные знания
Знание синтаксиса Java и работы с файловым вводом‑выводом будет полезно, но пошаговое руководство ниже охватывает всё необходимое.
Настройка GroupDocs.Search для Java
Конфигурация Maven
Add the repository and dependency to 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>
Прямое скачивание
Если вы предпочитаете не использовать Maven, скачайте последний JAR со страницы официальных релизов: GroupDocs.Search for Java releases.
Шаги получения лицензии
- Бесплатная пробная версия – начните с пробной версии, чтобы изучить все функции.
- Временная лицензия – запросите временный ключ для расширенного тестирования.
- Полная лицензия – приобретите производственную лицензию для неограниченного использования.
Базовая инициализация и настройка
Create an Index instance that points to the folder where the search index will be stored:
import com.groupdocs.search.*;
public class SearchIndexSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
}
}
Руководство по реализации
Below is a complete walkthrough of the most common operations you’ll perform when building a java full text search solution.
Создание или открытие индекса
The Index class is the core object that represents a searchable collection stored on disk.
import com.groupdocs.search.*;
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
- Параметры:
indexFolder– путь, где находятся файлы индекса. - Назначение: Настраивает поисковую среду для последующего индексирования и запросов.
Экспорт алфавитного словаря в файл
The AlphabetDictionary object holds character‑type mappings. Exporting it lets you reuse or analyse the configuration later.
import com.groupdocs.search.dictionaries.*;
String fileName = "YOUR_OUTPUT_DIRECTORY\\Alphabet.dat";
index.getDictionaries().getAlphabet().exportDictionary(fileName);
- Параметры:
fileName– файл назначения для экспортированного словаря.
Очистка алфавитного словаря
Reset the dictionary to its default state before applying custom rules:
import com.groupdocs.search.dictionaries.*;
if (index.getDictionaries().getAlphabet().getCount() > 0) {
index.getDictionaries().getAlphabet().clear();
}
- Назначение: Удаляет все ранее определённые типы символов, обеспечивая чистый лист.
Импорт алфавитного словаря из файла
Restore a previously saved dictionary configuration:
import com.groupdocs.search.dictionaries.*;
index.getDictionaries().getAlphabet().importDictionary(fileName);
- Параметры:
fileName– путь к файлу.dat, содержащему словарь.
Установка типа символа в алфавитном словаре
The CharacterType enum specifies how characters are interpreted during tokenization. Customize how specific characters are treated during tokenization. The CharacterType.Blended value tells the engine to treat the hyphen as part of a word rather than a separator.
import com.groupdocs.search.dictionaries.*;
if (index.getDictionaries().getAlphabet().getCharacterType('-') != CharacterType.Blended) {
index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
}
- Параметры: Символ (
'-') и его новыйCharacterType. - Почему это важно: Настройка типов символов повышает релевантность поиска для дефисных терминов, идентификаторов или пользовательских символов.
Индексирование документов из папки
Add all files in a directory to the search index in one operation:
import com.groupdocs.search.*;
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);
- Параметры:
documentsFolder– папка, содержащая документы, которые вы хотите индексировать.
Поиск в индексе
The SearchResult class contains the list of matched documents and snippets returned by a query. Execute a query and retrieve matching results:
import com.groupdocs.search.results.*;
String query = "Elliot-Murray-Kynynmound";
SearchResult result = index.search(query);
- Параметры:
query– текст, который вы ищете. - Результат: Объект
SearchResult, содержащий найденные документы и фрагменты.
Распространённые сценарии использования полнотекстового поиска Java
- Системы управления контентом (CMS): ускоряют поиск статей и ресурсов.
- Хранилища юридических документов: мгновенно находят пункты или ссылки на дела.
- Исследовательские библиотеки: индексируют тысячи статей для мгновенного поиска по ключевым словам.
- Электронные каталоги: улучшают поиск товаров с помощью пользовательской токенизации.
- Порталы поддержки клиентов: позволяют агентам быстро находить релевантные заявки или статьи базы знаний.
Соображения по производительности
- Инкрементные обновления: переиндексировать только новые или изменённые файлы, чтобы поддерживать актуальность индекса без полной перестройки.
- Оптимизация запросов: делайте запросы лаконичными; избегайте слишком широких поисков с подстановочными знаками.
- Мониторинг ресурсов: следите за использованием памяти при крупном пакетном индексировании — при необходимости настройте размер кучи JVM.
- Размер словаря: экспортируйте/импортируйте алфавитный словарь только при его изменении; лишний ввод‑вывод может замедлять запуск.
Часто задаваемые вопросы
Q: Каковы требования к использованию GroupDocs.Search?
A: Установите Java 17+, Maven 3.6+ (или скачайте JAR) и добавьте зависимость GroupDocs.Search.
Q: Как получить лицензию для продакшн‑использования?
A: Начните с бесплатной пробной версии, запросите временный ключ для расширенного тестирования, затем приобретите полную лицензию в портале GroupDocs.
Q: Можно ли настроить типы символов в алфавитном словаре?
A: Да — используйте методы setRange или set для назначения пользовательских значений CharacterType любому символу или диапазону.
Q: Можно ли экспортировать и импортировать алфавитный словарь?
A: Конечно — используйте методы exportDictionary и importDictionary для сохранения или обмена конфигурациями словаря.
Q: С какой версией проверялось данное руководство?
A: Примеры проверены с GroupDocs.Search for Java версии 25.4.
Последнее обновление: 2026-09-06
Тестировано с: GroupDocs.Search for Java 25.4
Автор: GroupDocs