Sự khác biệt giữa Truy vấn mờ và Truy vấn khớp là gì?

Su Khac Biet Giua Truy Van Mo Va Truy Van Khop La Gi



Elaticsearch là một công cụ tìm kiếm và cơ sở dữ liệu phân tán, miễn phí, mã nguồn mở, nổi tiếng, được sử dụng để quản lý nhiều loại dữ liệu khác nhau. Nó hoàn toàn là một cơ sở dữ liệu NoSQL và hoạt động khác với cơ sở dữ liệu quan hệ và SQL thông thường. Elaticsearch sử dụng DSL truy vấn ((Ngôn ngữ cụ thể của miền) và API REST để quản lý và phân tích dữ liệu. Các loại truy vấn khác nhau tồn tại trong Elaticsearch như truy vấn mờ, truy vấn khớp, truy vấn ký tự đại diện, truy vấn tiền tố, v.v. Các truy vấn này hoạt động khác nhau từ nhau.

Bài đăng này chứng minh trên:

Truy vấn 'mờ' là gì?

Các ' mờ ” truy vấn là DSL truy vấn thực hiện các hoạt động tìm kiếm khác như thay đổi ký tự, chèn ký tự hoặc xóa ký tự dựa trên “ Levenshtein chỉnh sửa khoảng cách ' khoảng cách. Nó thường tìm thấy sự khác biệt giữa các cụm từ và trả về kết quả trong một tài liệu gần hơn hoặc gần giống với cụm từ được tìm kiếm.







Truy vấn “khớp” là gì?

Các ' cuộc thi đấu ” truy vấn là một loại DSL truy vấn khác được sử dụng để khớp hoặc tìm kiếm dữ liệu nhất định như chuỗi, số hoặc văn bản. Nó là một ' toàn văn ” dựa trên truy vấn và thực hiện tìm kiếm toàn văn bản và trả về kết quả khớp chính xác với cụm từ được tìm kiếm. Nếu cụm từ không khớp với cụm từ tìm kiếm, nó sẽ trả về chuỗi rỗng hoặc sai.



Sự khác biệt giữa truy vấn “mờ” và “khớp”

Cả hai ' mờ ' Và ' cuộc thi đấu ” truy vấn được sử dụng cho mục đích tìm kiếm. Sự khác biệt chính giữa hai truy vấn này là truy vấn “mờ” thực hiện tìm kiếm mờ và trả về kết quả tương tự hoặc gần với cụm từ được tìm kiếm. Ngược lại, truy vấn “khớp” trả về kết quả khớp chính xác với cụm từ tìm kiếm.



Để hiểu rõ hơn, hãy làm theo các ví dụ được cung cấp dưới đây:





Ví dụ 1: Tìm kiếm mờ sử dụng truy vấn “mờ”

Giả sử người dùng muốn tìm tài liệu có “ chỉ định ” giá trị như “ Tác giả ”. Hãy thực hiện tìm kiếm để tìm thấy kết quả phù hợp hơn. Để làm như vậy, hãy sử dụng “ mờ ” truy vấn để tìm kiếm tài liệu có “ chỉ định ” giá trị bằng hoặc gần hơn với “ tác giả ”:

NHẬN linuxhint / _tìm kiếm

{

'truy vấn' : {

'mờ' : {

'Chỉ định' : 'tác giả'

}

}

}

Đầu ra bên dưới cho thấy tài liệu có id “ 1 ' có một ' chỉ định ” giá trị gần với “ tác giả ” thuật ngữ tìm kiếm:



Nhưng nếu ví dụ trên được áp dụng bởi “ cuộc thi đấu ” truy vấn, nó sẽ gửi một “ chuỗi rỗng ” vì nó trả về cụm từ khớp chính xác.

Ví dụ 2: Tìm kiếm mờ sử dụng truy vấn “Match”

Hãy lấy ví dụ tương tự và áp dụng “ cuộc thi đấu ” truy vấn để tìm tài liệu có “ chỉ định ” giá trị như “ tác giả ”:

NHẬN linuxhint / _tìm kiếm

{

'truy vấn' : {

'cuộc thi đấu' : {

'Chỉ định' : 'tác giả'

}

}

}

Đầu ra bên dưới cho thấy rằng “ cuộc thi đấu ” truy vấn không tìm thấy kết quả gần hơn và trả về “ vô giá trị ' sợi dây:

Hãy sửa đổi giá trị tìm kiếm từ “ tác giả ' ĐẾN ' Tác giả ” và chạy “ cuộc thi đấu ” truy vấn như hình dưới đây:

NHẬN linuxhint / _tìm kiếm

{

'truy vấn' : {

'cuộc thi đấu' : {

'Chỉ định' : 'Tác giả'

}

}

}

Tại đây, bạn có thể thấy “ cuộc thi đấu ” truy vấn trả về tài liệu có id “ 1 ”. Bởi vì tài liệu 1 khớp chính xác với các cụm từ được tìm kiếm:

Đó là tất cả về sự khác biệt giữa một “ mờ ” truy vấn và một “ cuộc thi đấu ' truy vấn.

Phần kết luận

Các ' mờ ” truy vấn được sử dụng để thực hiện tìm kiếm mờ và trả về kết quả gần khớp với cụm từ tìm kiếm. Tuy nhiên, “ cuộc thi đấu ” truy vấn không hỗ trợ tìm kiếm mờ và trả về kết quả khớp chính xác với cụm từ tìm kiếm. Blog này đã minh họa sự khác biệt giữa truy vấn mờ và truy vấn khớp.