Bagikan melalui


Mutakhirkan Pencarian Full-Text

Berlaku untuk:SQL ServerAzure SQL Database

SQL Server meningkatkan pencarian teks lengkap selama penyiapan, atau saat Anda melampirkan, memulihkan, atau menyalin file database dan katalog teks lengkap dari versi SQL Server sebelumnya.

Meningkatkan instans server

Untuk peningkatan di tempat, instans SQL Server disiapkan berdampingan dengan versi lama SQL Server, dan data dimigrasikan. Jika versi lama SQL Server telah menginstal pencarian teks lengkap, versi baru pencarian teks lengkap secara otomatis diinstal. Penginstalan berdampingan berarti bahwa masing-masing komponen berikut ada di tingkat instans SQL Server.

Pemecah kata, stemmer, dan filter
Setiap instans sekarang menggunakan sekumpulan pemecah kata, stemmer, dan filternya sendiri, daripada mengandalkan versi sistem operasi komponen ini. Komponen-komponen ini juga lebih mudah didaftarkan dan dikonfigurasi pada tingkat per instans. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Mengelola Pemecah Kata dan Stemmer untuk Pencarian dan Mengonfigurasi dan Mengelola Filter untuk Pencarian.

Memfilter host daemon
Host daemon filter teks lengkap adalah proses yang memuat dan mendorong komponen eksternal yang dapat diperluas dengan aman yang digunakan untuk indeks dan kueri, seperti pemecah kata, stemmer, dan filter, tanpa mengorbankan integritas Mesin Teks Lengkap. Instans server menggunakan proses multithreaded untuk semua filter multithreaded dan proses utas tunggal untuk semua filter utas tunggal.

Catatan

SQL Server 2008 (10.0.x) memperkenalkan akun layanan untuk layanan Peluncur FDHOST (MSSQLFDLauncher). Layanan ini menyebarluaskan informasi akun layanan ke proses host daemon filter dari instans SQL Server tertentu. Untuk informasi tentang mengatur akun layanan, lihat Mengatur Akun Layanan untuk Peluncur Daemon Filter teks lengkap.

Di SQL Server 2005 (9.x), setiap indeks teks lengkap berada dalam katalog teks lengkap milik grup file, memiliki jalur fisik, dan diperlakukan sebagai file database. Di SQL Server 2008 (10.0.x) dan versi yang lebih baru, katalog teks lengkap adalah objek logis atau virtual yang berisi sekelompok indeks teks lengkap. Oleh karena itu, katalog teks lengkap baru tidak diperlakukan sebagai file database dengan jalur fisik. Namun, selama peningkatan katalog teks lengkap yang berisi file data, grup file baru dibuat pada disk yang sama. Ini mempertahankan perilaku I/O disk lama setelah peningkatan. Indeks teks lengkap dari katalog tersebut ditempatkan di grup file baru jika jalur akar ada. Jika jalur katalog teks lengkap lama tidak valid, peningkatan menyimpan indeks teks-penuh dalam grup file yang sama dengan tabel dasar atau, untuk tabel yang dipartisi, di grup file utama.

Opsi pemutakhiran teks lengkap

Saat meningkatkan instans SQL Server, antarmuka pengguna memungkinkan Anda memilih salah satu opsi peningkatan teks lengkap berikut.

Impor
Katalog teks lengkap diimpor. Biasanya, impor secara signifikan lebih cepat daripada membangun kembali. Misalnya, saat hanya menggunakan satu CPU, impor berjalan sekitar 10 kali lebih cepat daripada membangun kembali. Namun, katalog teks lengkap yang diimpor tidak menggunakan pemutus kata baru yang diinstal dengan versi terbaru SQL Server. Untuk memastikan konsistensi dalam hasil kueri, katalog teks lengkap harus dibangun kembali.

Catatan

Pembangunan ulang dapat berjalan dalam mode multi-utas, dan jika lebih dari 10 CPU tersedia, pembangunan kembali mungkin berjalan lebih cepat daripada impor jika Anda mengizinkan pembangunan ulang untuk menggunakan semua CPU.

Jika katalog teks lengkap tidak tersedia, indeks teks lengkap terkait dibangun kembali. Opsi ini hanya tersedia untuk database SQL Server 2005 (9.x).

Untuk informasi tentang dampak mengimpor indeks teks lengkap, lihat "Pertimbangan untuk Memilih Opsi Peningkatan Teks Lengkap," nanti dalam topik ini.

Membangun kembali
Katalog teks lengkap dibangun kembali menggunakan pemecah kata baru dan yang disempurnakan. Membangun ulang indeks dapat memakan waktu cukup lama, dan sejumlah besar CPU dan memori mungkin diperlukan setelah peningkatan.

Atur ulang
Katalog teks lengkap diatur ulang. Saat memutakhirkan dari SQL Server 2005 (9.x), file katalog teks lengkap dihapus, tetapi metadata untuk katalog teks lengkap dan indeks teks lengkap dipertahankan. Setelah ditingkatkan, semua indeks teks lengkap dinonaktifkan untuk pelacakan perubahan dan perayapan tidak dimulai secara otomatis. Katalog akan tetap kosong sampai Anda mengeluarkan populasi penuh secara manual, setelah peningkatan selesai.

Pertimbangan untuk memilih opsi peningkatan teks lengkap

Saat memilih opsi peningkatan untuk peningkatan Anda, pertimbangkan hal berikut:

  • Apakah Anda memerlukan konsistensi dalam hasil kueri?

    SQL Server menginstal pemecah kata baru untuk digunakan oleh Teks Lengkap dan Pencarian Semantik. Pemecah kata digunakan baik pada waktu pengindeksan maupun pada waktu kueri. Jika Anda tidak membangun kembali katalog teks lengkap, hasil pencarian Anda mungkin tidak konsisten. Jika Anda mengeluarkan kueri teks lengkap yang mencari frasa yang dipecah secara berbeda oleh pemecah kata di versi SQL Server sebelumnya dan pemecah kata saat ini, dokumen atau baris yang berisi frasa mungkin tidak diambil. Ini karena frasa terindeks rusak menggunakan logika yang berbeda dari yang digunakan kueri. Solusinya adalah mengisi ulang (membangun kembali) katalog teks lengkap dengan pemecah kata baru sehingga waktu indeks dan perilaku waktu kueri identik. Anda dapat memilih opsi Bangun ulang untuk menyelesaikan ini, atau Anda dapat membangun kembali secara manual setelah memilih opsi Impor.

  • Apakah ada indeks teks lengkap yang dibangun pada kolom kunci teks lengkap bilangan bulat?

    Pembangunan kembali melakukan pengoptimalan internal yang meningkatkan performa kueri indeks teks lengkap yang ditingkatkan dalam beberapa kasus. Secara khusus, jika Anda memiliki katalog teks lengkap yang berisi indeks teks lengkap di mana kolom kunci teks lengkap tabel dasar adalah jenis data bilangan bulat, pembangunan ulang mencapai performa ideal kueri teks lengkap setelah peningkatan. Dalam hal ini, kami sangat menyarankan Anda untuk menggunakan opsi Pembangunan ulang.

    Catatan

    Untuk indeks teks lengkap, sebaiknya kolom yang berfungsi sebagai kunci teks lengkap adalah jenis data bilangan bulat. Untuk informasi selengkapnya, lihat Meningkatkan Performa Indeks Teks Lengkap.

  • Apa prioritas untuk membuat instans server Anda online?

    Mengimpor atau membangun kembali selama peningkatan membutuhkan banyak sumber daya CPU, yang menunda peningkatan instans server lainnya dan online. Jika membuat instans server online sesegera mungkin penting dan jika Anda bersedia menjalankan populasi manual setelah peningkatan, Reset cocok.

Memastikan hasil kueri yang konsisten setelah mengimpor indeks teks lengkap

Jika katalog teks lengkap diimpor saat memutakhirkan database SQL Server 2005 (9.x), ketidakcocokan antara kueri dan konten indeks teks lengkap mungkin terjadi karena perbedaan perilaku pemecah kata lama dan baru. Dalam hal ini, untuk menjamin kecocokan total antara kueri dan konten indeks teks lengkap, pilih salah satu opsi berikut:

  • Membangun kembali katalog teks lengkap yang berisi indeks teks lengkap (ALTER FULLTEXT CATALOGcatalog_name REBUILD)

  • Terbitkan POPULASI PENUH pada indeks teks lengkap (ALTER FULLTEXT INDEX ON table_name START FULL POPULATION).

Untuk informasi selengkapnya tentang pemecah kata, lihat Mengonfigurasi dan Mengelola Pemecah Kata dan Stemmer untuk Pencarian.

Meningkatkan file noise-word ke daftar berhenti

Ketika database ditingkatkan dari SQL Server 2005 (9.x), file noise-word tidak lagi digunakan. Namun, file kata kebisingan lama disimpan di FTDATA\ FTNoiseThesaurusBak folder, dan Anda dapat menggunakannya nanti saat memperbarui atau membangun daftar berhenti SQL Server yang sesuai.

Setelah memutakhirkan dari SQL Server 2005 (9.x):

  • Jika Anda tidak pernah menambahkan, memodifikasi, atau menghapus file noise-word apa pun dalam penginstalan SQL Server 2005 (9.x), daftar henti sistem harus memenuhi kebutuhan Anda.

  • Jika file noise-word Anda dimodifikasi di SQL Server 2005 (9.x), modifikasi tersebut hilang selama peningkatan. Untuk membuat ulang pembaruan tersebut, Anda harus membuat ulang modifikasi tersebut secara manual dalam daftar henti yang sesuai. Untuk informasi selengkapnya, lihat ALTER FULLTEXT STOPLIST (Transact-SQL).

  • Jika Anda tidak ingin menerapkan stopword apa pun ke indeks teks lengkap Anda (misalnya, jika Anda menghapus atau menghapus file noise-word Anda di penginstalan SQL Server 2005 (9.x), Anda harus menonaktifkan daftar henti untuk setiap indeks teks lengkap yang ditingkatkan. Jalankan pernyataan Transact-SQL berikut (mengganti database dengan nama database dan tabel yang ditingkatkan dengan nama tabel):

    Use database;   
    ALTER FULLTEXT INDEX ON table  
       SET STOPLIST OFF;  
    GO  
    

    Klausa STOPLIST OFF menghapus pemfilteran stop-word, dan akan memicu populasi tabel, tanpa memfilter kata apa pun yang dianggap berisik.

Mencadangkan dan mengimpor katalog teks lengkap

Untuk katalog teks lengkap yang dibangun kembali atau direset selama peningkatan (dan untuk katalog teks lengkap baru), katalog teks lengkap adalah konsep logis dan tidak berada dalam grup file. Oleh karena itu, untuk mencadangkan katalog teks lengkap, Anda harus mengidentifikasi setiap grup file yang berisi indeks teks lengkap katalog dan mencadangkannya masing-masing, satu per satu. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Katalog dan Indeks Teks Lengkap.

Untuk katalog teks lengkap yang telah diimpor dari SQL Server 2005 (9.x), katalog teks lengkap masih merupakan file database dalam grup filenya sendiri. Proses pencadangan SQL Server 2005 (9.x) untuk katalog teks lengkap masih berlaku kecuali bahwa layanan MSFTESQL tidak ada di SQL Server. Untuk informasi tentang proses SQL Server 2005 (9.x), lihat Mencadangkan dan Memulihkan Katalog Teks Lengkap di Buku SQL Server 2005 Online.

Memigrasikan indeks teks lengkap saat memutakhirkan database

File database dan katalog teks lengkap dari versi SQL Server sebelumnya dapat dimutakhirkan ke instans yang ada dengan menggunakan lampirkan, pulihkan, atau Wizard Salin Database. Indeks teks lengkap SQL Server 2005 (9.x), jika ada, diimpor, direset, atau dibangun ulang. Properti server upgrade_option mengontrol opsi peningkatan teks lengkap yang digunakan instans server selama peningkatan database ini.

Setelah Anda melampirkan, memulihkan, atau menyalin database SQL Server 2005 (9.x) instans yang lebih baru, database akan segera tersedia dan kemudian ditingkatkan secara otomatis. Bergantung pada jumlah data yang diindeks, impor dapat memakan waktu beberapa jam, dan pembangunan ulang dapat memakan waktu hingga sepuluh kali lebih lama. Perhatikan juga bahwa ketika opsi peningkatan diatur ke impor, jika katalog teks lengkap tidak tersedia, indeks teks lengkap terkait dibangun kembali.

Untuk mengubah perilaku peningkatan teks lengkap pada instans server

Pertimbangan untuk Memulihkan Katalog Teks Lengkap SQL Server 2005 (9.x)

Salah satu metode memutakhirkan data teks lengkap dari database SQL Server 2005 (9.x) adalah memulihkan cadangan database lengkap ke instans SQL Server yang lebih baru.

Saat mengimpor katalog teks lengkap SQL Server 2005 (9.x), Anda dapat mencadangkan dan memulihkan database dan file katalog. Perilakunya sama seperti di SQL Server 2005 (9.x):

  • Pencadangan database lengkap akan menyertakan katalog teks lengkap. Untuk merujuk ke katalog teks lengkap, gunakan nama file SQL Server 2005 (9.x), sysft_+catalog-name.

  • Jika katalog teks lengkap offline, pencadangan akan gagal.

Untuk informasi selengkapnya tentang mencadangkan dan memulihkan katalog teks lengkap SQL Server 2005 (9.x), lihat Mencadangkan dan Memulihkan Katalog Teks Lengkap dan Pencadangan dan Pemulihan File dan KatalogTeks Lengkap di Buku SQL Server 2005 (9.x) Online.

Ketika database dipulihkan pada instans SQL Server yang lebih baru, file database baru akan dibuat untuk katalog teks lengkap. Nama default file ini adalah ftrow_catalog-name.ndf. Misalnya, jika Anda katalog-nama adalah cat1, nama default file database SQL Server adalah ftrow_cat1.ndf. Tetapi jika nama default sudah digunakan dalam direktori target, file database baru akan diberi nama ftrow_{katalog GUID}.ndf, di mana GUID adalah Pengidentifikasi Unik Global dari file baru.

Setelah katalog diimpor, sys.database_files dan sys.master_filediperbarui untuk menghapus entri katalog dan kolom jalur di sys.fulltext_catalogs diatur ke NULL.

Untuk mencadangkan database

Untuk memulihkan cadangan database

Contoh

Contoh berikut menggunakan klausa MOVE dalam pernyataan RESTORE , untuk memulihkan database SQL Server 2005 (9.x) bernama ftdb1. Database, log, dan file katalog SQL Server 2005 (9.x) dipindahkan ke lokasi baru pada instans server SQL Server, sebagai berikut:

  • File database, ftdb1.mdf, dipindahkan ke C:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf.

  • File log, ftdb1_log.ldf, dipindahkan ke direktori log pada drive disk log Anda, log_drive:\log_directory.\ftdb1_log.ldf

  • File katalog yang sesuai dengan sysft_cat90 katalog dipindahkan ke C:\temp. Setelah indeks teks lengkap diimpor, indeks akan secara otomatis ditempatkan dalam file database, C:\ftrow_sysft_cat90.ndf, dan C:\temp akan dihapus.

RESTORE DATABASE [ftdb1] FROM  DISK = N'C:\temp\ftdb1.bak' WITH  FILE = 1,  
   MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',  
    MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',  
    MOVE N'sysft_cat90' TO N'C:\temp';  

Melampirkan database SQL Server 2005

Di SQL Server 2008 (10.0.x) dan versi yang lebih baru, katalog teks lengkap adalah konsep logis yang mengacu pada sekelompok indeks teks lengkap. Katalog teks lengkap adalah objek virtual yang bukan milik grup file apa pun. Namun, ketika Anda melampirkan database SQL Server 2005 (9.x) yang berisi file katalog teks lengkap ke instans server SQL Server yang lebih baru, file katalog dilampirkan dari lokasi sebelumnya bersama dengan file database lainnya, sama seperti di SQL Server 2005 (9.x).

Status setiap katalog teks lengkap yang dilampirkan di SQL Server sama seperti ketika database dilepas dari SQL Server 2005 (9.x). Jika ada populasi indeks teks lengkap yang ditangguhkan oleh operasi lepaskan, populasi dilanjutkan di SQL Server, dan indeks teks lengkap tersedia untuk pencarian teks lengkap.

Jika SQL Server tidak dapat menemukan file katalog teks lengkap atau jika file teks lengkap dipindahkan selama operasi lampirkan tanpa menentukan lokasi baru, perilaku tergantung pada opsi peningkatan teks lengkap yang dipilih. Jika opsi peningkatan teks lengkap adalah Impor atau Bangun Ulang, katalog teks lengkap yang dilampirkan dibangun kembali. Jika opsi peningkatan teks lengkap adalah Reset, katalog teks lengkap yang dilampirkan akan diatur ulang.

Untuk informasi selengkapnya tentang mencopot dan melampirkan database, lihat Melepas dan Melampirkan Database (SQL Server), MEMBUAT DATABASE (SQL Server Transact-SQL), sp_attach_db, dan sp_detach_db (Transact-SQL).

Baca juga

Mulai dengan Pencarian Teks Lengkap
Mengonfigurasi dan Mengelola Word Breakers dan Stemmers untuk Pencarian
Mengonfigurasi dan Mengelola Filter untuk Pencarian