Mulai dengan Pencarian Teks Lengkap

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Database SQL Server adalah teks lengkap yang diaktifkan secara default. Namun, sebelum Anda dapat menjalankan kueri teks lengkap, Anda harus membuat katalog teks lengkap dan membuat indeks teks lengkap pada tabel atau tampilan terindeks yang ingin Anda cari.

Menyiapkan pencarian teks lengkap dalam dua langkah

Ada dua langkah dasar untuk menyiapkan pencarian teks lengkap:

  1. Buat katalog teks lengkap.
  2. Buat indeks teks lengkap pada tabel atau tampilan terindeks yang ingin Anda cari.

Setiap indeks teks lengkap harus termasuk dalam katalog teks lengkap. Anda dapat membuat katalog teks terpisah untuk setiap indeks teks lengkap, atau Anda dapat mengaitkan beberapa indeks teks lengkap dengan katalog tertentu. Katalog teks lengkap adalah objek virtual dan bukan milik grup file apa pun. Katalog adalah konsep logis yang mengacu pada sekelompok indeks teks lengkap.

Catatan

Langkah-langkah ini mengasumsikan bahwa Anda menginstal komponen Pencarian Teks Lengkap opsional saat Anda menginstal SQL Server. Jika tidak, Anda harus menjalankan Penyetelan SQL Server lagi untuk menambahkannya.

Menyiapkan pencarian teks lengkap dengan wizard

Untuk menyiapkan pencarian teks lengkap dengan menggunakan wizard, lihat Menggunakan Panduan Pengindeksan Teks Lengkap.

Menyiapkan pencarian teks lengkap dengan Transact-SQL

Contoh dua bagian berikut membuat katalog teks lengkap bernama AdvWksDocFTCat pada database sampel AdventureWorks lalu membuat indeks teks lengkap pada Document tabel dalam database sampel. Pernyataan ini membuat katalog teks lengkap di direktori default yang ditentukan selama penyiapan SQL Server. Folder bernama AdvWksDocFTCat berada di direktori default.

  1. Untuk membuat katalog teks lengkap bernama AdvWksDocFTCat, contohnya menggunakan pernyataan CREATE FULLTEXT CATALOG :

    USE AdventureWorks;  
    GO  
    CREATE FULLTEXT CATALOG AdvWksDocFTCat;  
    

    Untuk informasi selengkapnya, lihat Membuat dan Mengelola Katalog Teks Lengkap.

  2. Sebelum Anda bisa membuat indeks teks lengkap pada tabel Dokumen, pastikan bahwa tabel memiliki indeks unik, kolom tunggal, dan tidak dapat diubah ke null. Pernyataan CREATE INDEX berikut membuat indeks unik, ui_ukDoc, pada kolom DocumentID dari tabel Dokumen:

    CREATE UNIQUE INDEX ui_ukDoc ON Production.Document(DocumentNode);  
    
  3. Letakkan indeks teks lengkap yang Document ada pada tabel dengan menggunakan pernyataan DROP FULLTEXT INDEX berikut.

    DROP FULLTEXT INDEX ON Production.Document
    GO
    
  4. Setelah Anda memiliki kunci unik, Anda dapat membuat indeks teks lengkap pada Document tabel dengan menggunakan pernyataan CREATE FULLTEXT INDEX berikut.

    CREATE FULLTEXT INDEX ON Production.Document  
    (  
        Document                         --Full-text index column name   
            TYPE COLUMN FileExtension    --Name of column that contains file type information  
            Language 2057                 --2057 is the LCID for British English  
    )  
    KEY INDEX ui_ukDoc ON AdvWksDocFTCat --Unique index  
    WITH CHANGE_TRACKING AUTO            --Population type;  
    GO  
    
    

    KOLOM TYPE yang ditentukan dalam contoh ini menentukan kolom tipe dalam tabel yang berisi tipe dokumen di setiap baris kolom 'Dokumen' (yang merupakan tipe biner). Kolom jenis menyimpan ekstensi file yang disediakan pengguna - ".doc", ".xls", dan sebagainya - dari dokumen dalam baris tertentu. Mesin Teks-Penuh menggunakan ekstensi file dalam baris tertentu untuk memanggil filter yang benar untuk digunakan untuk mengurai data di baris tersebut. Setelah filter mengurai data biner baris, pemecah kata yang ditentukan mengurai konten. (Dalam contoh ini, pemecah kata untuk bahasa Inggris Inggris digunakan.) Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Filter untuk Pencarian.

    Untuk informasi selengkapnya, lihat Membuat dan Mengelola Indeks Teks Lengkap.

Pilih opsi untuk indeks teks lengkap

Pilih bahasa

Untuk informasi tentang memilih bahasa kolom, lihat Memilih Bahasa Saat Membuat Indeks Teks Lengkap.

Pilih grup file

Proses membangun indeks teks lengkap cukup intensif I/O. Singkatnya, ini terdiri dari membaca data dari SQL Server, lalu menyebarkan data yang difilter ke indeks teks lengkap. Sebagai praktik terbaik, temukan indeks teks lengkap di grup file database yang terbaik untuk memaksimalkan performa I/O atau temukan indeks teks lengkap dalam grup file yang berbeda pada volume lain.

Pilih katalog teks lengkap

Sebaiknya mengaitkan tabel dengan karakteristik pembaruan yang sama (seperti sejumlah kecil perubahan versus perubahan dalam jumlah besar, atau tabel yang sering berubah selama waktu tertentu dalam sehari) bersama-sama di bawah katalog teks lengkap yang sama. Dengan menyiapkan jadwal populasi katalog teks lengkap, indeks teks lengkap tetap sinkron dengan tabel tanpa memengaruhi penggunaan sumber daya server database selama periode aktivitas database tinggi.

Pertimbangkan panduan berikut:

  • Jika Anda mengindeks tabel dengan jutaan baris, tetapkan tabel ke katalog teks lengkapnya sendiri.

  • Pertimbangkan jumlah perubahan yang terjadi dalam tabel yang diindeks teks lengkap, serta jumlah total baris. Jika jumlah total baris yang diubah, bersama dengan jumlah baris dalam tabel yang ada selama populasi teks lengkap terakhir, mewakili jutaan baris, tetapkan tabel ke katalog teks lengkapnya sendiri.

Mengaitkan indeks unik

Selalu pilih indeks unik terkecil yang tersedia untuk kunci unik teks lengkap Anda. (Indeks berbasis bilangan bulat 4 byte optimal.) Ini secara signifikan mengurangi sumber daya yang diperlukan oleh layanan Microsoft Search dalam sistem file. Jika kunci primer besar (lebih dari 100 byte), pertimbangkan untuk memilih indeks unik lain dalam tabel (atau membuat indeks unik lainnya) sebagai kunci unik teks lengkap. Jika tidak, jika ukuran kunci unik teks lengkap melebihi ukuran maksimum yang diizinkan (900 byte), populasi teks lengkap tidak akan dapat melanjutkan.

Mengaitkan daftar henti

Daftar berhenti adalah daftar stopword, juga dikenal sebagai kata-kata kebisingan. Daftar henti dikaitkan dengan setiap indeks teks lengkap, dan kata-kata dalam daftar henti tersebut diterapkan ke kueri teks-penuh pada indeks tersebut. Secara default, daftar henti sistem dikaitkan dengan indeks teks lengkap baru. Anda juga dapat membuat dan menggunakan daftar henti Anda sendiri.

Misalnya, pernyataan CREATE FULLTEXT STOPLIST Transact-SQL berikut membuat daftar henti teks lengkap baru bernama myStoplist dengan menyalin dari daftar henti sistem:

CREATE FULLTEXT STOPLIST myStoplist FROM SYSTEM STOPLIST;  
GO  

Pernyataan ALTER FULLTEXT STOPLIST Transact-SQL berikut mengubah daftar henti bernama myStoplist, menambahkan kata 'en', pertama untuk bahasa Spanyol dan kemudian untuk bahasa Prancis:

ALTER FULLTEXT STOPLIST myStoplist ADD 'en' LANGUAGE 'Spanish';  
ALTER FULLTEXT STOPLIST myStoplist ADD 'en' LANGUAGE 'French';  
GO  

Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Stopwords dan Stoplists untuk Pencarian Teks Lengkap.

Memperbarui indeks teks lengkap

Seperti indeks SQL Server reguler, indeks teks lengkap dapat diperbarui secara otomatis saat data dimodifikasi dalam tabel terkait. Ini adalah perilaku default. Atau, Anda dapat menjaga indeks teks lengkap Anda tetap terbarui secara manual, atau pada interval terjadwal yang ditentukan. Mengisi indeks teks lengkap dapat memakan waktu dan intensif sumber daya. Oleh karena itu, pembaruan indeks biasanya dilakukan sebagai proses asinkron yang berjalan di latar belakang dan menjaga indeks teks lengkap tetap terbaru setelah modifikasi dalam tabel dasar.

Memperbarui indeks teks lengkap segera setelah setiap perubahan dalam tabel dasar juga intensif sumber daya. Oleh karena itu, jika Anda memiliki laju pembaruan/sisipkan/hapus yang tinggi, Anda mungkin mengalami beberapa degradasi dalam performa kueri. Jika ini terjadi, pertimbangkan untuk menjadwalkan pembaruan pelacakan perubahan manual untuk mengikuti banyak perubahan dari waktu ke waktu, daripada bersaing dengan kueri untuk sumber daya.

Untuk informasi selengkapnya, lihat Mengisi Indeks Teks Lengkap.

Langkah berikutnya

Setelah menyiapkan Pencarian Teks Lengkap SQL Server, Anda siap untuk menjalankan kueri teks lengkap. Untuk informasi selengkapnya, lihat Kueri dengan Pencarian Teks Lengkap.