Web sayfamız sadece phpBB 3.0.x sürümlerine destek vermektedir. Konu açmadan, ileti yazmadan önce lütfen site kuralları sayfamıza göz atınız.

search_ignore_words.php dosyası ne işe yarar

Forum kuralları
Makale ve yazılardan sonra sadece makale hataları, güncellemeler ile ilgili iletiler yazabilirsiniz, lütfen makale konusuyla ilgili soru sormayınız yardım istemeyiniz.

İsteyen herkes makale ekleyebilir, eklenen makaleler yetkili tarafından incelenip onaylanırsa yayına alınacaktır. Eklediğiniz makalelerde telif haklarına uymak zorunludur.

Sitedeki tüm yazı ve makaleler Creative Commons Attribution-NonCommercial-NoDerivs 2.5 lisansı ile korunmaktadır. Alıntı şartları sayfasını mutlaka okuyunuz.

search_ignore_words.php dosyası ne işe yarar

İleti ALEXIS 19 Oca 2007 00:44

search_ignore_words.php dosyası ne işe yarar

Türkçe kelimeleri içeren search_ignore_words.php dil dosyası language/tr/ dizini içinde bulunur.


Nedir?

Arama fonksiyonu "search_ignore_words" dosyasından "stopwords" diye adlandırdığımız kelimeleri okumaktadır. Bu kelimeler, eğer aranırsa, aramanın başarılı olmamasına yol açar. Bu kelimeler sunucu yavaşlığına sebep olmasın diye pano genilinde sık kullanılabilecek kelimeleri ve "ama", "ancak", "daha" gibi bazı bağlaçları içerir.


phpBB3 Türkçe dil paketi "search_ignore_words" durumu

Bizler phpBB3 Türkçe dil paketi 'nı geliştirirken sadece dilimizde sık kullanılan bağlaç ve kelimeleri ekledik. Her mesaj panosunun kendine özgü çok kullanılan, aramalarda gereksiz olabilecek kelimeleri olabilir. (Örneğin phpBB Türkiye sitesinde aramalarda gereksiz olabilecek bazı kelimelerimiz; "phpbb", "php" gibi neredeyse tüm iletilerde olabilecek kelimelerdir.)


stopwords kelimelerini tespit etmek

Mesaj panonuzda sık kullanılan kelimeleri yazacağım SQL sorgusu ile tespit edebilir, içlerinden aramalarda gereksiz olduğunu düşündüklerinizi search_ignore_words.php dosyanıza ekleyebilirsiniz. Panodaki mesaj sayısı arttıkça bu kelimeler değişebilir. Belirli aralıklarla sorguyu gerçekleştirip sonuçları değerlendirebilirsiniz.

Sık kullanılan kelimeleri tespit etmek için kullanılabilecek SQL sorgusu:

Kod: Tümünü seç
SELECT ls.word_id, ls.word_text,
COUNT(wm.word_id) AS entries
FROM `phpbb_search_wordlist` AS ls
LEFT JOIN `phpbb_search_wordmatch` AS wm
ON ls.word_id=wm.word_id
GROUP BY wm.word_id
ORDER BY entries
DESC LIMIT 0,50;

LIMIT 0,50 yazan yerdeki "50" sayısını değiştirerek sonuçları azaltabilir veya çoğaltabiliriz.

Bu sorguyu çalıştırdığımızda 3 sütünlü bir tablo ile karşılaşağız. Liste yukarıdan aşağı doğru kullanım sıklığına göre sıralanır ve en üstteki kelime en sık kullanılan kelimedir.

ilk sütunde (word_id) kelimenin id numarası yer alır, işimize fazla yaramayacak bir bilgidir, çıkarmak için sorgunun ilk kısmındaki ls.word_id, kısmını silebilirsiniz.
ikinci sütunde (word_text) kelimemiz yazar.
üçüncü sütunde (entries) kelimenin kaç defa kullanıldığı, yani kullanım sıklığı yazar.


Sorgu sonucu çıkan kelimelerin search_ignore_words dosyasına eklenmesi

Sorgudan sonra tespit ettiğimiz kelimeleri search_ignore_words dosyasına yazabiliriz. Zaten dosya içerisinde dilimizde sık kullanılan bazı bağlaçlar varsayılan olarak yazılmıştır, onların yerleşim şeklini örnek alarak, kelimelerin bittiği yerden sonra kendi kelimelerini ekleyebilirsiniz.

Kelime ekleme şekli, kelimeyi tırnak içinde yazıp, sonrasına da virgül koymaktır. PHP olarak bir array dizisidir bu kelimeler.

Kod: Tümünü seç
'kelime',


Konu dışı bir hatırlatma

Ayrıca belirli periyotlar ile, yönetim panelinden aramaları onarmayı (search rebuilt), veritabanınızı optimize etmeyi unutmayın.

---------------------------------------------
Kopyalandı
Asıl adres: viewtopic.php?f=18&t=31



--------------------------------------------------------
Makale Hakkında

Yazar: Sevdin Filiz
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Geliştirme ve kod değişiklikleri


Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

cron