Как создать поисковый индекс Java и включить проверку орфографии

В современных Java‑приложениях предоставление точных результатов поиска является обязательной функцией. В этом руководстве показано как создать поисковый индекс Java и включить исправление орфографии с помощью GroupDocs.Search, чтобы пользователи получали релевантные результаты даже при ошибках ввода запросов. Вы увидите, как настроить библиотеку, добавить документы, сконфигурировать максимальное количество ошибок и выполнить поиск с толерантностью к опечаткам — всё без написания единой строки дополнительного кода конфигурации.

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

  • Что делает «enable spelling»? Он активирует встроенный проверщик орфографии, который переписывает ошибочно набранные термины в их ближайшие правильные формы во время поиска.
  • Какая библиотека предоставляет эту функцию? GroupDocs.Search for Java.
  • Нужна ли лицензия? Бесплатная пробная версия подходит для оценки; полная лицензия требуется для использования в продакшене.
  • Можно ли контролировать толерантность? Да — используйте setMaxMistakeCount, чтобы задать количество опечаток, допускаемых в запросе.
  • Подходит ли это для больших индексов? Абсолютно — движок обрабатывает индексы с миллионами записей, удерживая задержку запросов ниже 100 мс на типичном серверном оборудовании.

Что такое GroupDocs.Search?

GroupDocs.Search — это Java‑библиотека, предоставляющая быстрое полнотекстовое индексирование и расширенные функции поиска, включая встроенную коррекцию орфографии. Она поддерживает более 50 форматов ввода и может обрабатывать документы в сотни страниц без загрузки всего файла в память.

Почему включать коррекцию орфографии в Java‑приложениях?

  • Повышает удовлетворённость пользователей — посетители получают правильные результаты даже при неточном вводе.
  • Снижает показатель отказов — точные результаты удерживают пользователей дольше.
  • Работает в разных областях — от библиотечных каталогов до поисков товаров в e‑commerce, коррекция орфографии повышает релевантность везде.

Требования

  • Установлен Java Development Kit (JDK).
  • Базовые знания Java и Maven.
  • Понимание концепций индексирования.
  • Пробная версия или лицензированный ключ GroupDocs.Search.

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

Интегрируйте библиотеку в ваш Maven‑проект.

Настройка Maven
Добавьте репозиторий и зависимость в ваш файл 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>

Прямое скачивание
Либо скачайте последнюю версию по ссылке GroupDocs.Search for Java releases.

Получение лицензии

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

Как создать поисковый индекс в Java?

SearchIndex — основной класс, представляющий поисковый индекс, хранящийся на диске.
Создайте экземпляр SearchIndex, указывающий папку на диске, затем добавьте документы из исходного каталога. Движок строит обратный индекс, обеспечивающий быстрый поиск. Вы можете вызывать index.add() для каждого файла; библиотека автоматически извлекает текст в зависимости от типа файла.

Как включить коррекцию орфографии?

getSpellingOptions() возвращает объект конфигурации орфографии для индекса, позволяя включать или настраивать функции проверки правописания.
Включите орфографию, вызвав index.getSpellingOptions().setEnabled(true). Это заставит движок анализировать термины запроса и предлагать исправленные варианты при обнаружении несоответствий. Функция работает сразу для всех языков, поддерживаемых библиотекой.

Что такое настройка максимального количества ошибок?

setMaxMistakeCount задаёт максимальное количество правок символов, которое проверщик орфографии будет терпеть для каждого термина.
setMaxMistakeCount(int) определяет максимальное количество правок символов (вставки, удаления, замены), которое проверщик орфографии будет терпеть для термина. Установка значения 2 позволяет движку исправлять типичные двухсимвольные опечатки, избегая при этом слишком агрессивных исправлений, которые могут вернуть нерелевантные результаты.

Как выполнить поиск с исправлением орфографии

search() выполняет запрос к индексу и возвращает объект SearchResult, содержащий совпадения и любые исправленные термины.
Выполните поисковый запрос, используя метод search(). Если запрос содержит ошибочно написанные слова, движок возвращает SearchResult, включающий исправленные термины и список наиболее релевантных документов. Вы можете отображать как оригинальный запрос, так и исправленную версию пользователю для прозрачности.
SearchResult содержит список найденных документов и информацию об исправлениях запроса.

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

  1. Библиотечные системы — автоматически исправлять ошибочно написанные названия книг или имена авторов.
  2. Платформы e‑commerce — исправлять опечатки в названиях товаров для повышения коэффициента конверсии.
  3. Системы управления контентом — помогать редакторскому персоналу находить статьи даже при неточных ключевых словах.

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

  • Поддерживайте индекс в актуальном состоянии — регулярно переиндексируйте новые или изменённые файлы.
  • Настройте параметры памяти JVM — выделите достаточный heap для больших индексов (например, -Xmx4g).
  • Отслеживайте использование ресурсов — при необходимости корректируйте флаги сборщика мусора, если замечаете паузы во время массового индексирования.

Распространённые проблемы и устранение неисправностей

СимптомВозможная причинаРешение
Отсутствие результатов после включения орфографииПуть к папке индекса неверен или пустПроверьте, что indexFolder указывает на действительный индекс и что index.add() выполнен успешно
Проверка орфографии не исправляет очевидные опечаткиsetMaxMistakeCount установлен слишком низкоУвеличьте значение до 2 или 3 для более толерантного исправления
Приложение падает при больших наборах документовНедостаточный heap JVMУвеличьте параметр -Xmx (например, -Xmx4g)

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

Q: Что такое GroupDocs.Search?
A: GroupDocs.Search — это Java‑библиотека, предоставляющая быстрое индексирование, расширенные возможности запросов и встроенную коррекцию орфографии для любого Java‑приложения.

Q: Как получить лицензию для GroupDocs.Search?
A: Посетите официальный сайт, чтобы скачать бесплатную пробную версию или приобрести полную лицензию; временный ключ также доступен для краткосрочного тестирования.

Q: Можно ли интегрировать GroupDocs.Search с другими Java‑фреймворками?
A: Да, она без проблем работает со Spring, Jakarta EE и любым стандартным Java‑приложением.

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

Q: Как коррекция орфографии улучшает результаты поиска?
A: Она автоматически переписывает ошибочно введённые запросы в их ближайшие правильные формы, возвращая более релевантные результаты и снижая разочарование пользователей.

Дополнительные ресурсы


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

import com.groupdocs.search.*;

public class FeatureIndexAndAddDocuments {
    public static void main(String[] args) {
        // Define where the index will be stored
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\SpellChecking";
        
        // Create an Index instance pointing to the specified folder
        Index index = new Index(indexFolder);
        
        // Specify the documents directory for indexing
        String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";  
        
        // Add documents from this directory to the index
        index.add(documentsFolder);
    }
}
import com.groupdocs.search.*;
import com.groupdocs.search.options.*;

public class FeatureSpellingCorrectionOptions {
    public static void main(String[] args) {
        // Instantiate SearchOptions
        SearchOptions options = new SearchOptions();
        
        // Enable spelling correction
        options.getSpellingCorrector().setEnabled(true);
        
        // Allow up to one mistake during search
        options.getSpellingCorrector().setMaxMistakeCount(1);
        
        // Return only the best results after correction
        options.getSpellingCorrector().setOnlyBestResults(true);
    }
}
import com.groupdocs.search.*;
import com.groupdocs.search.options.*;
import com.groupdocs.search.results.*;

public class FeatureSpellingCorrectionSearch {
    public static void main(String[] args) {
        // Create an index in the specified directory
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\SpellChecking";
        Index index = new Index(indexFolder);
        
        // Define search options with spelling correction enabled
        SearchOptions options = new SearchOptions();
        options.getSpellingCorrector().setEnabled(true);
        options.getSpellingCorrector().setMaxMistakeCount(1);
        options.getSpellingCorrector().setOnlyBestResults(true);
        
        // Specify a misspelled search query
        String query = "houseohld";
        
        // Execute the spelling‑corrected search
        SearchResult result = index.search(query, options);
    }
}

Связанные руководства