Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menerapkan Pencarian Teks Lengkap di SQL Server 2016 untuk pemula

Artikel ini berbicara tentang pencarian teks lengkap dan implementasinya untuk pemula untuk memulai.

Selain itu, pembaca akan mengetahui hal-hal penting agar pencarian teks lengkap berfungsi dengan baik.

Artikel ini juga menyoroti pentingnya menggunakan Pencarian Teks Lengkap untuk mencocokkan pola teks dan memenuhi persyaratan serupa.

Tentang Penelusuran Teks Lengkap

Mari kita pahami Pencarian Teks Lengkap dengan bantuan definisi.

Definisi Sederhana

Pencarian Teks Lengkap digunakan untuk secara optimal mencari data berbasis karakter untuk jawaban cepat.

Definisi Microsoft

Pencarian Teks Lengkap di SQL Server dan Azure SQL Database (database SQL versi cloud) memungkinkan pengguna dan aplikasi menjalankan kueri teks lengkap terhadap data berbasis karakter di tabel SQL Server.

Apa itu Kueri Teks Lengkap

Kueri Teks Lengkap adalah jenis kueri khusus yang ditulis dan dijalankan terhadap kolom dengan data tekstual untuk menemukan pola data. Dalam hal ini, Pencarian Teks Lengkap harus diaktifkan untuk kolom tersebut.

Kompatibilitas

Pencarian Teks Lengkap kompatibel dengan versi SQL Server berikut:

  1. SQL Server 2005 dan ke atas
  2. Database SQL Azure

Pencarian Teks Lengkap Versi Modern

Dalam versi SQL Server terbaru seperti SQL 2016, Pencarian Teks Lengkap tersedia untuk diinstal bersama Pencarian Semantik.

Pencarian Teks Lengkap – SQL Server Opsional

Harap diingat bahwa Pencarian Teks Lengkap tidak diinstal secara default saat Anda menginstal SQL Server. Anda harus menginstalnya secara opsional dengan menambahkan lebih banyak fitur ke instans SQL Anda saat ini menggunakan pengaturan yang awalnya Anda gunakan untuk menginstal SQL Server Anda.

Pencarian Teks Lengkap – Default Basis Data

Semua database SQL siap digunakan dengan Pencarian Teks Lengkap secara default. Tidak diperlukan instalasi lebih lanjut kecuali persyaratan sebelum menggunakan Pencarian Teks Lengkap dalam database SQL.

Sensitivitas Huruf Besar

Menurut dokumentasi Microsoft, Pencarian Teks Lengkap tidak peka huruf besar/kecil sehingga kata-kata “panel kontrol”, ”Panel kontrol”, dan “panel kontrol” diperlakukan sama.

Menyiapkan Pencarian Teks Lengkap

Seperti yang disebutkan, Anda perlu menambahkan Pencarian Teks Lengkap sebagai fitur untuk penginstalan SQL Server yang ada menggunakan file penyiapan yang sama dengan yang Anda gunakan untuk menginstal SQL Server.

Jalankan Pemasang SQL

Mulailah dengan menjalankan penginstal SQL Server. Ini memberi Anda opsi untuk memasang sebagai drive jika Anda lebih suka menjalankannya langsung dari penginstal daripada menyimpannya.

Jalankan File Pengaturan

Klik file Setup.exe untuk menjalankan penyiapan SQL Server:

Tambahkan sebagai Fitur

Segera setelah Anda menjalankan file setup, beberapa pemeriksaan awal akan dilakukan. Setelah pemeriksaan ini lulus, Anda harus memilih “tambahkan fitur ke opsi penginstalan yang ada” di bawah bilah navigasi Instalasi (bagian):

Pilih Server Anda Saat Ini

Selanjutnya, pilih server Anda saat ini/potensial yang akan Anda instal Pencarian Teks Lengkap. Dalam kasus kami, ini adalah SQL 2016:

Pilih Fitur Instance yang akan ditambahkan

Selanjutnya, pilih Teks Lengkap dan Ekstraksi Semantik untuk Pencarian fitur yang akan ditambahkan (jika Anda menambahkan fitur ini untuk versi SQL yang lebih lama, Ekstraksi Semantik mungkin tidak ditampilkan):

Harap diperhatikan, karena saya telah menambahkan fitur ini sebelum panduannya, fitur ini tampak berwarna abu-abu pada tangkapan layar. Namun bagi siapa saja yang baru pertama kali menambahkannya, maka akan aktif dan dapat diinstal dalam waktu yang tidak lama.

Periksa Status Pemasangan Pencarian Teks Lengkap

Setelah Pencarian Teks Lengkap terinstal, Anda dapat memeriksanya dengan menjalankan skrip T-SQL berikut pada database master:

-- Is Full-Text Search installed then 1 or 0

SELECT fulltextserviceproperty('IsFulltextInstalled') as [Full-Text Search]

Setelah Anda berhasil menginstal Pencarian Teks Lengkap, Anda akan melihat “1” yang berarti skrip sedang berjalan:

Mencari Kata dan Frasa menggunakan Pencarian Teks Lengkap

Sekarang, kita akan melakukan beberapa operasi pencarian dasar untuk kata dan frase menggunakan Pencarian Teks Lengkap.

Menyiapkan Contoh Basis Data

Untuk memahami penggunaan dasar Pencarian Teks Lengkap, mari siapkan database sampel yang disebut SQLDevBlogV6 sebagai berikut:

-- Create sample database (SQLDevBlogV6)

CREATE DATABASE SQLDevBlogV6;

GO





USE SQLDevBlogV6;



-- (1) Create Article table in the sample database

CREATE TABLE [dbo].[Article] (

[ArticleId] INT IDENTITY (1, 1) NOT NULL,

[Category] VARCHAR (50) NULL,

[Author] VARCHAR (50) NULL,

[Title] VARCHAR (150) NULL,

[Published] DATETIME2 (7) NULL,

[Notes] VARCHAR (400) NULL,

CONSTRAINT [PK_Article] PRIMARY KEY (ArticleId)

);



GO



-- (2) Populate the table with data

SET IDENTITY_INSERT [dbo].[Article] ON

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (1, N'Development', N'Atif', N'Introduction to T-SQL Programming ', N'2017-01-01 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (2, N'Testing', N'Peter', N'Database Unit Testing Fundamentals', N'2017-01-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (3, N'DLM', N'Sadaf', N'Database Lifecycle Management for beginners', N'2017-01-20 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (4, N'Development', N'Peter', N'Common Table Expressions (CTE)', N'2017-02-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (5, N'Testing', N'Sadaf', N'Manual Testing vs. Automated Testing', N'2017-03-20 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (6, N'Testing', N'Atif', N'Beyond Database Unit Testing', N'2017-11-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (7, N'Testing', N'Sadaf', N'Cross Database Unit Testing', N'2017-12-20 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (8, N'Development', N'Peter', N'SQLCMD - A Handy Utility for Developers', N'2018-01-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (9, N'Testing', N'Sadaf', N'Scripting and Testing Database for beginners ', N'2018-02-15 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (10, N'Development', N'Atif', N'Advanced Database Development Methods', N'2018-07-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (11, N'Testing', N'Sadaf', N'How to Write Unit Tests for your Database', N'2018-11-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (12, N'Development', N'Peter', N'Database Development using Modern Tools', N'2018-12-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (13, N'DLM', N'Atif', N'Designing, Developing and Deploying Database', N'2019-01-01 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (14, N'DLM', N'Peter', N'How to Apply Database Lifecycle Management', N'2019-02-10 00:00:00', NULL)

INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (15, N'Testing', N'Saqib', N'SQL Unit Testing Stored Procedures', N'2019-03-10 00:00:00', NULL)

SET IDENTITY_INSERT [dbo].[Article] OFF

Frasa dan Kata

Mari kita lihat lebih banyak frasa dan kata dalam konteks Pencarian Teks Lengkap. Ini akan memberi Anda gambaran yang lebih baik tentang apa yang Anda cari melalui Pencarian Teks Lengkap.

Pernyataan “Pengantar T-SQL ” adalah frasa dan “pengantar ” dan “T-SQL ” adalah kata-kata yang menarik.

Langkah-Langkah Menerapkan Pencarian Teks Lengkap di SQL Server

Pencarian Teks Lengkap diimplementasikan dengan cara berikut:

  1. Buat Katalog Teks Lengkap (untuk menyimpan indeks Teks Lengkap).
  2. Tentukan Indeks Teks Lengkap pada Tabel atau Tampilan Terindeks.
  3. Jalankan Kueri Penelusuran Teks Lengkap menggunakan CONTAINS atau FREETEXT untuk menemukan kata dan frasa.

Buat Katalog Teks Lengkap

Jadi, database sampel (SQLDevBlogV6) telah berhasil dibuat dan diisi. Membuat Katalog Teks Lengkap adalah langkah pertama untuk mengimplementasikan Pencarian Teks Lengkap.

Buka Penjelajah Objek di SQL Server, perluas Database simpul, lalu Klik SQLDevBlogV6.

Klik Penyimpanan , lalu Klik Katalog Teks Lengkap, lalu Klik Katalog Teks Lengkap Baru:

Masukkan nama katalog sebagai DevBlogCatalog, Klik Oke:

Katalog Teks Lengkap yang baru dibuat terlihat sebagai berikut:

Mendefinisikan Indeks Teks Lengkap pada Tabel

Klik Kanan pada Artikel tabel, Klik Indeks Teks Lengkap, lalu Klik Tentukan indeks Teks Lengkap seperti yang ditunjukkan di bawah ini:

Ini akan memicu Panduan Pengindeksan Teks Lengkap. Klik Berikutnya , lalu klik Berikutnya lagi setelah memastikan bahwa kunci utama tabel telah dipilih sebelumnya oleh wizard.

Pada langkah selanjutnya, pilih Judul kolom untuk kueri teks lengkap. Ini adalah kolom yang akan digunakan untuk menjalankan kueri Teks Lengkap kami:

Selanjutnya, pilih opsi default untuk mengotomatiskan pelacakan perubahan dengan memilih Otomatis opsi (kecuali jika Anda tertarik untuk memilih beberapa opsi lain) seperti yang ditunjukkan di bawah ini:

Pada langkah berikutnya, silakan pilih Katalog Teks Lengkap (DevBlogCatalog) untuk dikaitkan dengan Indeks Teks Lengkap yang Anda tentukan sebelumnya dalam panduan ini. Kemudian Klik Next setelah memilih opsi default seperti yang ditunjukkan di bawah ini:

Klik Berikutnya dan lewati langkah opsional, lalu klik Finish untuk melihat bahwa Indeks Teks Lengkap telah berhasil dibuat.

Kami sekarang dapat menjalankan kueri Teks Lengkap terhadap Judul kolom tabel Artikel berkat mengaktifkan Pencarian Teks Lengkap.

Menelusuri Pengujian kata menggunakan Kueri Teks Lengkap

Sekarang kita dapat dengan cepat mencari kata dengan menggunakan CONTAINS kata kunci (predikat) dengan menulis skrip T-SQL berikut:

-- Search for the Word Testing using Full-Text Query

SELECT * FROM dbo.Article

WHERE CONTAINS(Title,'Testing')

Hasil pencarian Pengujian kata dalam Judul kolom adalah sebagai berikut:

Harap dicatat bahwa Anda bisa mendapatkan hasil yang sama menggunakan operator Suka tanpa Pencarian Teks Lengkap. Perbedaannya adalah ketika Anda menjalankan kueri ini terhadap jutaan baris dan ini adalah saat operator LIKE kesulitan. Sementara itu, CONTAINS jauh lebih cepat menurut para ahli.

Telusuri Frasa untuk pemula menggunakan Kueri Teks Lengkap

Mari kita temukan semua artikel di mana frasa “untuk pemula” digunakan dalam judul. Ini akan membantu pemula memulai dengan cepat.

Kali ini kita menggunakan FREETEXT kata kunci (Predikat). Ini akan memberi kita semua artikel untuk pemula dengan menggunakan skrip T-SQL berikut:

-- Search for Phrase: for beginners using Full-Text Query

SELECT * FROM dbo.Article

WHERE FREETEXT(Title,'for beginners')

Outputnya adalah sebagai berikut:

Selamat, Anda telah berhasil mempelajari dasar-dasar Pencarian Teks Lengkap. Anda juga mendapatkan pengalaman langsung dalam menyiapkan dan menjalankan kueri penelusuran Teks Lengkap untuk kata dan frasa.

Tetap terhubung saat artikel mendatang menjelaskan penggunaan Pencarian Teks Lengkap lanjutan. Ini sering berguna dalam skenario analisis basis data.

Hal yang harus dilakukan

Sekarang setelah Anda dapat menyiapkan Pencarian Teks Lengkap dan menjalankan kueri Teks Lengkap, silakan coba hal-hal berikut untuk meningkatkan keterampilan Anda:

  1. Coba isi database Catatan kolom dengan memberikan informasi lebih lanjut tentang artikel. Ini harus diikuti dengan mendefinisikan Katalog Teks Lengkap dan menjalankan kueri Teks Lengkap untuk mencari kata dan frasa menggunakan kata kunci CONTAINS dan FREETEXT.
  2. Juga, cari Kata Satuan untuk mengetahui semua artikel di mana kata ini disebutkan. Ini dapat disimpan dalam kolom sebagai Pengujian Unit, Pengujian Unit, atau Pengujian Unit.
  3. Lihat database contoh di artikel ini. Siapkan Pencarian Teks Lengkap untuk tabel Produk, tentukan indeks Teks Lengkap pada kolom nama, dan tambahkan sebanyak mungkin catatan. Telusuri kata dan frasa pilihan Anda untuk menemukan produk (nama) yang diinginkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Bergabung ke baris pertama

  2. pisahkan alfa dan numerik menggunakan sql

  3. Bagaimana cara menggunakan fungsi CONCAT di SQL Server 2008 R2?

  4. Cuplikan Basis Data SQL Server -2

  5. Apa yang dimaksud dengan exec sp_reset_connection di Sql Server Profiler?