Создание поискового индекса 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” и установите последнюю версию.

Шаги получения лицензии

Чтобы разблокировать все функции, начните с бесплатной пробной версии или получите постоянную лицензию:

  1. Перейдите на GroupDocs Purchase, чтобы изучить варианты лицензирования.
  2. Следуйте инструкциям на экране, чтобы получить файл пробной или приобретённой лицензии.

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

После установки пакета инициализируйте 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);

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

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

  1. Платформы электронной коммерции – Фильтрация товаров по категории, цене и рейтингу.
  2. Системы управления документами – Поиск контрактов по автору, дате или уровню конфиденциальности.
  3. Контент‑порталы – Позволяют читателям уточнять результаты по тегам, темам и датам публикаций.

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

  • Обновление индекса: Регулярно переиндексируйте новые или изменённые файлы, чтобы поиск оставался быстрым.
  • Управление памятью: Освобождайте объекты Index, когда они больше не нужны, особенно при работе с большими наборами данных.
  • Асинхронная индексация: Используйте Task.Run или фоновые сервисы, чтобы избежать зависаний UI во время тяжёлой индексации.

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

ПроблемаРешение
Индекс не найденПроверьте путь indexFolder и убедитесь, что у папки есть права на запись.
Нет результатовУбедитесь, что поля, по которым вы делаете запрос (например, Content, Filename), проиндексированы.
Ошибки нехватки памятиОбрабатывайте документы пакетами и рассмотрите возможность увеличения размера кучи .NET GC.

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

В: Что такое фасетный поиск?
О: Фасетный поиск позволяет пользователям уточнять результаты, используя несколько независимых фильтров, таких как категория, дата или автор.

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

В: Можно ли интегрировать функции GroupDocs в существующие .NET‑приложения?
О: Да, библиотеки разработаны для бесшовной интеграции с любым .NET‑проектом.

В: Какие распространённые проблемы с фасетным поиском?
О: Сложный синтаксис запросов и обеспечение индексации всех необходимых полей — типичные сложности; их можно смягчить тщательным тестированием и поддержкой индекса.

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

Ресурсы


Last Updated: 2026-04-02
Tested With: GroupDocs.Redaction 23.12 for .NET, GroupDocs.Search 23.12 for .NET
Author: GroupDocs