/*Membuat lingkungan pengujian
WINXP(SP3)+SQL SERVER2005(SP3)*/
jika object_id('tb') bukan nol
jatuhkan meja tb
pergi
membuat tabel tb
(id ke dalam identitas(1,1),
judul varchar(200),
detail varchar(1000),
batasan pk_id kunci utama(id) – diperlukan saat membuat indeks teks lengkap
)
masukkan ke dalam TB
pilih 'The Rockets akan merekrut penembak pemula',' Kabarnya negosiasi kontrak antara Budinger dan Rockets telah selesai kemarin, dan Budinger akan mendapatkan kontrak yang sama dengan Taylor. Sebelumnya media mengungkap, kontrak Taylor berdurasi empat tahun dan bernilai total 10.000 dolar AS, di mana dua tahun pertama merupakan kontrak jaminan. Budinger diperkirakan akan secara resmi mengumumkan penandatanganannya untuk bergabung dengan Rockets dalam beberapa hari ke depan. '
kesatuan semua
pilih 'Weaver terungkap telah menandatangani kontrak dengan raksasa Yunani', 'Menurut Jaringan Bola Basket Internasional, mantan pemain Rockets Van Weaver telah menandatangani kontrak dengan raksasa Yunani Olympiacos. Weaver menerima kontrak dua tahun senilai $10.000. '
kesatuan semua
pilih 'Spurs menghabiskan banyak uang untuk melawan Lakers', 'Spurs telah menambahkan beberapa jenderal selama offseason musim panas ini. Pelatih kepala Greg Veach baru-baru ini mengungkapkan dalam sebuah wawancara dengan Yahoo! Sports bahwa Spurs tidak ragu untuk membayar pajak barang mewah untuk membangun gedung mewah. Formasi ini dirancang untuk melawan Lakers dan berjuang untuk kejuaraan kelima. '
kesatuan semua
pilih 'Wallace tidak pernah berpikir untuk meninggalkan Motor City', 'Ben Wallace telah setuju untuk kembali ke Detroit Pistons dan menandatangani kontrak $10.000 per tahun dengan Pistons dengan gaji minimum veteran McGraw mengungkapkan, pemain bertahan interior yang mendominasi NBA saat itu bahkan tidak pernah mempertimbangkan untuk meninggalkan Pistons. '
kesatuan semua
pilih 'Miller sangat pandai memperjuangkan cinta dan mengejar istrinya', 'Bagi "posterior" yang belum pernah melihat Reggie Miller membuat "Miller Time" bersama Pacers, bagaimana kami harus memperkenalkan mantan bintang NBA ini? Bisakah ini dimulai dengan spanduk yang ditarik oleh pesawat di atas Pantai Malibu di Los Angeles kemarin lusa? Saya khawatir tidak ada orang tua yang mau melakukan ini. '
kesatuan semua
pilih 'Yao Ming: Saya tidak memperlakukan Shanghai sebagai proyek investasi, tapi saya senang berbisnis sebagai orang baik.',' "Yao Mi" berkata: Yao Ming, yang tidak kekurangan efek periklanan, mengakuisisi Klub Bola Basket Shanghai Oriental yang berada di ambang kepunahan menunjukkan bahwa ia sangat ingin mencari nafkah untuk mantan tim induknya. '
kesatuan semua
pilih 'The Rockets kalah dari Wizards untuk mengakhiri rekor tahun ini', 'Kombinasi Yao-Mai berada dalam kondisi yang buruk dalam kampanye ini. Yao Ming mencetak rebound dan satu blok pada sebuah tembakan, dan McGrady mencetak rebound dan assist sebuah tembakan. Keduanya bekerja sama untuk mendapatkan rebound. Jamieson mencetak dua assist dan dua blok. '
Langkah 1: Aktifkan pengindeksan teks lengkap pada database
sp_fulltext_database aktifkan --Aktifkan pengindeksan teks lengkap pada database
pergi
Langkah 2: Buat katalog teks lengkap
membuat katalog teks lengkap tb_fulltext
di jalur N'D:Program FilesMicrosoft SQL Server2005MSSQL.1MSSQLFTData'
dengan accent_sensitivity =on -- membedakan aksen
otorisasi dbo;--pemilik katalog teks lengkap
Langkah 3: Buat indeks teks lengkap
membuat indeks teks lengkap di tb
(judul,detail)
indeks kunci pk_id --Tentukan kolom indeks. Untuk meningkatkan kinerja, yang terbaik adalah menggunakan indeks berkerumun
di tb_fulltext
dengan change_tracking auto -- Secara otomatis memperbarui indeks teks lengkap ketika data diubah dalam tabel terkait.
Langkah 4: Contoh kueri:
pilih * dari tb
di mana berisi((judul,detail),'Yao Ming')
Sintaks kueri:
1. Cari kata tertentu: berisi (detail, 'Yao Ming')
2. Telusuri frasa tertentu: Gunakan "" untuk mengapit frasa dalam tanda kutip ganda, berisi (detail, 'Yao Ming Shanghai')
3. Cari kata dan frasa dari beberapa kolom: berisi((judul,detail),'Yao Ming Shanghai')
4. Cari kata atau frasa yang dimulai dengan teks yang ditentukan: berisi(detail,'"Yao Ming*"')
Jika teks dan tanda bintang tidak diapit tanda kutip ganda, pencarian teks lengkap akan memperlakukan tanda bintang sebagai satu karakter. Jika pencariannya adalah untuk sebuah frase, setiap kata dalam frase tersebut dianggap sebagai awalan. berisi(detail,'"Yao Ming Shanghai*"') akan mengembalikan hasil di mana kata pertama dimulai dengan Yao Ming dan kata kedua dimulai dengan Shanghai
5. Mencari variasi kata tertentu: berisi(detail,'bentuk(infleksional,naik)')
Akan mengembalikan baris yang berisi ride, rides, riding, ridden dalam tabel
6. Mencari kata atau frasa yang dekat dengan kata atau frasa lain: berisi (detail, 'Yao Ming dekat Shanghai')
7. Kata atau frasa yang menggunakan nilai berbobot: berisi(deskripsi,'isabout(bobot kinerja(.8),bobot nyaman(.4),bobot halus(.2))')
Bobot memberikan nilai bobot antara 0,0 dan 1,0 untuk setiap kata atau frasa.
8. Gunakan beberapa kondisi pencarian: berisi(detail,'"Yao Ming" atau "Shanghai"')
berisi(detail,'"Yao Ming" dan "Shanghai"')
berisi(detail,'"Yao Ming" dan bukan "Shanghai"')
9. Anda juga dapat menggunakan variabel di dalamnya
10. Pencarian sinonim berisi(judul,'bentuk(tesaurus,pada)')
【tes】
Dalam contoh di atas, jalankan
pilih * dari tb
di mana berisi(judul,'Shanghai')
hasil:
detail judul id
6 Yao Ming: Dia tidak menganggap Shanghai sebagai proyek investasi. Dia senang menjadi pengusaha yang baik dan menjadi orang baik. "Yao Mi" berkata: Yao Ming, yang tidak kekurangan efek periklanan, mengakuisisi Shanghai Oriental Klub Bola Basket yang berada di ambang kepunahan, yang menunjukkan bahwa ia sangat ingin melakukan sesuatu untuk urusan mantan tim induknya.
Tapi jalankan:
pilih * dari tb
di mana berisi(judul,'上')
Hasilnya adalah himpunan kosong.
Alasan: Saat melakukan kueri indeks teks lengkap, "上" adalah kata interferensi dalam bahasa Cina Sederhana, artinya, kata tersebut akan diabaikan selama kueri; selain itu, saat membuat indeks teks lengkap, frasa biasanya digunakan sebagai item indeks, bukan satu kata.
Jika Anda ingin melakukan kueri ini lagi dan ingin mengetahui hasil kueri pertama, Anda bisa memodifikasi tesaurus indeks teks lengkap.
Jalur di mana file kata-kata derau dan sinonim ada:
D:Program FilesMicrosoft SQL Server2005MSSQL.1MSSQLFTData.
Berikut adalah pengenalan singkat tentang cara memodifikasi tesaurus:
1. Gunakan Notepad untuk membuka tschs.xml, yang merupakan perpustakaan sinonim untuk Bahasa Cina Sederhana
<XML ID="Tesaurus Pencarian Microsoft">
<!-- Berkomentar
<tesaurus xmlns="x-schema:tsSchema.xml">
<diakritik_sensitif>0</diakritik_sensitif>
<ekspansi>
<sub>Internet Penjelajah</sub>
<sub>YA</sub>
<sub>IE5</sub>
</ekspansi>
<penggantian>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>Windows 2000</sub>
</penggantian>
<ekspansi>
<sub>jalankan</sub>
<sub>joging</sub>
</ekspansi>
</tesaurus>
-->
</XML>
menjelaskan:
<penggantian>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>Windows 2000</sub>
</penggantian>
adalah kata pengganti, yaitu ketika query W2K akan otomatis digantikan oleh Windows 2000 untuk query.
<ekspansi>
<sub>jalankan</sub>
<sub>joging</sub>
</ekspansi>
Ini adalah perpustakaan sinonim, yaitu, ketika menjalankan kueri, jog juga akan dicari.
Dalam contoh ini tambahkan:
<ekspansi>
<sub>Naik</sub>
<sub>Shanghai</sub>
</ekspansi>
2. Hapus baris komentar mulai dari akhir:
<!-- Berkomentar
-->
3. Hasil akhirnya adalah:
<XML ID="Tesaurus Pencarian Microsoft">
<tesaurus xmlns="x-schema:tsSchema.xml">
<diakritik_sensitif>0</diakritik_sensitif>
<ekspansi>
<sub>Internet Penjelajah</sub>
<sub>YA</sub>
<sub>IE5</sub>
</ekspansi>
<penggantian>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>Windows 2000</sub>
</penggantian>
<ekspansi>
<sub>jalankan</sub>
<sub>joging</sub>
</ekspansi>
<ekspansi>
<sub>Naik</sub>
<sub>Shanghai</sub>
</ekspansi>
</tesaurus>
</XML>
3. Jalankan pernyataan kueri:
pilih * dari tb
di mana berisi(judul,'bentuk(tesaurus,pada)')
Anda dapat melihat bahwa hasil kueri sama dengan berisi(judul,'Shanghai')