Veysel Uğur KIZMAZ

Asp.Net Arama Sonuçlarında Kelime Vurgulama (Highlight Keyword) İşlemi

30.05.2013Okunma Sayısı: 5991Kategori: ASP.NET

Web sitelerinde arama yaptığınızda arama yapılan kelimelerin bulunma noktalarının arkaplanları farklı şekilde (sarı renkte ya da kalın fontta) görünmektedir. Örneğin yazilimdilleri.net sitemizde “sharepoint” kelimesini arayalım.

http://www.yazilimdilleri.net/Arama.aspx?yazilimsorgu=Sharepoint

Aradığımız kelimenin kalın fontta yazıldığını, diğer kelimelerin normal fontta kaldığını göreceksiniz. Benzer bir işlemi Asp.Net sayfalarımızda nasıl yapabiliriz, öğrenelim.

Yapacağımız işlem aslında metin içerisinde bir kelimeyi küçük ve büyük harf duyarsız (case insensitive) olarak değiştirme işlemidir. Yukarıdaki örneği ele alırsak “Sharepoint 2013 Makaleleri, Görsel Eğitimleri, İpuçları – Sharepoint ...” metni içerisinde “sharepoint” kelimesini bulup kalın fontta yazıyoruz (“<b>Sharepoint</b>”).

Bu işlemi bir önceki makalemde anlattığım C# ile Case Insensitive (küçük – büyük harf duyarsız) string değiştirme işlemi ile kolaylıkla gerçekleştirebiliriz.

private string Vurgula(string metin, string anahtarKelime)
{
    Regex rx = new Regex(anahtarKelime, RegexOptions.IgnoreCase);
    return rx.Replace(metin, "<b>$0</b>");
}

$0, değiştirilmesi istenen ifadeyi tanımlamaktadır. Örneğin aranan kelime “sharepoint” ve bulunan kelime “Sharepoint” ise form üzerinde “Sharepoint” kelimesinin değişmeden kalması gerekmektedir. $0, burada “Sharepoint” kelimesini ifade etmektedir.

Formumuza bir adet Label kontrolü ekleyelim (ID: lbSonuc) ve örnek uygulamamızı oluşturalım.

protected void Page_Load(object sender, EventArgs e)
{
    string metin = "Sharepoint 2013 Makaleleri, Görsel Eğitimleri, İpuçları – SharePoint ...";
    lbSonuc.Text = Vurgula(metin, "sharepoint");
}

private string Vurgula(string metin, string anahtarKelime)
{
    Regex rx = new Regex(anahtarKelime, RegexOptions.IgnoreCase);
    return rx.Replace(metin, "<b>$0</b>");
}

Projeyi çalıştırdığımızda metin içerisindeki “sharepoint” kelimelerinin küçük büyük harf fark etmeksizin kalın yazıldığını göreceksiniz.

 

Yepyeni makalelerde görüşmek dileğiyle :)

Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com