Эффективное управление результатами поиска и обеспечение их легкой идентификации является критически важным аспектом разработки надежных приложений поиска документов. С выделением результатов поиска с помощью C# вы можете улучшить пользовательский опыт, визуально выделяя релевантную информацию в результатах поиска. Это руководство проведет вас через процесс выделения результатов поиска в C#, показывая, как применять визуальные индикаторы к соответствующим терминам, облегчая пользователям быстрый и эффективный поиск нужной им информации.
Шаги по выделению результатов поиска с помощью C#
- Настройте среду разработки, интегрировав библиотеку GroupDocs.Search for .NET, чтобы включить подсветку результатов поиска.
- Создайте объект IndexSettings для настройки способа индексации документов.
- Установите TextStorageSettings на Compression.High для эффективного хранения извлеченного текста.
- Используйте класс Index для создания индекса. Передайте путь к папке индекса и объект IndexSettings в конструктор
- Используйте метод Index.Add для добавления документов из указанной папки в индекс.
- Используйте метод Index.Search для поиска определенного ключевого слова или фразы, например, «Вселенная». Это возвращает объект SearchResult, содержащий все документы, которые соответствуют поисковому запросу
Процесс начинается с настройки индекса, в котором хранится извлеченный текст из документов. Этот индекс необходим для быстрого и точного поиска. Используя IndexSettings, мы включаем хранение текста с высокой степенью сжатия для поддержания эффективности. Объект Index создается и заполняется документами из указанной папки. После индексации документов вы можете выполнить операцию поиска по определенным ключевым словам. Например, чтобы выделить вхождения слова «Universe» в документе, мы сначала ищем его в индексе. Объект SearchResult содержит все документы, содержащие ключевое слово. Если есть какие-либо совпадения, получается FoundDocument, и для применения выделения используется маркер. Вы можете настроить формат выделения, установив TermHighlightStartTag и TermHighlightEndTag для четкого отображения сопоставленных терминов в тексте. Такой подход не только позволяет выполнять поиск и выделение документов C#, но и улучшает пользовательский интерфейс, четко отмечая соответствующие текстовые совпадения.
Код для выделения результатов поиска с использованием C#
using GroupDocs.Search; | |
using GroupDocs.Search.Common; | |
using GroupDocs.Search.Highlighters; | |
using GroupDocs.Search.Options; | |
using GroupDocs.Search.Results; | |
using System; | |
namespace HighlightSearchResultsUsingCSharp | |
{ | |
internal class Program | |
{ | |
static void Main(string[] args) | |
{ | |
// Apply the license to remove the restrictions | |
// imposed by the Search library | |
License lic = new License(); | |
lic.SetLicense(@"GroupDocs.Search.lic"); | |
string indexFolder = @"d:\MyIndex\"; | |
string documentsFolder = @"d:\MyDocuments\"; | |
// Creating an index settings instance | |
IndexSettings settings = new IndexSettings(); | |
// Enabling storage of extracted text in the index | |
settings.TextStorageSettings = new TextStorageSettings(Compression.High); | |
// Creating an index in the specified folder | |
Index index = new Index(indexFolder, settings); | |
// Indexing documents from the specified folder | |
index.Add(documentsFolder); | |
// Search for the word 'Universe' | |
SearchResult result = index.Search("Universe"); | |
// Highlighting occurrences in the text | |
if (result.DocumentCount > 0) | |
{ | |
// Getting the first found document | |
FoundDocument document = result.GetFoundDocument(0); | |
// Creating the output adapter | |
StructureOutputAdapter outputAdapter = new StructureOutputAdapter( | |
OutputFormat.PlainText); | |
// Creating the highlighter instance | |
Highlighter highlighter = new DocumentHighlighter(outputAdapter); | |
// Creating the highlight options | |
HighlightOptions options = new HighlightOptions(); | |
// Setting the start tag for the found word | |
options.TermHighlightStartTag = "<Term>"; | |
// Setting the end tag for the found word | |
options.TermHighlightEndTag = "</Term>"; | |
// Generating plain text with highlighted occurrences | |
index.Highlight(document, highlighter, options); | |
DocumentField[] fields = outputAdapter.GetResult(); | |
Console.WriteLine(document.ToString()); | |
for (int i = 0; i < fields.Length; i++) | |
{ | |
// Printing field names of the found document | |
DocumentField field = fields[i]; | |
Console.WriteLine("\t" + field.Name); | |
} | |
} | |
} | |
} | |
} |
Выделение совпадений поиска в C# является важной функцией для приложений поиска документов, облегчая пользователям быстрый поиск релевантной информации. Используя библиотеки, такие как GroupDocs.Search, вы можете реализовать мощную и эффективную систему, которая поддерживает выделение совпадений поиска в C#. Такой подход не только расширяет функциональность поиска, но и делает результаты визуально различимыми, улучшая взаимодействие с пользователем. Реализация поиска и выделения с помощью C# проста и может быть адаптирована для удовлетворения конкретных потребностей приложения, независимо от того, разрабатываете ли вы систему управления документами или инструмент поиска в реальном времени.
Ранее мы выпустили подробное руководство по получению индексированных документов с помощью C#. Для полного пошагового руководства обязательно ознакомьтесь с нашей подробной статьей о том, как получить индексированные документы с помощью C#.