Pencarian teks-lengkap

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Pencarian teks lengkap di SQL Server dan Microsoft Azure SQL Database memungkinkan pengguna dan aplikasi menjalankan kueri teks lengkap terhadap data berbasis karakter dalam tabel SQL Server.

Tugas dasar

Topik ini memberikan gambaran umum Tentang Pencarian Teks Lengkap dan menjelaskan komponen dan arsitekturnya. Jika Anda lebih suka segera memulai, berikut adalah tugas dasarnya.

Catatan

Pencarian Teks Lengkap adalah komponen opsional dari Mesin Database SQL Server. Jika Anda tidak memilih Pencarian Teks Lengkap saat menginstal SQL Server, jalankan Penyetelan SQL Server lagi untuk menambahkannya.

Gambaran Umum

Indeks teks lengkap menyertakan satu atau beberapa kolom berbasis karakter dalam tabel. Kolom ini dapat memiliki salah satu jenis data berikut: char, varchar, nchar, nvarchar, text, ntext, image, xml, atau varbinary(max) dan FILESTREAM. Setiap indeks teks lengkap mengindeks satu atau beberapa kolom dari tabel, dan setiap kolom dapat menggunakan bahasa tertentu.

Kueri teks lengkap melakukan pencarian linguistik terhadap data teks dalam indeks teks lengkap dengan mengoperasikan kata dan frasa berdasarkan aturan bahasa tertentu seperti bahasa Inggris atau Jepang. Kueri teks lengkap dapat menyertakan kata dan frasa sederhana atau beberapa bentuk kata atau frasa. Kueri teks lengkap mengembalikan dokumen apa pun yang berisi setidaknya satu kecocokan (juga dikenal sebagai hit). Kecocokan terjadi ketika dokumen target berisi semua istilah yang ditentukan dalam kueri teks lengkap, dan memenuhi kondisi pencarian lainnya, seperti jarak antara istilah yang cocok.

Kueri Pencarian Teks Lengkap

Setelah kolom ditambahkan ke indeks teks lengkap, pengguna dan aplikasi dapat menjalankan kueri teks lengkap pada teks di kolom. Kueri ini dapat mencari salah satu hal berikut:

  • Satu atau beberapa kata atau frasa tertentu (istilah sederhana)

  • Kata atau frasa di mana kata dimulai dengan teks tertentu (istilah awalan)

  • Bentuk infleksi dari kata tertentu (istilah pembuatan)

  • Kata atau frasa yang dekat dengan kata atau frasa lain (istilah kedekatan)

  • Bentuk sinonim dari kata tertentu (tesaurus)

  • Kata atau frasa menggunakan nilai tertimbang (istilah tertimbang)

Kueri teks lengkap tidak peka huruf besar/kecil. Misalnya, mencari "Aluminium" atau "aluminium" mengembalikan hasil yang sama.

Kueri teks lengkap menggunakan sekumpulan kecil predikat Transact-SQL (CONTAINS dan FREETEXT) dan fungsi (CONTAINSTABLE dan FREETEXTTABLE). Namun, tujuan pencarian dari skenario bisnis tertentu memengaruhi struktur kueri teks lengkap. Contohnya:

  • pencarian e-bisnis untuk produk di situs web:

    SELECT product_id   
    FROM products   
    WHERE CONTAINS(product_description, '"Snap Happy 100EZ" OR FORMSOF(THESAURUS,"Snap Happy") OR "100EZ"')
    AND product_cost < 200 ;  
    
  • Pencarian skenario perekrutan untuk kandidat pekerjaan yang memiliki pengalaman bekerja dengan SQL Server:

    SELECT candidate_name,SSN   
    FROM candidates   
    WHERE CONTAINS(candidate_resume, '"SQL Server"') AND candidate_division = 'DBA';  
    

Untuk informasi selengkapnya, lihat Kueri dengan Pencarian Teks Lengkap.

Membandingkan kueri Pencarian Teks Lengkap dengan predikat LIKE

Berbeda dengan pencarian teks lengkap, predikat LIKE Transact-SQL hanya berfungsi pada pola karakter. Selain itu, Anda tidak dapat menggunakan predikat LIKE untuk mengkueri data biner yang diformat. Selain itu, kueri LIKE terhadap sejumlah besar data teks yang tidak terstruktur jauh lebih lambat daripada kueri teks lengkap yang setara terhadap data yang sama. Kueri LIKE terhadap jutaan baris data teks dapat memakan waktu beberapa menit untuk dikembalikan; sedangkan kueri teks lengkap hanya dapat memakan waktu beberapa detik atau kurang terhadap data yang sama, tergantung pada jumlah baris yang dikembalikan.

Arsitektur Pencarian Teks Lengkap

Arsitektur pencarian teks lengkap terdiri dari proses berikut:

  • Proses SQL Server (sqlservr.exe).

  • Proses host daemon filter (fdhost.exe).

    Untuk alasan keamanan, filter dimuat oleh proses terpisah yang disebut host daemon filter. Proses fdhost.exe dibuat oleh layanan peluncur FDHOST (MSSQLFDLauncher), dan berjalan di bawah kredensial keamanan akun layanan peluncur FDHOST. Oleh karena itu, layanan peluncur FDHOST harus berjalan agar pengindeksan teks lengkap dan kueri teks lengkap berfungsi. Untuk informasi tentang mengatur akun layanan untuk layanan ini, lihat Mengatur Akun Layanan untuk Peluncur Daemon Filter Teks Lengkap.

Kedua proses ini berisi komponen arsitektur pencarian teks lengkap. Komponen-komponen ini dan hubungannya dirangkum dalam ilustrasi berikut. Komponen dijelaskan setelah ilustrasi.

full-text search architecture

Proses SQL Server

Proses SQL Server menggunakan komponen berikut untuk pencarian teks lengkap:

  • Tabel pengguna. Tabel ini berisi data yang akan diindeks teks lengkap.

  • Pengumpul teks lengkap. Pengumpul teks lengkap berfungsi dengan utas perayapan teks lengkap. Ini bertanggung jawab untuk menjadwalkan dan mendorong populasi indeks teks lengkap, dan juga untuk memantau katalog teks lengkap.

  • File thesaurus. File-file ini berisi sinonim istilah pencarian. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola File Tesaurus untuk Pencarian Teks Lengkap.

  • Objek stoplist. Objek stoplist berisi daftar kata umum yang tidak berguna untuk pencarian. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Stopwords dan Stoplists untuk Pencarian Teks Lengkap.

  • Prosesor kueri SQL Server. Prosesor kueri mengkompilasi dan menjalankan kueri SQL. Jika kueri SQL menyertakan kueri pencarian teks lengkap, kueri dikirim ke Mesin Teks Lengkap, baik selama kompilasi maupun selama eksekusi. Hasil kueri dicocokkan dengan indeks teks lengkap.

  • Mesin Teks Lengkap. Mesin Teks Lengkap di SQL Server sepenuhnya terintegrasi dengan prosesor kueri. Mesin Teks Lengkap mengkompilasi dan menjalankan kueri teks lengkap. Sebagai bagian dari eksekusi kueri, Mesin Teks-Penuh mungkin menerima input dari thesaurus dan daftar henti.

    Catatan

    Di SQL Server 2008 (10.0.x) dan versi yang lebih baru, Mesin Teks Lengkap berada dalam proses SQL Server, bukan dalam layanan terpisah. Mengintegrasikan Mesin Teks Lengkap ke dalam Mesin Database meningkatkan pengelolaan teks lengkap, pengoptimalan kueri campuran, dan performa keseluruhan.

  • Penulis indeks (pengindeks). Penulis indeks membangun struktur yang digunakan untuk menyimpan token terindeks.

  • Filter manajer daemon. Manajer daemon filter bertanggung jawab untuk memantau status host daemon filter Mesin Teks Lengkap.

Memfilter proses Host Daemon

Host daemon filter adalah proses yang dimulai oleh Mesin Teks Lengkap. Ini menjalankan komponen pencarian teks lengkap berikut, yang bertanggung jawab untuk mengakses, memfilter, dan memecah kata data dari tabel, serta untuk pemecahan kata dan membendung input kueri.

Komponen host daemon filter adalah sebagai berikut:

  • Penangan protokol. Komponen ini menarik data dari memori untuk pemrosesan lebih lanjut dan mengakses data dari tabel pengguna dalam database tertentu. Salah satu tanggung jawabnya adalah mengumpulkan data dari kolom yang diindeks teks lengkap dan meneruskannya ke host daemon filter, yang akan menerapkan pemfilteran dan pemecah kata sesuai kebutuhan.

  • Filter. Beberapa jenis data memerlukan pemfilteran sebelum data dalam dokumen dapat diindeks teks lengkap, termasuk data dalam kolom varbinary, varbinary(max), gambar, atau xml . Filter yang digunakan untuk dokumen tertentu bergantung pada jenis dokumennya. Misalnya, filter yang berbeda digunakan untuk dokumen Microsoft Word (.doc), dokumen Microsoft Excel (.xls), dan dokumen XML (.xml). Kemudian filter mengekstrak potongan teks dari dokumen, menghapus pemformatan yang disematkan dan mempertahankan teks dan, berpotensi, informasi tentang posisi teks. Hasilnya adalah aliran informasi tekstual. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Filter untuk Pencarian.

  • Pemecah kata dan stemmer. Pemecah kata adalah komponen khusus bahasa yang menemukan batas kata berdasarkan aturan leksikal bahasa tertentu (pemecahan kata). Setiap pemecah kata dikaitkan dengan komponen stemmer khusus bahasa yang mengkonjugasikan kata kerja dan melakukan ekspansi infleksi. Pada waktu pengindeksan, host daemon filter menggunakan pemecah kata dan stemmer untuk melakukan analisis linguistik pada data tekstual dari kolom tabel tertentu. Bahasa yang terkait dengan kolom tabel dalam indeks teks lengkap menentukan pemecah kata dan stemmer mana yang digunakan untuk mengindeks kolom. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Word Breakers dan Stemmers untuk Pencarian.

    Catatan

    SQL Server 2012 (11.x) menginstal versi baru pemecah kata dan stemmer untuk bahasa Inggris AS (LCID 1033) dan Inggris Inggris (LCID 2057). Namun Anda dapat beralih ke versi sebelumnya dari komponen-komponen ini jika Anda ingin mempertahankan perilaku sebelumnya. Untuk informasi selengkapnya, lihat Mengubah Pemecah Kata yang Digunakan untuk Bahasa Inggris AS dan Inggris Inggris.

Pemrosesan Pencarian Teks Lengkap

Pencarian teks lengkap didukung oleh Mesin Teks Lengkap. Mesin Teks Lengkap memiliki dua peran: dukungan pengindeksan dan dukungan kueri.

Proses pengindeksan Teks Penuh

Ketika populasi teks lengkap (juga dikenal sebagai perayapan) dimulai, Mesin Teks-Penuh mendorong batch data besar ke dalam memori dan memberi tahu host daemon filter. Filter host dan kata memecah data dan mengonversi data yang dikonversi menjadi daftar kata terbalik. Pencarian teks lengkap kemudian menarik data yang dikonversi dari daftar kata, memproses data untuk menghapus stopword, dan mempertahankan daftar kata untuk batch menjadi satu atau beberapa indeks terbalik.

Saat mengindeks data yang disimpan dalam kolom varbinary(max) atau gambar , filter, yang mengimplementasikan antarmuka IFilter , mengekstrak teks berdasarkan format file yang ditentukan untuk data tersebut (misalnya, Microsoft Word). Dalam beberapa kasus, komponen filter memerlukan varbinary(maks), atau data gambar ditulis ke folder filterdata, alih-alih didorong ke memori.

Sebagai bagian dari pemrosesan, data teks yang dikumpulkan diteruskan melalui pemecah kata untuk memisahkan teks menjadi token individual, atau kata kunci. Bahasa yang digunakan untuk tokenisasi ditentukan pada tingkat kolom, atau dapat diidentifikasi dalam data varbinary(max), gambar, atau xml oleh komponen filter.

Pemrosesan tambahan dapat dilakukan untuk menghapus stopword, dan untuk menormalkan token sebelum disimpan dalam indeks teks lengkap atau fragmen indeks.

Ketika populasi telah selesai, proses penggabungan akhir dipicu yang menggabungkan fragmen indeks bersama-sama menjadi satu indeks teks lengkap master. Ini menghasilkan peningkatan performa kueri karena hanya indeks master yang perlu dikueri daripada sejumlah fragmen indeks, dan statistik penilaian yang lebih baik dapat digunakan untuk peringkat relevansi.

Proses kueri Teks Lengkap

Prosesor kueri meneruskan bagian teks lengkap kueri ke Mesin Teks Lengkap untuk diproses. Mesin Teks-Penuh melakukan pemecahan kata dan, secara opsional, ekspansi tesaurus, stemming, dan stopword (kata kebisingan) pemrosesan. Kemudian bagian teks lengkap kueri diwakili dalam bentuk operator SQL, terutama sebagai fungsi bernilai tabel streaming (STVF). Selama eksekusi kueri, STVF ini mengakses indeks terbalik untuk mengambil hasil yang benar. Hasilnya dikembalikan ke klien pada saat ini, atau diproses lebih lanjut sebelum dikembalikan ke klien.

Arsitektur indeks teks lengkap

Informasi dalam indeks teks lengkap digunakan oleh Mesin Teks Lengkap untuk mengkompilasi kueri teks lengkap yang dapat dengan cepat mencari tabel untuk kata atau kombinasi kata tertentu. Indeks teks lengkap menyimpan informasi tentang kata-kata penting dan lokasinya dalam satu atau beberapa kolom tabel database. Indeks teks lengkap adalah jenis khusus indeks fungsi berbasis token yang dibangun dan dikelola oleh Mesin Teks-Penuh untuk SQL Server. Proses membangun indeks teks lengkap berbeda dari membangun jenis indeks lainnya. Alih-alih membuat struktur pohon B berdasarkan nilai yang disimpan dalam baris tertentu, Mesin Teks-Penuh membangun struktur indeks terbalik, ditumpuk, dan dikompresi berdasarkan token individual dari teks yang diindeks. Ukuran indeks teks lengkap hanya dibatasi oleh sumber daya memori komputer yang tersedia tempat instans SQL Server berjalan.

Dimulai di SQL Server 2008 (10.0.x), indeks teks lengkap terintegrasi dengan Mesin Database, alih-alih berada di sistem file seperti pada versi SQL Server sebelumnya. Untuk database baru, katalog teks lengkap sekarang menjadi objek virtual yang bukan milik grup file apa pun; ini hanyalah konsep logis yang mengacu pada sekelompok indeks teks lengkap. Namun, perhatikan bahwa selama peningkatan database SQL Server 2005 (9.x), katalog teks lengkap apa pun yang berisi file data, grup file baru dibuat; untuk informasi selengkapnya, lihat Meningkatkan Pencarian Teks Lengkap.

Hanya satu indeks teks lengkap yang diperbolehkan per tabel. Agar indeks teks lengkap dibuat pada tabel, tabel harus memiliki kolom nonnull tunggal yang unik. Anda dapat membuat indeks teks lengkap pada kolom tipe karakter, varchar, nchar, nvarchar, teks, ntext, gambar, xml, varbinary, dan varbinary(maks) dapat diindeks untuk pencarian teks lengkap. Membuat indeks teks lengkap pada kolom yang tipe datanya adalah varbinary, varbinary(max), image, atau xml mengharuskan Anda menentukan kolom jenis. Kolom jenis adalah kolom tabel tempat Anda menyimpan ekstensi file (.doc, .pdf, .xls, dan sebagainya) dari dokumen di setiap baris.

Struktur indeks teks lengkap

Pemahaman yang baik tentang struktur indeks teks lengkap akan membantu Anda memahami cara kerja Mesin Teks Lengkap. Topik ini menggunakan kutipan tabel Dokumen berikut di Adventure Works sebagai tabel contoh. Kutipan ini hanya memperlihatkan dua kolom, kolom DocumentID dan kolom Judul , dan tiga baris dari tabel.

Untuk contoh ini, kita akan berasumsi bahwa indeks teks lengkap telah dibuat pada kolom Judul .

DocumentID Judul
1 Lengan Engkol dan Pemeliharaan Ban
2 Braket Reflektor Depan dan Rakitan Reflektor 3
3 Penginstalan Braket Reflektor Depan

Misalnya, tabel berikut, yang memperlihatkan Fragmen 1, menggambarkan konten indeks teks lengkap yang dibuat pada kolom Judul tabel Dokumen. Indeks teks-penuh berisi lebih banyak informasi daripada yang disajikan dalam tabel ini. Tabel adalah representasi logis dari indeks teks lengkap dan disediakan hanya untuk tujuan demonstrasi. Baris disimpan dalam format terkompresi untuk mengoptimalkan penggunaan disk.

Perhatikan bahwa data telah terbalik dari dokumen asli. Inversi terjadi karena kata kunci dipetakan ke ID dokumen. Untuk alasan ini, indeks teks lengkap sering disebut sebagai indeks terbalik.

Perhatikan juga bahwa kata kunci "dan" telah dihapus dari indeks teks lengkap. Ini dilakukan karena "dan" adalah stopword, dan menghapus stopword dari indeks teks-penuh dapat menyebabkan penghematan besar dalam ruang disk sehingga meningkatkan performa kueri. Untuk informasi selengkapnya tentang stopwords, lihat Mengonfigurasi dan Mengelola Stopwords dan Stoplists untuk Pencarian Teks Lengkap.

Fragmen 1

Kata kunci ColId DocId Kemunculan
Engkol 1 1 1
Lengan 1 1 2
Ban 1 1 4
Pemeliharaan 1 1 5
Front 1 2 1
Front 1 3 1
Reflektor 1 2 2
Reflektor 1 2 5
Reflektor 1 3 2
Bracket 1 2 3
Bracket 1 3 3
Rakitan 1 2 6
3 1 2 7
Penginstalan 1 3 4

Kolom Kata Kunci berisi representasi token tunggal yang diekstrak pada waktu pengindeksan. Pemecah kata menentukan apa yang membentuk token.

Kolom ColId berisi nilai yang sesuai dengan kolom tertentu yang diindeks teks lengkap.

Kolom DocId berisi nilai untuk bilangan bulat delapan byte yang dipetakan ke nilai kunci teks lengkap tertentu dalam tabel terindeks teks lengkap. Pemetaan ini diperlukan ketika kunci teks lengkap bukan tipe data bilangan bulat. Dalam kasus seperti itu, pemetaan antara nilai kunci teks lengkap dan nilai DocId dipertahankan dalam tabel terpisah yang disebut tabel Pemetaan DocId. Untuk mengkueri pemetaan ini, gunakan prosedur tersimpan sistem sp_fulltext_keymappings . Untuk memenuhi kondisi pencarian, nilai DocId dari tabel di atas perlu digabungkan dengan tabel Pemetaan DocId untuk mengambil baris dari tabel dasar yang sedang dikueri. Jika nilai kunci teks lengkap dari tabel dasar adalah jenis bilangan bulat, nilai langsung berfungsi sebagai DocId dan tidak ada pemetaan yang diperlukan. Oleh karena itu, menggunakan nilai kunci teks lengkap bilangan bulat dapat membantu mengoptimalkan kueri teks lengkap.

Kolom Kemunculan berisi nilai bilangan bulat. Untuk setiap nilai DocId, ada daftar nilai kemunculan yang sesuai dengan offset kata relatif dari kata kunci tertentu dalam DocId tersebut. Nilai kemunculan berguna dalam menentukan frasa atau kecocokan kedekatan, misalnya, frasa memiliki nilai kemunculan numerik yang berdekatan. Mereka juga berguna dalam menghitung skor relevansi; misalnya, jumlah kemunculan kata kunci dalam DocId dapat digunakan dalam penilaian.

Fragmen indeks teks penuh

Indeks teks lengkap logis biasanya dibagi di beberapa tabel internal. Setiap tabel internal disebut fragmen indeks teks lengkap. Beberapa fragmen ini mungkin berisi data yang lebih baru daripada yang lain. Misalnya, jika pengguna memperbarui baris berikut yang DocId-nya adalah 3 dan tabel dilacak perubahan otomatis, fragmen baru dibuat.

DocumentID Judul
3 Reflektor Belakang

Dalam contoh berikut, yang menunjukkan Fragmen 2, fragmen berisi data yang lebih baru tentang DocId 3 dibandingkan dengan Fragmen 1. Oleh karena itu, ketika pengguna meminta "Rear Reflector" data dari Fragmen 2 digunakan untuk DocId 3. Setiap fragmen ditandai dengan tanda waktu pembuatan yang dapat dikueri dengan menggunakan tampilan katalog sys.fulltext_index_fragments .

Fragmen 2

Kata kunci ColId DocId Occ
Belakang 1 3 1
Reflektor 1 3 2

Seperti yang dapat dilihat dari Fragmen 2, kueri teks lengkap perlu mengkueri setiap fragmen secara internal dan membuang entri yang lebih lama. Oleh karena itu, terlalu banyak fragmen indeks teks lengkap dalam indeks teks lengkap dapat menyebabkan penurunan substansial dalam performa kueri. Untuk mengurangi jumlah fragmen, reorganisasi katalog teks lengkap dengan menggunakan opsi REORGANIZE dari pernyataan ALTER FULLTEXT CATALOGTransact-SQL. Pernyataan ini melakukan penggabungan master, yang menggabungkan fragmen ke dalam satu fragmen yang lebih besar dan menghapus semua entri usang dari indeks teks lengkap.

Setelah diatur ulang, indeks contoh akan berisi baris berikut:

Kata kunci ColId DocId Occ
Engkol 1 1 1
Lengan 1 1 2
Ban 1 1 4
Pemeliharaan 1 1 5
Front 1 2 1
Belakang 1 3 1
Reflektor 1 2 2
Reflektor 1 2 5
Reflektor 1 3 2
Bracket 1 2 3
Rakitan 1 2 6
3 1 2 7

Perbedaan antara indeks teks lengkap dan indeks SQL Server reguler:.

Indeks teks lengkap Indeks SQL Server reguler
Hanya satu indeks teks lengkap yang diizinkan per tabel. Beberapa indeks reguler diizinkan per tabel.
Penambahan data ke indeks teks lengkap, yang disebut populasi, dapat diminta melalui jadwal atau permintaan tertentu, atau dapat terjadi secara otomatis dengan penambahan data baru. Diperbarui secara otomatis saat data yang menjadi dasarnya disisipkan, diperbarui, atau dihapus.
Dikelompokkan dalam database yang sama ke dalam satu atau beberapa katalog teks lengkap. Tidak dikelompokkan.

Komponen linguistik pencarian Teks Lengkap dan dukungan bahasa

Pencarian teks lengkap mendukung hampir 50 bahasa yang beragam, seperti Inggris, Spanyol, Cina, Jepang, Arab, Bangla, dan Hindi. Untuk daftar lengkap bahasa teks lengkap yang didukung, lihat sys.fulltext_languages (Transact-SQL). Setiap kolom yang terkandung dalam indeks teks lengkap dikaitkan dengan pengidentifikasi lokal Microsoft Windows (LCID) yang sama dengan bahasa yang didukung oleh pencarian teks lengkap. Misalnya, LCID 1033 sama dengan bahasa Inggris AS, dan LCID 2057 sama dengan Inggris Inggris. Untuk setiap bahasa teks lengkap yang didukung, SQL Server menyediakan komponen linguistik yang mendukung pengindeksan dan kueri data teks lengkap yang disimpan dalam bahasa tersebut.

Komponen khusus bahasa mencakup yang berikut ini:

  • Pemecah kata dan stemmer. Pemecah kata menemukan batas kata berdasarkan aturan leksikal bahasa tertentu (pemecah kata). Setiap pemecah kata dikaitkan dengan stemmer yang mengkonjugasikan kata kerja untuk bahasa yang sama. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Word Breakers dan Stemmers untuk Pencarian.

  • Daftar henti. Daftar henti sistem disediakan yang berisi sekumpulan stopword dasar (juga dikenal sebagai kata-kata kebisingan). Stopword adalah kata yang tidak membantu pencarian dan diabaikan oleh kueri teks lengkap. Misalnya, untuk kata-kata lokal bahasa Inggris seperti "a", "dan", "is", dan "the" dianggap stopwords. Biasanya, Anda harus mengonfigurasi satu atau beberapa file thesaurus dan daftar henti. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Stopwords dan Stoplists untuk Pencarian Teks Lengkap.

  • File thesaurus. SQL Server juga menginstal file thesaurus untuk setiap bahasa teks lengkap, serta file thesaurus global. File tesaurus yang diinstal pada dasarnya kosong, tetapi Anda dapat mengeditnya untuk menentukan sinonim untuk bahasa atau skenario bisnis tertentu. Dengan mengembangkan tesaurus yang disesuaikan dengan data teks lengkap, Anda dapat secara efektif memperluas cakupan kueri teks lengkap pada data tersebut. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola File Tesaurus untuk Pencarian Teks Lengkap.

  • Filter (iFilter). Mengindeks dokumen dalam kolom tipe data varbinary(maks), gambar, atau xml memerlukan filter untuk melakukan pemrosesan ekstra. Filter harus spesifik untuk jenis dokumen (.doc, .pdf, .xls, .xml, dan sebagainya). Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Filter untuk Pencarian.

Pemecah kata (dan stemmer) dan filter berjalan dalam proses host daemon filter (fdhost.exe).