Bagikan melalui


Mengonfigurasi dan Mengelola Stopwords dan Stoplist untuk Pencarian Teks Lengkap

Berlaku untuk: SQL ServerAzure SQL Database

Untuk mencegah indeks teks penuh menjadi kembung, SQL Server memiliki mekanisme yang membuang string yang umumnya terjadi yang tidak membantu pencarian. String yang dibuang ini disebut stopwords. Selama pembuatan indeks, Mesin Teks-Penuh menghilangkan kata henti dari indeks teks lengkap. Ini berarti bahwa kueri teks lengkap tidak akan mencari pada stopword.

Stopwords. Sebuah "stopword" adalah kata yang memiliki makna dalam bahasa tertentu. Misalnya, dalam bahasa Inggris, kata-kata seperti "a," "dan," "is," dan "the" dibiarkan keluar dari indeks teks lengkap karena mereka diketahui tidak berguna untuk pencarian. Kata penghenti juga bisa menjadi token yang tidak bermakna linguistik.

Daftar henti. Stopwords dikelola dalam database menggunakan objek yang disebut daftar berhenti. Daftar stoplist adalah daftar stopword yang, ketika dikaitkan dengan indeks teks lengkap, diterapkan pada kueri teks penuh di indeks tersebut.

Gunakan stoplist yang sudah ada

Anda dapat menggunakan daftar henti yang sudah ada dengan cara berikut:

  • Gunakan daftar henti yang disediakan sistem dalam database. SQL Server dilengkapi dengan stoplist sistem yang berisi stopword yang paling umum digunakan untuk setiap bahasa yang didukung, yaitu untuk setiap bahasa yang terkait dengan pemecah kata yang diberikan secara default. Anda dapat menyalin daftar henti sistem dan menyesuaikan salinan Anda dengan menambahkan dan menghapus stopword.

    Daftar henti sistem diinstal di database Sumber Daya .

  • Gunakan daftar henti kustom yang ada dari database lain di instans server saat ini, lalu tambahkan atau hilangkan stopword yang sesuai.

Membuat daftar henti baru

Membuat daftar henti baru dengan Transact-SQL

Gunakan CREATE FULLTEXT STOPLIST.

Membuat daftar henti baru dengan Management Studio

  1. Di Object Explorer, perluas server.

  2. Perluas Database, lalu perluas database tempat Anda ingin membuat daftar henti teks penuh.

  3. Perluas Penyimpanan, lalu klik kanan Daftar Stop Teks Lengkap.

  4. Pilih Daftar Henti Teks Lengkap Baru.

  5. Masukkan nama stoplist baru Anda.

  6. Secara opsional, tentukan orang lain sebagai pemilik daftar berhenti.

  7. Pilih salah satu opsi berikut untuk membuat daftar pengecualian:

    • Membuat daftar stop kosong

    • Membuat dari daftar henti sistem

    • Buat dari stoplist teks lengkap yang sudah ada

    Untuk informasi selengkapnya, lihat Daftar Henti Teks Lengkap Baru (Halaman Umum).

  8. Pilih OK.

Menggunakan daftar henti dalam kueri teks lengkap

Untuk menggunakan daftar henti dalam kueri, Anda harus mengaitkannya dengan indeks teks lengkap. Anda dapat melampirkan daftar henti ke indeks teks lengkap saat membuat indeks, atau Anda dapat mengubah indeks nanti untuk menambahkan daftar henti.

Buat indeks teks lengkap dan mengaitkan daftar henti dengannya

Gunakan CREATE FULLTEXT INDEX (Transact-SQL).

Mengasosiasikan atau memisahkan daftar penghentian dengan indeks teks lengkap yang ada

Gunakan ALTER FULLTEXT INDEX (Transact-SQL).

Mengubah stopword dalam daftar berhenti

Menambahkan atau menghilangkan stopword dari daftar henti dengan Transact-SQL

Gunakan ALTER FULLTEXT STOPLIST (Transact-SQL).

Menambahkan atau menghilangkan kata penghenti dari daftar henti menggunakan Management Studio

  1. Di Object Explorer, perluas server.

  2. Perluas Database, lalu perluas database.

  3. Perluas Penyimpanan, lalu pilih Stoplist Teks Lengkap.

  4. Klik kanan daftar henti yang propertinya ingin Anda ubah, dan pilih Properti.

  5. Dalam kotak dialog Properti Daftar Henti Teks Lengkap:

    1. Dalam kotak daftar Action, pilih salah satu tindakan berikut: Tambahkan stopword, Hapus stopword, Hapus semua stopword, atau Hapus stoplist.

    2. Jika kotak teks Stopword diaktifkan untuk tindakan yang dipilih, masukkan satu stopword. Stopword ini harus unik; artinya, belum ada dalam daftar stop untuk bahasa yang Anda pilih.

    3. Jika kotak Daftar bahasa teks lengkap diaktifkan untuk tindakan yang dipilih, pilih bahasa.

  6. Pilih OK.

Mengelola stoplist dan penggunaannya

Menampilkan semua kata penghenti dalam daftar henti

Gunakan sys.fulltext_stopwords (Transact-SQL).

Dapatkan info tentang semua daftar henti dalam database saat ini

Gunakan sys.fulltext_stoplists (Transact-SQL) dan sys.fulltext_stopwords (Transact-SQL).

Lihat hasil tokenisasi dari kombinasi pemecah kata, tesaurus, dan daftar henti

Gunakan sys.dm_fts_parser (Transact-SQL).

Menyembunyikan pesan kesalahan jika stopwords menyebabkan operasi Boolean pada kueri teks lengkap gagal

Gunakan opsi transformasi kata bising Konfigurasi Server.

Info selengkapnya tentang posisi stopword

Meskipun mengabaikan penyertaan stopword, indeks teks lengkap memang memperhitungkan posisi mereka. Misalnya, pertimbangkan frasa, "Instruksi berlaku untuk model Adventure Works Cycles ini". Tabel berikut ini menggambarkan posisi kata-kata dalam frasa:

Word Posisi
Petunjuk 1
adalah 2
berlaku 3
ke 4
Ini 5
Petualangan 6
Pekerjaan 7
Siklus 8
model 9

Kata berhenti "adalah", "ke", dan "ini" yang berada di posisi 2, 4, dan 5 dibiarkan keluar dari indeks teks lengkap. Namun, informasi posisi mereka dipertahankan, sehingga meninggalkan posisi kata-kata lain dalam frasa tidak terpengaruh.

Meningkatkan kata-kata kebisingan dari SQL Server 2005

Kata-kata kebisingan SQL Server 2005 (9.x) telah digantikan oleh kata henti. Ketika database ditingkatkan dari SQL Server 2005 (9.x), file noise-word tidak lagi digunakan. Namun, file kata pengganggu disimpan di folder FTDATA\ FTNoiseThesaurusBak, dan Anda dapat menggunakannya nanti saat memperbarui atau menyusun daftar penghenti yang sesuai. Untuk informasi tentang memutakhirkan file noise-word menjadi daftar kata henti, lihat Memutakhirkan Pencarian Teks Lengkap.