SQL Server veritabanında bir Ürünler tablosu var ve Tam Metin dizini kullanan eski saklı yordamları gidermek zorundayım. Buradaki amaçlarımız için, Ürünler tablosunun iki alan kimliği olan Anahtar Kelimeler olduğunu varsayalım. Ve Sözcükler alanı aşağıdaki doldurulur:SQL Sorun: CONTAINS() kullanma çalışmıyor, ancak LIKE iyi çalışıyor
ROLAND SA-300 Bu Roland SA-300 MINT durumda olduğunu!
SELECT * FROM Products WHERE CONTAINS(Keywords, ' SA-300 ') SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA-300') SELECT * FROM Products WHERE CONTAINS(Keywords, '"SA-300"') SELECT * FROM Products WHERE CONTAINS(Keywords, '"*SA-300*"')
: Aşağıdaki ifadelerden herhangi çalıştırdığınızda
SELECT * FROM Products WHERE Keywords LIKE '%SA-300%'
Ancak, sıfır sonuç almak: Aşağıdaki ifadeyi çalıştırdığınızda
, ben kayıt almak mümkün duyuyorum Ancak, CONTAINS() işlevinin çalıştığını biliyorum çünkü bunlardan herhangi birini çalıştırdığımda sonuç alırım:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' Roland ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"Roland"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*Roland*"')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
CONTAINS() işlevinin neden 'SA-300' terimi üzerinde çalışmadığını anlamanız gerek. Tam metin dizinlerine yeniyim, bu yüzden herhangi bir yardım takdir edilir.
Hiçbir ipucu yok, ancak endeksin güncel olduğunu kontrol ettiniz mi? – MichaelGG