ilkvahiy.net   ilkvahiy.net'i Tavsiye Edin ilkvahiy.net Türkçe ilkvahiy.net in English

Geri git   ilkvahiy.net > Bloglar > admin
Şifremi Unuttum Kayıt Ol

Ücretsiz Kayıt Ol
İslami Sorular ve Cevapları | Namaz | Kurban | Evlilik | İlahiler | Üniversitelerimiz | Protestolarımız
Filistin Hakkında | İllerimizin Neleri Meşhur ?
Sitemiz Hakkında Sıkça Sorulan Sorular ve Cevapları

Filistine Dua Zincirine Katıl...
Filistin'e Destek Facebook Grubu

Haydi Sen de Ücretsiz Blogunu Oluşturmaya Başla. Nette Senin de Yerin Bulunsun !
ilkvahiy.net 7 GB Ücretsiz E-Posta Alanı Veriyor. Sen de İstemez misin ?

ilkvahiy.net'e Neden Kayıt Olmalıyım ? - ilkvahiy.net Radyo - Bayan Bölümüne Giriş - Erkek Bölümüne Giriş - Namaz Vakitleri - Dost TV
Bu Kaydı Derecelendir

MySQL Full-text Arama

Gönderildi: admin tarafından 31-07-2008 Saat 03:51
Updated 31-07-2008 at 03:54 by admin
PHP-MySQL kullanarak arama modülü yazılırken kullanılabilecek ve yararlı bir özellik



MySQL de arama sorguları yazarken genel olarak LIKE komutunu kullanırız. LIKE tan farklı olarak full-textindekslerini de kullanabilriz. MySQL full-text indeksleri arama sorguları için LIKE fonksiyonundan daha etkili ve kullanışlıdır. Ayrıca sonuçları rahatça sıraya koymamızı sağlaması da önemli bir artıdır. full-text arama tablolardaki VAR,TEXT ve VARCHAR alanlarını full-text indeks olarak atayıp MATCH fonksiyonunu kullanarak bunlarda arama yapmak olarak özetlenebilir. Alanları full-text şöyle yapabiliriz.

CREATE TABLE kitaplar (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,isim VARCHAR(255),icerik TEXT, FULLTEXT (isim,icerik));

Burada kitaplar adında bir tablo oluşturuyoruz ve bu tablonun isim ve icerik alanlarını full-text olarak atıyoruz. full-text indeksleri daha sonra ALTER ile de ekleyebiliriz.

Tablonun içeriğinin söyle olduğunu düşünelim.

idisimiçerik
1MySQLMySQL çok güzel müthis harika cok guzel
2Postgresql iyi sağlam falan filan....
3Mssqleh idare eder ...

SELECT * FROM articles WHERE MATCH (isim,icerik) AGAINST ('veri');

Sorgusu veri geçen icerik yada isim alanlarına sahip satırları çekecektir. MATCH fonksiyonu her satıra bir arama değeri verir. Yani aranan kelimenin geçiş sayısına göre her satıra bir değer verir ve bu değere göre en değerli satırı (yani kelimeyi ençok içeren) en üste gelecek şekilde sıralar. MATCH fonksiyonu AGAINST ten sonra verilen kelimeyi kendinden sonraki full-text indekslerde arar. Arama küçük/büyük harfe bakmaksızın arar. Yani falan ile FaLAn aynı kelimedir.

SELECT id,isim,MATCH (isim,icerik) AGAINST ('veri') AS arama_deger FROM articles WHERE MATCH (isim,icerik) AGAINST ('veri');

Sorgusu içinde veri geçen satırların id ve isim alanlarını ve arama değerlerini döner.

full-text arama bazı operatörlere sahiptir. Bu operatörler aranan kelimenin nasıl aranacağını belirtmenizi sağlar.


+ kelimenin mutlaka bulunması gerektiğini belirtir
  • - kelimenin aramada bulunmamasi yani harici tutulmasi gerektiğini belirtir
  • < > operatörleri kelimenin arama değerine olan etkisini belirlemenizi sağlar
  • ( ) kelimeleri gruplamanızı sağlar
  • ~ kelimenin aramada bulunması arama değerini ters yönde etkiler. Yani - operatörü gibi ama arama sonuçları gösterilir.
  • * sonuna geldiği kelimenin ekli bir şekilde bulunabileceğini belirtir
  • '' '' kelime grubunu arar
Bu operatörleri örneklendirelim.
  • AGAINST('ali veli') ali yada veli den herhangi birinin bulunduğu satırları arar
  • AGAINST('+ali +veli') her ikisinin bulunduğu
  • AGAINST('+ali veli') ali bulunduğu satırları arar. velinin; bulunduğu satırlar arama değerine artı etkide bulunur
  • AGAINST('+ali -veli') ali nin bulunduğu ama veli nin bulunmadığı satırları döner
  • AGAINST('ali*') ali , alice , alinin ,alicik ... lerin bulunduğu satırları arar
  • AGAINST(''ali veli'') ali veli nin geçtiği satırları arar
  • AGAINST('>ali <veli') ali yada veli nin geçtiği satırları arar. Ama ali yeralması arma değerine daha çok etkiler.
  • AGAINST('+ali +(veli deli)') ali nin bulunduğu ve veli veya deli kelmelerinden de birini mutlaka bulunduğu satırları arar.
  • AGAINST('+ali +(>veli <deli)') ali nin bulunduğu ve veli veya deli kelmelerinden de birini mutlaka bulunduğu satırları arar. veli nin bulunduğu satırlar arama sonucuna deli nin bulunduğu satırlardan daha çok etki yapar.

full-text aramanın her satır için bir aram değeri döndüğünü ve sonuçları bu değerlere göre sıraladığını söylemiştik. IN BOOLEAN MODE özelliğini kullanarak değer dönme işini kapatabiliriz.

SELECT * FROM kitaplar WHERE MATCH (isim,icerik) AGAINST ('+ali -veli' IN BOOLEAN MODE);

Sorgusu içinde ali geçen ama veli geçmeyen satırları getirir. Ama sıralamayı arama değerlerine göre değilde tablodaki sıralarına göre getirir.

full-text aramanın özelliklerini anlatmaya çalıştım. Arama işlemlerinde kolaylık sağladığı kolayca görülmektedir ( :-) ).

MySQL in resmi sayfasında büyük verilerin girişinde full-text indekslerinin veri girişini yavaşlattığı söyleniyor. full-text indekslerin veri girişi tamamlandıktan sonra eklenmesi tavsiye ediliyor.
Submit "MySQL Full-text Arama" to Facebook Submit "MySQL Full-text Arama" to Digg Submit "MySQL Full-text Arama" to Google Submit "MySQL Full-text Arama" to StumbleUpon Submit "MySQL Full-text Arama" to del.icio.us Submit "MySQL Full-text Arama" to Magnolia Submit "MySQL Full-text Arama" to Reddit Submit "MySQL Full-text Arama" to Furl
Etiketler: mysql
Gönderildi Web Tasarım , Mysql
Görüntüleme 31 Yorumlar 0 Blog Kaydını E-Posta ile Gönder
« Önceki     Ana     Sonraki »
Toplam Yorum 0

Yorumlar

 
Toplam Trackback 0

Trackbacks


Site Saati (GMT +2): 15:13


Sitemiz vBulletin Version 3.8.0 Release Candidate 2 Kullanmaktadır.
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright © 2007 - 2009 ilkvahiy.net

Sitemizde Yazılan Yazılardan ilkvahiy.net Ekibi Sorumlu Değildir. Herkes Kendi Yazdıklarından Sorumludur.
Bu Site Bir Flört Sitesi Değildir !!! Erkek-Bayan İlişkilerinde Hududu Aşanlar Direk Olarak Siteden Atılır.
Sitemizde Crack,Warez,Serial,Keygen vs. gibi tüm yasadışı içerikleri paylaşmak yasaktır.
Reklam, Flood, Spam, Argo, Küfür Siteden Atılma Sebepleridir.

Gizlilik ve Güvenlik | Hakkımızda | Logolarımız | Bizimle Çalışmak İster misiniz ? | Link Değişim
ilkvahiy.net'e Reklam Ver | Şikayetlerinizi Bildirin | Sitemizden Atılma Sebepleri

Erkek Bölümüne Giriş Hakkında Bilgi | Bayan Bölümüne Giriş Hakkında Bilgi