Как искать фразу с подстановочными знаками в GroupDocs.Search для Java

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

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

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

Что такое «как искать фразу»?

Поиск фразы — это поиск конкретной последовательности слов в документе. Когда вы добавляете подстановочные знаки, вы позволяете поисковому движку пропускать или заменять слова, получая гибкость для совпадения вариантов без потери релевантности.

Почему использовать GroupDocs.Search для запросов фраз и подстановочных знаков?

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

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

  • Установлен Java 8 или новее.
  • Maven 3 или новее (если вы предпочитаете управление зависимостями через Maven).
  • Базовое знакомство с синтаксисом Java и структурой проекта.

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

Использование 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>

Прямая загрузка

Или скачайте последний JAR с GroupDocs.Search for Java releases.

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

  • Бесплатная пробная: Идеальна для быстрых экспериментов.
  • Временная лицензия: Запросите через портал GroupDocs для расширенного тестирования.
  • Полная покупка: Рекомендуется для продакшн‑развёртываний.

Базовая инициализация и настройка

Создайте папку для индекса и инициализируйте её:

String indexFolder = "YOUR_OUTPUT_DIRECTORY/PhraseSearch";
Index index = new Index(indexFolder);

Добавьте документы, которые хотите сделать доступными для поиска:

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);

Как искать фразу с подстановочными знаками в GroupDocs.Search

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

Простой поиск фразы

Обзор

Используйте, когда требуется точное совпадение последовательности слов.

Шаг 1: Создание индекса
Index index = new Index(indexFolder);
Шаг 2: Добавление документов в индекс
index.add(documentsFolder);
Шаг 3: Поиск конкретной фразы (текстовая форма)
String queryText = "\"sollicitudin at ligula\"";
SearchResult resultText = index.search(queryText);
Шаг 4: Объектно‑ориентированные запросы (поиск точной фразы)
SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery word2 = SearchQuery.createWordQuery("at");
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, word2, word3);
SearchResult resultObject = index.search(queryObject);

Поиск фразы с подстановочными знаками

Обзор

Заполнители‑подстановочные знаки позволяют пропускать переменное количество слов между точными терминами.

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

(То же, что в шагах простого поиска фразы.)

Шаг 2: Добавление документов в индекс

(То же, что выше.)

Шаг 3: Текстовый поиск с подстановочными знаками
String queryText = "\"sollicitudin *0~~3 ligula\"";
SearchResult resultText = index.search(queryText);
Шаг 4: Объектно‑ориентированные запросы с подстановочными знаками (Wildcard Search Java)
SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, word3);
SearchResult resultObject = index.search(queryObject);

Продвинутый поиск с подстановочными знаками

Обзор

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

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

(Повторено для ясности.)

Шаг 2: Добавление документов в индекс

(Повторено.)

Шаг 3: Текстовый поиск с комплексными шаблонами подстановочных знаков
String queryText = "\"sollicitudin *0~~3 ?(0~4)la\"";
SearchResult resultText = index.search(queryText);
Шаг 4: Объектно‑ориентированные запросы с продвинутыми подстановочными знаками
double word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);

WordPattern pattern = new WordPattern();
pattern.appendWildcard(0, 4);
pattern.appendString("la");

SearchQuery wordPattern3 = SearchQuery.createWordPatternQuery(pattern);
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, wordPattern3);
SearchResult resultObject = index.search(queryObject);

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

  • Системы управления контентом: Позволяют редакторам находить точные пункты или гибкие отрывки.
  • Каталоги электронной коммерции: Позволяют покупателям находить товары, даже если они пропустили слово или используют синоним.
  • Юридические и комплаенс‑системы: Быстро изолируют договорные формулировки, которые могут появляться с небольшими вариациями.

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

  • Создавайте поисковый индекс только один раз для набора документов, затем переиспользуйте его.
  • Добавляйте документы в индекс инкрементно, когда появляются новые файлы — не перестраивайте весь индекс каждый раз.
  • Используйте точные шаблоны подстановочных знаков, чтобы избежать лишнего сканирования; более широкие шаблоны увеличивают нагрузку на CPU.
  • Периодически вызывайте index.optimize() (если доступно), чтобы поддерживать низкое потребление памяти.

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

ПроблемаРешение
Нет результатов для запроса с подстановочным знакомПроверьте синтаксис подстановочного знака (*min~~max) и убедитесь, что слова существуют в указанном диапазоне расстояния.
Индекс устарел после обновления файловПовторно выполните index.add(updatedFolder) или используйте API инкрементного обновления.
Высокое потребление памяти при больших наборах данныхУвеличьте размер кучи JVM и рассмотрите разбивку индекса на несколько шардов.

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

В: В чём разница между подстановочным знаком и поиском фразы?
О: Поиск фразы ищет точный порядок слов, тогда как подстановочный знак позволяет заменять или пропускать слова внутри этого порядка.

В: Можно ли использовать подстановочные знаки с числовыми данными в запросах?
О: Да, параметры диапазона подстановочного знака работают как с числами, так и со словами.

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

В: Подходит ли GroupDocs.Search для сценариев поиска в реальном времени?
О: Абсолютно — после построения индекса запросы выполняются за миллисекунды, что делает его пригодным для интерактивных приложений.

В: Можно ли интегрировать эту библиотеку в существующий Java‑проект?
О: Да. Добавьте зависимость Maven или JAR, инициализируйте индекс как показано, и вы готовы к работе.


Последнее обновление: 2026-01-26
Тестировано с: GroupDocs.Search 25.4 для Java
Автор: GroupDocs