Создание поискового индекса GroupDocs с Redaction .NET фасетный поиск
Быстрые ответы
- Какова основная цель? Создать поисковый индекс с GroupDocs и включить фасетный поиск.
- Какие библиотеки требуются? GroupDocs.Redaction и GroupDocs.Search для .NET.
- Как добавить документы в индекс? Используйте
index.Add(documentsFolder)после инициализации индекса. - Можно ли выполнять сложные запросы? Да, комбинируйте объектные запросы с логическими операторами для продвинутой фильтрации.
- Нужна ли лицензия? Бесплатная пробная версия подходит для разработки; коммерческая лицензия требуется для продакшна.
Что такое фасетный поиск и почему использовать его с GroupDocs?
Фасетный поиск позволяет пользователям уточнять результаты, применяя несколько фильтров — например, категорию, дату или автора — одновременно. В сочетании с GroupDocs.Redaction вы получаете защищённый, индексируемый контент, который соблюдает правила редактирования, что делает его идеальным для сред с высокими требованиями к соответствию.
Предварительные требования
Требуемые библиотеки, версии и зависимости
- GroupDocs.Redaction .NET – последняя стабильная версия.
- GroupDocs.Search .NET – работает в паре с Redaction для индексации.
Требования к настройке среды
- IDE: Visual Studio 2019 или новее.
- Framework: .NET Core 3.1, .NET 5 или .NET 6.
- Совместимость ОС: Windows, Linux, macOS.
Требования к знаниям
Базовые навыки C# и общее понимание концепций фасетного поиска будут полезны, но пошаговое руководство подходит и для новичков.
Настройка GroupDocs.Redaction для .NET
Информация об установке
Вы можете добавить пакет GroupDocs.Redaction любым из следующих способов:
.NET CLI
dotnet add package GroupDocs.Redaction
Package Manager Console
Install-Package GroupDocs.Redaction
NuGet Package Manager UI
- Найдите “GroupDocs.Redaction” и установите последнюю версию.
Шаги получения лицензии
Чтобы разблокировать все функции, начните с бесплатной пробной версии или получите постоянную лицензию:
- Перейдите на GroupDocs Purchase, чтобы изучить варианты лицензирования.
- Следуйте инструкциям на экране, чтобы получить файл пробной или приобретённой лицензии.
Базовая инициализация и настройка
После установки пакета инициализируйте Redactor в вашем приложении:
using GroupDocs.Redaction;
RedactorSettings settings = new RedactorSettings();
// Load a document for redaction using the Redactor class.
Как создать поисковый индекс groupdocs
Ниже мы разбиваем реализацию на две части: Простой фасетный поиск и Сложный запрос. Каждая часть показывает, как создать поисковый индекс groupdocs, добавить документы и выполнить запросы.
Функция 1: Простой фасетный поиск
Обзор
Фасетный поиск позволяет пользователям сузить результаты, выбирая несколько критериев. В этом разделе демонстрируется простой подход с использованием GroupDocs.Search.
Шаг 1: Определите папки индекса и документов
Настройте пути к папкам, где будет храниться индекс, и где находятся исходные документы.
string indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY\\";
Шаг 2: Создайте индекс
Инициализируйте поисковый индекс в указанной папке.
Index index = new Index(indexFolder);
Шаг 3: Добавьте документы в индекс
Загрузите документы, чтобы они стали доступными для поиска.
index.Add(documentsFolder);
Шаг 4: Выполните поиск текстового запроса
Выполните базовый текстовый запрос по полю content.
string query1 = "content: Pellentesque";
SearchResult result1 = index.Search(query1);
Шаг 5: Выполните поиск объектного запроса
Используйте объектно‑ориентированные запросы для более тонкого контроля.
SearchQuery wordQuery = SearchQuery.CreateWordQuery("Pellentesque");
SearchQuery fieldQuery = SearchQuery.CreateFieldQuery(CommonFieldNames.Content, wordQuery);
SearchResult result2 = index.Search(fieldQuery);
Функция 2: Сложный запрос
Обзор
Когда необходимо комбинировать несколько фильтров — например, шаблоны имён файлов и совпадения фраз — можно построить сложный запрос с помощью логических операторов.
Шаг 1: Определите папки индекса и документов
Повторно используйте ту же структуру папок для более продвинутого сценария.
string indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/ComplexQuery";
Шаг 2: Создайте индекс и добавьте документы
(См. шаги 2‑3 из простого примера; они остаются теми же.)
Шаг 3: Выполните поиск текстового запроса
Запустите составной текстовый запрос, комбинирующий критерии имени файла и содержимого.
string query1 = "(filename: (lorem AND ipsum)) OR (content: (\"lectus eu aliquam\" OR \"dignissim turpis\"))";
SearchResult result1 = index.Search(query1);
Шаг 4: Постройте и выполните объектные запросы
Программно реализуйте ту же логику.
// Building components of the complex query.
SearchQuery word6Query = SearchQuery.CreateWordQuery("lorem");
SearchQuery word7Query ontext="ipsum";
SearchQuery andQuery = SearchQuery.CreateAndQuery(word6Query, word7Query);
Продолжайте комбинировать фразы, диапазоны и логические операторы, чтобы соответствовать точным бизнес‑правилам.
Практические применения
- Платформы электронной коммерции – Фильтрация товаров по категории, цене и рейтингу.
- Системы управления документами – Поиск контрактов по автору, дате или уровню конфиденциальности.
- Контент‑порталы – Позволяют читателям уточнять результаты по тегам, темам и датам публикаций.
Соображения по производительности
- Обновление индекса: Регулярно переиндексируйте новые или изменённые файлы, чтобы поиск оставался быстрым.
- Управление памятью: Освобождайте объекты
Index, когда они больше не нужны, особенно при работе с большими наборами данных. - Асинхронная индексация: Используйте
Task.Runили фоновые сервисы, чтобы избежать зависаний UI во время тяжёлой индексации.
Распространённые проблемы и решения
| Проблема | Решение |
|---|---|
| Индекс не найден | Проверьте путь indexFolder и убедитесь, что у папки есть права на запись. |
| Нет результатов | Убедитесь, что поля, по которым вы делаете запрос (например, Content, Filename), проиндексированы. |
| Ошибки нехватки памяти | Обрабатывайте документы пакетами и рассмотрите возможность увеличения размера кучи .NET GC. |
Часто задаваемые вопросы
В: Что такое фасетный поиск?
О: Фасетный поиск позволяет пользователям уточнять результаты, используя несколько независимых фильтров, таких как категория, дата или автор.
В: Как работать с большими наборами данных в GroupDocs.Search?
О: Используйте инкрементальную индексацию, пакетную обработку и асинхронные операции, чтобы снизить потребление памяти и повысить производительность.
В: Можно ли интегрировать функции GroupDocs в существующие .NET‑приложения?
О: Да, библиотеки разработаны для бесшовной интеграции с любым .NET‑проектом.
В: Какие распространённые проблемы с фасетным поиском?
О: Сложный синтаксис запросов и обеспечение индексации всех необходимых полей — типичные сложности; их можно смягчить тщательным тестированием и поддержкой индекса.
В: Как получить временную лицензию для GroupDocs?
О: Перейдите на GroupDocs Licensing Page, чтобы запросить пробную лицензию, открывающую полный функционал во время оценки.
Ресурсы
- Документация: GroupDocs Redaction Documentation
- Справочник API: GroupDocs API Reference
Last Updated: 2026-04-02
Tested With: GroupDocs.Redaction 23.12 for .NET, GroupDocs.Search 23.12 for .NET
Author: GroupDocs