2 Temmuz 2010 Cuma

Sql " FREETEXTTABLE " ile full text search arama yapmak


Fulltext search kullanarak Sql de karakter bazlı arama yapmak ve aradığınız kelime ile eşleşen kayıtları ve eşleşme oranlarını almak için bu arama yöntemi kullanılabilir.

Bu makalemizde 'Northwind' databese indeki 'Product' tablosundaki istediğimiz bir markadaki ürün için açıklama satırlarında arama yapıcaz.

Sorgumuz şöyle olucak :

USE Northwind;

--Arama yapıcağımız değişkeni tanımlanıyoruz
declare @Description nvarchar(200)
declare @Manufacture nvarchar(100)

--Bu kısımda arama yapıcağımız değişkenimize değer atıyoruz
set @Description = 'ipod'
set @Manufacture

SELECT p.ProductName
,p.Description
,FREETXT_TBL.RANK AS Eslesme_Orani
FROM dbo.Product AS p
INNER JOIN FREETEXTTABLE(dbo.Product, Description,
@Description) AS KEY_TBL
ON p.ID = FREETXT_TBL.[KEY]
WHERE p.Manufacture = @Manufacture order by FREETXT_TBL.rank desc

GO
sorgumuz çalıştırıldığında; Ürün adı açıklaması ve eşleşme oranı bilgileri listelenicek.
FREETEXTTABLE 'ın formatına göz atıcak olursak:

FREETEXTTABLE(Tablo_Adı, Aramayapılıcak_Alan,
Aramak_yapılıcak_text) şeklindedir.
ürün tablosu ile de bağlantı kurup marka filtrelemesi yapılıyor.

Umarım faydalı olmuştur arkadaşlar.
Not : Sqlde fulltext search yapabilmek için fulltext katalog tanımlamak ve fulltext için index oluşturmak gerekmektedir.
Kaynak :http://msdn.microsoft.com/en-us/library/ms177652.aspx
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.