01 Temmuz 2012, 15:18 | #1 | |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Mysql Fulltext Arama Sorgusu Arama sorgularında genellikle like komutu kullanılır. Bunun nedeni like ın ( Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. den daha esnek bir yapıda olmasıdır. Mysql içinde arama yapılırken genelde tercih edilen yöntem içeriğin içindeki kelimelerin veya harf dizilimlerinin içinde arana kelimenin veya harf dizisinin geçmesidir . Yani mevcut içerikteki herhangi bir kelimede, aradığımız kelime başata,ortada veya sonda var ise o içeriği doğru içerik olarak alırız. Temel olarak arama sorgusunun mantığı budur. Bir örnek verecek olursak. PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
şeklinde olur. % işaretleri joker karakterlerdir. Aradığımız kelime veritabanındaki metnin içindeki bir kelimienin herhengi bir yerinde (başında, sonunda, ortasında) mevcut ise o satır seçilecektir. Basit bir arama scriptini yazmada like işimiz igörebilir, fakat biz daha fazlasını istiyorsak fulltext indexleri imdadımıza koşacaktır. LIKE tan farklı olarak fulltext indekslerini de kullanabiliriz. MySQL fulltext indeksleri arama sorguları için LIKE fonksiyonundan daha fonksiyoneldir.Diğer bir artısı da arama sonuçlarını önem sırasına göre dizmesidir. fulltext arama tablolardaki VAR,TEXT ve VARCHAR alanlarını fulltext indeks olarak atayıp MATCH fonksiyonunu kullanarak bunlarda arama yapmak olarak özetlenebilir. Fulltext içeriğe sahip alanları bulunan bir tabloyu şöyle yaratabiliriz. PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
Böylece konu adında bir tablo oluşturmuş olduk ve bu tablonun baslik ve icerik alanlarını fulltext olarak atıyoruz. Arama yapılacak alanları tablo oluşturulduktan sonrada fulltext index olarak da belirleyebiliriz. Bunuda şöyle yapabiliriz. PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
İçeriklerimizi fulltext yaptıktan sonra tablomuzun şekline şöyle bir bakalım. +----id-------+-----baslik----+-----icerik-----+ 1 Mysql Fulltext arama PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
sorgusu "arama" geçen icerik yada baslik alanlarına sahip satırları elde etmemizi sağlayacaktır . MATCH fonksiyonu her satıra bir puan verir. Yani aranan kelimenin içeriklerde geçme sayısına göre her satıra bir puan verir ve puanı en yüksek satırı (yani kelimenin en çok geçtiği) en üste gelecek şekilde sıralar. MATCH fonksiyonu AGAINST ten sonra verilen kelimeyi kendinden sonraki fulltext indekslerde arar. Fulltext indexlerde MATCH ile arama yapılırken küçük büyük harfin önemi yoktur. Yani kelime ile KELime aynı kelimedir. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
Sorgusu içinde "arama" geçen satırların id ve baslik alanlarını ve puanları döner. fulltext aramanın fonksiyonelliği sadece bunlarla bitmiyor. Fulltext arama bazı operatörleri kullanmamıza olanak sağlar. Bu operatörler aranan kelimenin nasıl aranması gerektiği hakkında mysqle bilgi sağlar. ("+") kelimenin mutlaka bulunması gerektiğini belirtir Örnek: +php ("-") kelimenin aramada bulunmamasi yani harici tutulmasi gerektiğini belirtir Örnek: +php "mysql php geçen mysql geçmeyen satırlar çekilir ("< >") operatörleri kelimenin puana olan etkisini belirlemenizi sağlar. ( ) kelimeleri gruplamanızı sağlar. ("~") kelimenin aramada bulunması puanı ters yönde etkiler. Yani ("-") operatörü gibi ama arama sonuçları gösterilir. ("*") sonuna geldiği kelimenin ekli bir şekilde bulunabileceğini belirtir ''çift tırnak'' kelime grubunu arar Örnek: "ışın kılıcı" fulltext aramada her satır için bir puan döndüğün ve sonuçları bu puana göre sıraladığını söylemiştik. IN BOOLEAN MODE özelliğini kullanarak puana göre sıralama işlemini kapatabiliriz. PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
Sorgusu içinde mysql geçen ama php geçmeyen satırları getirir. Ama sıralamayı puan göre değil de tablodaki sıralarına göre getirir. İyi çalışmalar. [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] | |
|
Etiketler |
arama, fulltext, mysql, sorgusu |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
İnfaz Yönetmeliği'nde değişiklik: 'Çıplak arama' yerine 'detaylı arama' | CyBeR | Güncel ve Son Dakika Haberler | 1 | 12 Kasım 2021 14:02 |
mysql de türkçe kayıtlı alanlarda arama yapmak | hAte | MySQL | 0 | 09 Ekim 2014 04:27 |
MySQL Nedir ve MySQL C++ Builder Bağlantısı Nasıl Yapılır | Swat | MySQL | 0 | 01 Temmuz 2014 12:59 |
tuning-primer.sh mysql tuning scripti - mysql performans raporu | CeSaRCripS | MySQL | 0 | 16 Aralık 2012 15:11 |
Arama Motoruna Kayit Fiyatı,Arama Motorlarına Kayıt | PauL | Alternatif Arama Motorları | 0 | 25 Ekim 2011 14:58 |