Full-Text Search Kullanımı | MsSql

Merhaba, karakter sayısı çok fazla olan bir alanı indeks yapmak uygun değil.
Ancak öyle bir alanda da arama yapma ihtiyacım vardı.
Araştırdığım yerlerde SQL Server’ın Full Text Search özelliğini kullanmayı tavsiye etmişler.
O özelliği aşağıdaki şekilde kullandım.
Önce veritabanında “Storage” altında, “Full Text Catalogs” öğesini sağ tıklayıp bir katalog oluşturdum.
Sonra da arama yapacağım tabloyu sağ tıklayıp “Full-Text index” > “Define Full-Text Index” seçeneğini seçip, adım adım ilerledim.

This image has an empty alt attribute; its file name is 2023-03-21_205502.jpg


İstediğim kolonu seçip dilini British-English olarak seçtim.
Diğer kısımlarda özel bir seçim yapmadım.
Tabloda bir alanda OEM listeleri aralarında virgül olacak şekilde ayrılmış durumdaydı.
Ben de onları şöyle sorguladım:

CREATE PROCEDURE [dbo].[PRC_GETIROEMMALZEME]
@StrOemList VARCHAR(MAX) -- '12319298 OR 123917291237 OR 128731723912 OR 1782937912739' seklinde bir string gonderdim….
AS
BEGIN
DECLARE @dinamikSql NVARCHAR(MAX) = ' SELECT *
FROM [VeritabaniAdim].[dbo].[TabloAdim] WITH (NOLOCK)
WHERE CONTAINS(OemMalzemeList, ''' + @StrOemList + ''')';
EXEC sp_executesql @dinamikSql;
END;

Selamlar

Leave a Reply

Your email address will not be published. Required fields are marked *