Ефективне керування результатами пошуку та забезпечення їх легкої ідентифікації є важливим аспектом розробки надійних програм пошуку документів. Завдяки виділенню результатів пошуку за допомогою C# ви можете покращити взаємодію з користувачем, візуально виділяючи відповідну інформацію в результатах пошуку. Цей посібник проведе вас через процес виділення результатів пошуку в C#, показує вам, як застосовувати візуальні індикатори до відповідних термінів, полегшуючи користувачам швидкий і ефективний пошук потрібної інформації.
Кроки для виділення результатів пошуку за допомогою C#
- Налаштуйте своє середовище розробки, інтегрувавши бібліотеку GroupDocs.Search for .NET, щоб увімкнути виділення результатів пошуку
- Створіть екземпляр об’єкта IndexSettings, щоб налаштувати спосіб індексування документів
- Встановіть TextStorageSettings на Compression.High, щоб ефективно зберігати витягнутий текст
- Використовуйте клас Index для створення індексу. Передайте конструктору шлях до папки індексу та об’єкт IndexSettings
- Використовуйте метод Index.Add, щоб додати документи з указаної папки до індексу
- Використовуйте метод Index.Search для пошуку за певним ключовим словом або фразою, наприклад «Всесвіт». Це повертає об’єкт SearchResult, що містить усі документи, які відповідають пошуковому запиту
Процес починається з налаштування індексу, який зберігає витягнутий текст із документів. Цей індекс необхідний для швидкого та точного пошуку. Використовуючи IndexSettings, ми вмикаємо зберігання тексту з високим рівнем стиснення для підтримки ефективності. Об’єкт Index створюється та заповнюється документами з указаної папки. Після того, як документи проіндексовано, ви можете виконати операцію пошуку за певними ключовими словами. Наприклад, щоб виділити слово «Всесвіт» у документі, ми спочатку шукаємо його в індексі. Об’єкт 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#.