Berita buruk:tidak mungkin. Kabar baik:Anda tidak membutuhkannya (karena itu tidak akan membantu).
Saya telah menghadapi masalah serupa di salah satu proyek saya. Pemahaman saya adalah bahwa saat membangun indeks teks lengkap, SQL Server memperlakukan semua karakter khusus sebagai pembatas kata dan karenanya:
- Kata Anda dengan karakter seperti itu direpresentasikan sebagai dua (atau lebih) kata dalam indeks teks lengkap.
- Karakter ini dihilangkan dan tidak muncul dalam indeks.
Pertimbangkan kita memiliki tabel berikut dengan indeks teks lengkap yang sesuai untuknya (yang dilewati):
CREATE TABLE [dbo].[ActicleTable]
(
[Id] int identity(1,1) not null primary key,
[ActicleBody] varchar(max) not null
);
Pertimbangkan nanti kita menambahkan baris ke tabel:
INSERT INTO [ActicleTable] values ('digitally improvements folders')
INSERT INTO [ActicleTable] values ('digital"ly improve{ments} fold(ers)')
Coba telusuri:
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digitally')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improvements')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'folders')
dan
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digital')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improve')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'fold')
Kondisi grup pertama akan cocok dengan baris pertama (dan bukan yang kedua) sedangkan grup kedua hanya akan cocok dengan baris kedua.
Sayangnya saya tidak dapat menemukan tautan ke MSDN (atau sesuatu) di mana perilaku seperti itu dinyatakan dengan jelas. Namun saya telah menemukan artikel resmi yang menjelaskan cara mengonversi tanda kutip untuk kueri penelusuran teks lengkap, yang [secara implisit] selaras dengan algoritme yang dijelaskan di atas.