Bagikan melalui


Mutakhirkan Pencarian Full-Text

Meningkatkan pencarian teks lengkap ke SQL Server 2014 dilakukan selama penyiapan dan ketika file database dan katalog teks lengkap dari versi SQL Server sebelumnya dilampirkan, dipulihkan, atau disalin menggunakan Wizard Salin Database.

Topik ini membahas aspek-aspek berikut dalam meningkatkan pencarian teks lengkap:

Memutakhirkan Instans Server

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

Word pemecah, 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 Word Breaker dan Stemmer untuk Pencarian dan Mengonfigurasi dan Mengelola Filter untuk Pencarian.

Filter 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 Full-Text. Instans server menggunakan proses multithreaded untuk semua filter multithreaded dan proses utas tunggal untuk semua filter utas tunggal.

Catatan

SQL Server 2008 memperkenalkan akun layanan untuk layanan FDHOST Launcher (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.

Pada SQL Server 2005, setiap indeks teks lengkap berada dalam katalog teks lengkap milik grup file, memiliki jalur fisik, dan diperlakukan sebagai file database. Dalam SQL Server 2008 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 apa pun 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.

Catatan

SQL Server pernyataan DDL Transact-SQL 2005 yang menentukan katalog teks lengkap terus berfungsi dengan benar.

Opsi Pemutakhiran Full-Text

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

Impor
Katalog teks lengkap diimpor. Biasanya, impor secara signifikan lebih cepat daripada pembangunan 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 pemecah 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 tersedia lebih dari 10 CPU, pembangunan ulang mungkin berjalan lebih cepat daripada mengimpor jika Anda mengizinkan pembangunan kembali untuk menggunakan semua CPU.

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

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

Buat ulang
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.

Mengatur ulang
Katalog teks lengkap diatur ulang. Saat memutakhirkan dari SQL Server 2005, 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 secara manual mengeluarkan populasi penuh, setelah peningkatan selesai.

Pertimbangan untuk Memilih Opsi Peningkatan Full-Text

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

  • Apakah Anda memerlukan konsistensi dalam hasil kueri?

    SQL Server 2014 menginstal pemecah kata baru untuk digunakan oleh Full-Text 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 pemisah 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 di atas kolom kunci teks lengkap bilangan bulat?

    Membangun 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 yang kolom kunci teks lengkap tabel dasarnya adalah jenis data bilangan bulat, membangun kembali mencapai performa ideal kueri teks lengkap setelah peningkatan. Dalam hal ini, kami sangat menyarankan Anda untuk menggunakan opsi Bangun ulang .

    Catatan

    Untuk indeks teks lengkap di SQL Server 2014, sebaiknya kolom yang berfungsi sebagai kunci teks lengkap menjadi jenis data bilangan bulat. Untuk informasi selengkapnya, lihat Meningkatkan Performa Indeks Full-Text.

  • 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 Full-Text SQL Server 2005

Jika katalog teks lengkap diimpor saat memutakhirkan database SQL Server 2005 ke SQL Server 2014, ketidakcocokan antara kueri dan konten indeks teks lengkap mungkin terjadi karena perbedaan perilaku pemisah 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 pemutus Word dan Stemmer untuk Pencarian.

Memutakhirkan File Noise-Word ke Daftar Henti

SQL Server kata-kata kebisingan 2005 telah digantikan oleh kata-kata stop di SQL Server 2008 dan versi yang lebih baru. Ketika database ditingkatkan ke SQL Server 2014 dari SQL Server 2005, file kata kebisingan tidak lagi digunakan. Namun, file noise-word lama disimpan di folder FTDATA\ FTNoiseThesaurusBak, dan Anda dapat menggunakannya nanti saat memperbarui atau membangun daftar stop SQL Server 2014 yang sesuai.

Setelah memutakhirkan dari SQL Server 2005:

  • Jika Anda tidak pernah menambahkan, memodifikasi, atau menghapus file kata kebisingan apa pun dalam penginstalan SQL Server 2005, daftar henti sistem harus memenuhi kebutuhan Anda.

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

  • Jika Anda tidak ingin menerapkan kata henti apa pun ke indeks teks lengkap Anda (misalnya, jika Anda menghapus atau menghapus file kata kebisingan di penginstalan SQL Server 2005), 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.

Katalog Full-Text Cadangan dan Yang Diimpor

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 pada SQL Server 2014, Anda harus mengidentifikasi setiap grup file yang berisi indeks teks lengkap katalog dan mencadangkannya satu per satu. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Katalog dan Indeks Full-Text.

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

Memigrasikan Indeks Full-Text Saat Memutakhirkan Database ke SQL Server 2014

File database dan katalog teks lengkap dari versi SQL Server sebelumnya dapat ditingkatkan ke instans server SQL Server 2014 yang sudah ada dengan menggunakan lampirkan, pulihkan, atau Wizard Salin Database. SQL Server indeks teks lengkap 2005, jika ada, diimpor, direset, atau dibangun kembali. Properti server upgrade_option mengontrol opsi peningkatan teks lengkap mana yang digunakan instans server selama peningkatan database ini.

Setelah Anda melampirkan, memulihkan, atau menyalin database SQL Server 2005 apa pun ke SQL Server 2014, 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 Full-Text SQL Server 2005 ke SQL Server 2014

Salah satu metode peningkatan data teks lengkap dari database SQL Server 2005 ke SQL Server 2014 adalah memulihkan cadangan database lengkap ke SQL Server 2014.

Saat mengimpor katalog teks lengkap SQL Server 2005, Anda dapat mencadangkan dan memulihkan database dan file katalog. Perilakunya sama seperti pada SQL Server 2005:

  • Pencadangan database lengkap akan menyertakan katalog teks lengkap. Untuk merujuk ke katalog teks lengkap, gunakan nama file SQL Server 2005, sysft_+katalog-nama.

  • Jika katalog teks lengkap offline, pencadangan akan gagal.

Untuk informasi selengkapnya tentang mencadangkan dan memulihkan katalog teks lengkap SQL Server 2005, lihat Mencadangkan dan Memulihkan Katalog Full-Text dan Pencadangan dan Pemulihan File dan Katalog Full-Textdi Buku SQL Server 2005 Online.

Ketika database dipulihkan pada SQL Server 2014, file database baru akan dibuat untuk katalog teks lengkap. Nama default file ini adalah ftrow_catalog-name.ndf. Misalnya, jika Nama katalog Anda adalah cat1, nama default file database SQL Server 2014 adalah ftrow_cat1.ndf. Tetapi jika nama default sudah digunakan dalam direktori target, file database baru akan diberi nama ftrow_{katalogGUID}.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 bernama ftdb1. File database, log, dan katalog SQL Server 2005 dipindahkan ke lokasi baru pada instans server SQL Server 2014, sebagai berikut:

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

  • File log, ftdb1_log.ldf, dipindahkan ke direktori log di 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 tersebut 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 ke SQL Server 2014

Pada SQL Server 2008 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 yang berisi file katalog teks lengkap ke instans server SQL Server 2014, file katalog dilampirkan dari lokasi sebelumnya bersama dengan file database lainnya, sama seperti pada SQL Server 2005.

Status setiap katalog teks lengkap yang dilampirkan pada SQL Server 2014 sama seperti ketika database dilepas dari SQL Server 2005. Jika ada populasi indeks teks lengkap yang ditangguhkan oleh operasi pencopotan, populasi dilanjutkan pada SQL Server 2014, dan indeks teks lengkap tersedia untuk pencarian teks lengkap.

Jika SQL Server 2014 tidak dapat menemukan file katalog teks lengkap atau jika file teks lengkap dipindahkan selama operasi lampirkan tanpa menentukan lokasi baru, perilaku bergantung 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).

Lihat juga

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