Full-Text Search là gì? Sử dụng Full-Text Search trong SQL Server

Nguồn bài viết: Full-Text Search là gì? Sử dụng Full-Text Search trong SQL Server

Bạn đã bao giờ thắc mắc tại sao Google, các nền tảng thương mại điện tử như Lazada, Shopee, Alibaba lại có thể gợi ý sản phẩm ngay khi bạn nhập từ khóa? “Bí mật” đằng sau gợi ý này là Tìm kiếm toàn văn bản. Vậy, Tìm kiếm toàn văn bản là gì? Cách sử dụng Tìm kiếm Toàn văn trong SQL Server để học!

Tìm hiểu về Tìm kiếm toàn văn bản

Tìm kiếm toàn văn bản là gì?

Tìm kiếm toàn văn bản là một phương pháp / kỹ thuật giúp bạn tìm kiếm thông tin một cách tự nhiên nhất. Ngôn ngữ tìm kiếm thường là ngôn ngữ tự nhiên (ngôn ngữ bình thường của con người), được sử dụng bởi các công cụ tìm kiếm như Google, Bing hoặc các nền tảng thương mại điện tử lớn trong thời điểm hiện tại để hỗ trợ người dùng tìm kiếm thứ họ muốn.

Ví dụ, bạn tìm thấy từ khóa lưu trữ giá rẻ và Google sẽ trả về kết quả tìm kiếm đề xuất như trong hình:

full-text-search-la-gi

Tìm kiếm toàn văn bản bao gồm một hoặc nhiều cột khác nhau dựa trên các ký tự trong bảng. Các cột dữ liệu có thể thuộc các kiểu dữ liệu như: char, varchar, nchar, nvarchar, text, ntext, image, xml hoặc varbinary (max) và cả FILESTREAM.

Tại sao sử dụng Tìm kiếm toàn văn bản?

Khi học và sử dụng SQL, bạn phải rất quen thuộc với câu lệnh LIKE trong SQL Server, ví dụ:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

Trong đó, LIKE sẽ tìm kiếm thông tin giới hạn dựa trên cột được chỉ định và câu lệnh LIKE hoạt động “một cách máy móc” bằng cách khớp từng ký tự trong chuỗi. Do đó, LIKE có những điểm yếu như:

  • Độ chính xác thấp và khả năng tìm kết quả bằng tiếng Việt với các trận đấu rất tệ!
  • Tiếng ồn đầu ra rất cao
  • Tốc độ truy vấn rất chậm

Nếu bạn muốn có kết quả tốt hơn, tìm kiếm ngôn ngữ tự nhiên được cải thiện và hiệu suất tốt hơn, thì Tìm kiếm toàn văn bản sẽ là lựa chọn tốt hơn cho bạn.

Và yếu tố làm cho Full-Text Search vượt trội hơn so với các kỹ thuật tìm kiếm khác chính là Inverted Index.

full-text-search-la-gi

Chỉ số đảo ngược là gì?

Thông thường, các kỹ thuật tìm kiếm sẽ đánh chỉ mục (index) theo đơn vị hàng (tài liệu). Đối với Chỉ số Đảo ngược, nó khác.

Bạn có thể coi Inverted Index như một dạng cấu trúc dữ liệu có khả năng liên kết các thuật ngữ với nhau và các tài liệu chứa thuật ngữ đó. Đây là một ví dụ để bạn dễ hiểu hơn:

Chúng tôi sẽ tạo 3 tài liệu A1, A2A3 như sau:

  • A1 = “Đây là tài liệu đầu tiên”
  • A2 = “Đây là cái thứ hai”
  • A3 = “một hai”

Sau đó, chúng ta sẽ có mục lục ngược của 3 tài liệu trên được lưu lại như sau:

"this" => {A1, A2}
"is" => {A1, A2}
"first" => {A1}
"Document" => {A1}
"second" => {A2}
"one" => {A2, A3}
"two" => {A3}

Với phương pháp này, Tìm kiếm toàn văn bản sẽ trở nên dễ dàng hơn bao giờ hết. Ví dụ:

Bạn muốn truy vấn cụm từ Đây là lần đầu tiên, thông thường các phương pháp tìm kiếm khác sẽ quét từng chữ cái. Trong khi đó, bạn tìm kiếm trên 3 tài liệu cùng lúc, lúc này bài toán tìm kiếm sẽ trở thành toán tử liên hợp của 3 tập hợp:

Liên hợp {A1, A2} {A1, A2} liên hợp {A1} = {A1}

Vì vậy, khi bạn tìm kiếm chiếc dù, cụm từ sẽ đảo ngược: đầu tiên Đây là tốt đẹp Điều này đầu tiên là kết quả hoạt động của công đoàn không thay đổi.

Sử dụng Tìm kiếm Toàn văn trong SQL Server

Tìm hiểu cách hoạt động của Tìm kiếm toàn văn bản trong SQL Server

Khi các cột đã được lập chỉ mục, người dùng có thể sử dụng Tìm kiếm toàn văn bản theo những cách sau:

  • Một từ hoặc các từ hoặc một cụm từ cụ thể (đơn giản nhất)
  • Một hoặc một cụm từ bắt đầu bằng văn bản được chỉ định (theo tiền tố)
  • Một từ hoặc cụm từ gần giống với một từ hoặc cụm từ khác (gần giống)
  • Từ đồng nghĩa của một cụm từ nhất định. Ví dụ trong tiếng Việt có các từ đen, đen, ô, mực.

Các truy vấn không phân biệt chữ hoa chữ thường. Ví dụ: “TinoHost” và “TinoHost” sẽ được trả về trong kết quả truy vấn.

Ví dụ về Tìm kiếm Toàn văn trong SQL Server

Thiết lập cơ bản để thực hiện tìm kiếm toàn văn bản trong SQL Server

Để làm việc với Tìm kiếm toàn văn bản, bạn sẽ cần một cơ sở dữ liệu. Bạn có thể tải xuống tệp fullTextDatabase.sql của LaptrinhVB.net để thử nghiệm.

Bước 1: kiểm tra xem Tìm kiếm toàn văn bản đã được cài đặt hay chưa, hãy chạy lệnh sau trong Quản lý SQL Studio:

SELECT SERVERPROPERTY('IsFullTextInstalled')

Nếu kết quả trả về bằng 0, bạn sẽ cần Cài đặt gói Tìm kiếm toàn văn bản bằng cách cài đặt lại Máy chủ SQL.

Bước 2: sau khi bạn đã cài đặt Tìm kiếm toàn văn bản, bạn sẽ cần phải cài đặt mục lục cho dữ liệu mẫu như sau:

  • Nhấp chuột phải vào cơ sở dữ liệu mẫu => Catalog toàn văn mới.
  • Cửa sổ Danh mục toàn văn mới xuất hiện, bạn bấm vào Không nhạy cảm và chúng ta sẽ có kết quả sau:
full-text-search-la-gi

Bước 3: chỉ mục cho Toàn văn:

  • Click chuột phải Nhập bảng sẽ được lập chỉ mục trong cơ sở dữ liệu => Chỉ mục toàn văn => Xác định Chỉ mục toàn văn…
  • Các bước cài đặt khá đơn giản, bạn chỉ cần làm theo hướng dẫn của window Trình hướng dẫn lập chỉ mục toàn văn bản. Bạn có thể chọn ngôn ngữ tìm kiếm là Tiếng Việt mặc dù vậy khả năng hỗ trợ từ đồng nghĩa trong tiếng Việt vẫn chưa tốt lắm.
  • Kết quả cuối cùng chúng tôi có khi bạn hoàn thành:
full-text-search-la-gi

Câu lệnh đơn giản với Tìm kiếm toàn văn bản trong SQL Server

Ví dụ: chúng ta sẽ chạy lệnh để tìm kiếm tất cả các sản phẩm có từ chu (chữ cái, con chuột, con bò, cái trâm, chú, …), Vui lòng chạy lệnh sau để so sánh LIKE và Tìm kiếm toàn văn bản:

SELECT * FROM Product WHERE Name LIKE ‘%chu%’
SELECT * FROM Product WHERE CONTAINS (Name, ‘“*chu*”’)

Kết quả của chúng tôi sẽ như thế này:

full-text-search-la-gi

Bạn có thể thấy rằng lệnh LIKE sẽ cho kết quả như sau: chuMột, chuồ, Chucha.

Trong khi đó, với Tìm kiếm toàn văn bản, chúng tôi có: bằng chứng, chucha, chữa bệnh, hàm, từ, …

Có thể thấy, kết quả của Full-Text Search thực sự phù hợp với yêu cầu và hỗ trợ tiếng Việt có dấu tốt hơn LIKE rất nhiều!

Sau một quá trình dài tìm hiểu Full-Text Search là gì, Full Text Search trong SQL Server cũng như chúng ta đã học được cách sử dụng Full-Text Search trong SQL Server cơ bản. Hi vọng bài viết này đã giúp ích được cho các bạn trong việc tìm hiểu và học tập về Tìm kiếm toàn văn. Chúc các bạn sẽ đạt được kết quả tốt nhất trong học tập và công việc.

Nếu nội dung bài viết có sai sót, vui lòng liên hệ và góp ý để thuthuatkiemtien.com sửa chữa! Cảm ơn bạn đã đồng hành cùng thuthuatkiemtien.com.

Bài viết có sự tham khảo từ nhiều nguồn: LaptrinhVB.net, viblo.asia, Microsoft, Red-Gate và mssqltips.

Câu hỏi thường gặp về Tìm kiếm toàn văn bản

Full-Text Engine đóng vai trò gì?

Full-Text Engine có 2 vai trò, các nhiệm vụ chính cho Full-Text Search là:

  • Hỗ trợ lập chỉ mục – hỗ trợ lập chỉ mục
  • Truy vấn hỗ trợ – hỗ trợ thiết lập truy vấn

Tài liệu để tìm hiểu về Tìm kiếm toàn văn bản ở đâu?

Nếu bạn muốn tìm hiểu thêm về Full-Text Search trong SQL Server, bạn có thể tham khảo tài liệu từ Microsoft như: Dữ liệu truy vấn trong tài liệu này có rất nhiều kiến ​​thức hay và bổ ích để học!

Nếu bạn sử dụng MySQL, bạn có thể tham khảo tài liệu Hàm tìm kiếm toàn văn bản nằm trong Tài liệu Hàm và Toán tử của MySQL 8.0.

Tìm kiếm toàn văn bản được hỗ trợ như thế nào trong các dịch vụ của Microsoft?

Kể từ tháng 9 năm 2021, Tìm kiếm toàn văn bản đang được hỗ trợ đầy đủ trong tất cả các phiên bản của SQL Server. Đối với Cơ sở dữ liệu Azure SQL, Azure Synapse Analytics hoặc Kho dữ liệu song song, sẽ có những hạn chế nhất định.

Tại sao phiên bản SQL Server không hỗ trợ Tìm kiếm toàn văn bản?

Tìm kiếm toàn văn bản là một gói cài đặt tùy chọn trong Công cụ cơ sở dữ liệu SQL Server. Nếu không may bạn không chọn gói Full-Text Search khi cài đặt SQL Server, bạn có thể cài đặt lại SQL Server và chọn thêm gói Full-Text Search!

Tại sao Tìm kiếm toàn văn bản lại mạnh hơn LIKE?

Lệnh THÍCH có thể giúp bạn tìm kiếm thông tin cụ thể trong một cột, và lượng tìm kiếm của LIKE là không nhiều. Tuy nhiên, nếu bạn muốn tìm kiếm linh hoạt hơn, tốt hơn và rộng hơn, Tìm kiếm toàn văn bản là kỹ thuật / lệnh / giải pháp bạn đang tìm kiếm.

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Lầu 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, P. Bến Nghé, Q.1, TP.
    VPĐD: 42 Trần Phú, P.4, Q.5, TP.HCM
  • Điện thoại: 0364 333 333
    Tổng đài miễn cước: 1800 6734
  • Email: sales@tino.org
  • Trang web: www.tino.org

Xem thêm nhiều bài viết về : Kiến Thức Cơ Bản

Bản quyền thuộc: thuthuatkiemtien.com



from thuthuatkiemtien.com https://ift.tt/x4u5kaz
via thuthuatkiemtien.com

Nhận xét

Bài đăng phổ biến từ blog này

3 Cách để kiếm tiền từ blog WordPress

Google AdSense bỏ giới hạn số lượng quảng cáo trên mỗi trang

Toàn tập danh sách liên kết đơn trong C++