Arama sonuçlarını etkin bir şekilde yönetmek ve bunları kolayca tanımlanabilir hale getirmek, sağlam belge arama uygulamaları geliştirmenin kritik bir yönüdür. C# kullanarak arama sonuçlarını vurgulama ile arama sonuçlarındaki ilgili bilgileri görsel olarak ayırt ederek kullanıcı deneyimini geliştirebilirsiniz. Bu kılavuz, C# kullanarak arama sonuçlarını vurgulama sürecini adım adım anlatacak ve eşleşen terimlere görsel göstergelerin nasıl uygulanacağını göstererek kullanıcıların ihtiyaç duydukları bilgileri hızlı ve etkili bir şekilde bulmasını kolaylaştıracaktır.
C# kullanarak Arama Sonuçlarını Vurgulama Adımları
- Arama sonuçlarının vurgulanmasını sağlamak için GroupDocs.Search for .NET kitaplığını entegre ederek geliştirme ortamınızı kurun
- Belgelerin nasıl indeksleneceğini yapılandırmak için bir IndexSettings nesnesi örneği oluşturun
- Çıkarılan metni verimli bir şekilde depolamak için TextStorageSettings’i Compression.High olarak ayarlayın
- Bir dizin oluşturmak için Index sınıfını kullanın. Dizin klasörüne giden yolu ve IndexSettings nesnesini oluşturucuya geçirin
- Belirtilen klasörden dizine belge eklemek için Index.Add yöntemini kullanın
- Evren’ gibi belirli bir anahtar kelime veya ifadeyi aramak için Index.Search yöntemini kullanın. Bu, arama sorgusuyla eşleşen tüm belgeleri içeren bir SearchResult nesnesi döndürür
İşlem, belgelerden çıkarılan metni depolayan bir dizin oluşturarak başlar. Bu dizin, hızlı ve doğru arama için olmazsa olmazdır. IndexSettings’i kullanarak, verimliliği korumak için yüksek sıkıştırmayla metin depolamayı etkinleştiririz. Index nesnesi, belirtilen bir klasördeki belgelerle oluşturulur ve doldurulur. Belgeler dizine eklendikten sonra, belirli anahtar sözcükler için bir arama işlemi gerçekleştirebilirsiniz. Örneğin, bir belgede Universe sözcüğünün geçtiği yerleri vurgulamak için, önce dizinde ararız. SearchResult nesnesi, anahtar sözcüğü içeren tüm belgeleri tutar. Herhangi bir eşleşme varsa, FoundDocument elde edilir ve vurgulama uygulamak için bir vurgulayıcı kullanılır. TermHighlightStartTag ve TermHighlightEndTag’i eşleşen terimleri metinde açıkça görüntüleyecek şekilde ayarlayarak vurgulama biçimini özelleştirebilirsiniz. Bu yaklaşım, yalnızca C# belge araması ve vurgulama yapmanıza olanak sağlamakla kalmaz, aynı zamanda ilgili metin eşleşmelerini açıkça işaretleyerek kullanıcı deneyimini de geliştirir.
C# kullanarak arama sonuçlarını vurgulayan kod
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# dilinde arama eşleşmelerini vurgulamak, kullanıcıların ilgili bilgileri hızlı bir şekilde bulmasını kolaylaştırarak belge arama uygulamaları için olmazsa olmaz bir özelliktir. GroupDocs.Search gibi kütüphaneleri kullanarak, C# dilinde arama eşleşmelerini vurgulamayı destekleyen güçlü ve etkili bir sistem uygulayabilirsiniz. Bu yaklaşım yalnızca arama işlevselliğini geliştirmekle kalmaz, aynı zamanda sonuçları görsel olarak da ayırt edici hale getirerek kullanıcı etkileşimini iyileştirir. C# ile arama ve vurgulamayı uygulamak basittir ve ister bir belge yönetim sistemi ister gerçek zamanlı bir arama aracı geliştiriyor olun, belirli uygulama ihtiyaçlarını karşılamak üzere uyarlanabilir.
Daha önce, C# kullanarak dizinlenmiş belgeler elde etme konusunda derinlemesine bir kılavuz yayınladık. Tam, adım adım bir eğitim için C# kullanarak dizinlenmiş belgeleri alın nasıl yapılır hakkındaki ayrıntılı makalemize göz atmayı unutmayın.