Индексация – это термин, вполне синонимичный поисковым системам в наши дни, однако, по определению, он относится к организации данных на основе определенной схемы. Другими словами, это процесс придания данным и информации более презентабельного вида, а также удобного доступа.
Расположение данных в индексе экономит ваше время и усилия при поиске или извлечении информации. Для перспективы рассмотрим книгу по космической науке, содержащую сотни страниц. Если в нем нет указателя, вам придется выполнять поиск по всей книге каждый раз, когда вы захотите просмотреть нужную информацию. Это был бы совершенно другой сценарий, если бы у этой книги был указатель, вы могли бы открыть именно ту страницу, на которой содержится информация, которую вы ищете.
Как программист, вы можете столкнуться с бизнес-требованием индексации данных в определенных типах документов. Это потребовало бы создания сложной схемы, позволяющей вам не только легко индексировать информацию, но и выполнять операции поиска там, где это необходимо. Добавьте к этому необходимость выполнять все это на платформе Java, и вам потребуется предложение API:
- Поддержка многоформатных документов
- Возможность создания нескольких индексов
- Возможность нескольких типов поиска
Групповые документы. Search for Java – это уникальный API индексации, удовлетворяющий вышеупомянутым требованиям, предоставляя усовершенствованный набор функций и гибкую структуру. Это позволяет разработчикам приложений Java создавать и управлять несколькими индексами, а также использовать различные поисковые запросы, такие как простой, логический, регулярное выражение (regex) или нечеткий поиск.
Вы можете использовать смешанные символы с помощью этого Java API, который поможет вам использовать такие символы, как дефис, в качестве допустимых букв и разделителей при индексации. Опция поиска по подстановочным знакам – еще одна очень полезная функция этого API. Доступны две формы подстановочных знаков: один произвольный символ или диапазон произвольных символов с подстановочными знаками.
Следующий фрагмент кода показывает, как выполнить поиск по подстановочным знакам с помощью текстового запроса: //Создание индекса
Index Index(Утилиты.INDEX_PATH,true);
//Добавление документов в индекс
index.add To Index(Утилиты. DOCUMENTS_PATH,true);
//Поиск слов "влияет" или "эффект" в одном документе с "принципалом", "принципом", "принципами" или "главным образом"
SearchResults.search("?ffect & princip?(2~4)");
//Поиск с помощью одного запроса по фразам "обеспечить равные возможности", "обеспечить равные возможности" и "обеспечить равные возможности"
Результаты поиска.поиск("\"?(0~2) уверенные равные возможности\"");
А для поиска подстановочных знаков с помощью object обратитесь к приведенному ниже фрагменту кода: //Создание индекса
Index Index(Утилиты.INDEX_PATH,true);
//Добавление документов в индекс
index.add To Index(Утилиты. DOCUMENTS_PATH, true);
//Построение запроса 1
//Слово 1 в запросе является шаблоном '? ffect' для поиска по шаблону
Шаблон Word Word Pattern();
Шаблон 11.appendOneCharacterWildcard();
шаблон 11.appendString("ffect");
SearchQuery.createWordPatternQuery(шаблон 11);
//Слово 2 в запросе является шаблоном 'princip?(2~4)' для поиска по шаблону
WordPattern WordPattern();
шаблон 12.appendString("принцип");
шаблон 12.appendWildcard(2, 4);
SearchQuery.createWordPatternQuery(шаблон 12);
//Создание логического поискового запроса
Поисковый запрос.создание И запрос(подзапрос11, подзапрос12);
//Поиск с помощью запроса 1
SearchResults.search(запрос 1, новые параметры поиска());
//Построение запроса 2
//Слово 1 во фразе - это шаблон "? (0~2)уверен" для поиска по шаблону
Шаблон Word Шаблон Word();
Шаблон 21.appendWildcard(0, 2);
шаблон 21.appendString("уверен");
SearchQuery.createWordPatternQuery(шаблон 21);
//Слово 2 во фразе ищется с помощью разных словоформ ("равно", "равно", "одинаково" и т.д.)
| Поисковый запрос.createWordQuery("равно");
subquery22.setSearchParameters(новые параметры поиска());
subquery22.getSearchParameters().setUseWordFormsSearch(true);
//Слово 3 во фразе ищется с максимальными 2 различиями нечетких поиск
SearchQuery.createWordQuery("возможности");
subquery23.setSearchParameters(новые параметры поиска());
subquery23.getSearchParameters().getFuzzySearch().setEnabled(true);
subquery23.getSearchParameters().getFuzzySearch().setFuzzyAlgorithm(новая табличная функция(2));
//Создание поискового запроса по фразе
Поисковый запрос.создать поисковый запрос по фразе(подзапрос21, подзапрос22, подзапрос23);
Проверьте все доступные функции самостоятельно сегодня – Проверьте все доступные функции самостоятельно сегодня –
Оригинал: “https://dev.to/groupdocs/implementing-wildcard-search-functionality-in-your-java-applications-3jc8”