0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Hướng dẫn thiết lập Full Text Search với MongoDB trong dự án NestJS - Phần 12

Đăng vào 3 ngày trước

• 2 phút đọc

Giới thiệu

Chào các bạn! Trong bài viết này, chúng ta sẽ tiếp tục series NestJS thực chiến và khám phá khái niệm Full Text Search (FTS) trong MongoDB, một công cụ vô cùng hữu ích cho việc tìm kiếm tài liệu chính xác hơn dựa trên nội dung.

Khái niệm Full Text Search

Full Text Search là một phương pháp tìm kiếm mạnh mẽ, giúp tìm kiếm thông tin không chỉ dựa vào từ khóa mà còn dựa vào nội dung của tài liệu. Điều này đặc biệt quan trọng trong các dự án yêu cầu kết quả tìm kiếm chính xác và đầy đủ.

Vấn đề trong tìm kiếm thông thường

Khi tìm kiếm đơn giản, người dùng thường gặp phải vấn đề như:

  • Kết quả không chính xác, khi chỉ tìm kiếm bằng từ khóa cụ thể.
  • Tìm kiếm bằng cách sử dụng substring có thể đưa ra những tài liệu không mong muốn như tìm kiếm với từ khóa "John" có thể trả về tài liệu chứa từ "Johnathan" hay "Johnny".

Để khắc phục những vấn đề này, chúng ta có thể áp dụng FTS để giúp tìm kiếm thông tin hiệu quả và chính xác hơn.

Thiết lập và cài đặt

1. Cài đặt cơ bản

Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt MongoDB và tạo một collection với một số bản ghi để kiểm tra chức năng FTS:

javascript Copy
db.users.insertMany([
   { name: 'John Doe', address: '3817 Chardonnay Drive, Westport, Washington' },
   { name: 'John Wick', address: '1161 Stoney Lonesome Road, Williamsport, Pennsylvania' },
   { name: 'Johnathan Nguyen', address: '692 Bloomfield Way, Portland, Maine' },
   { name: 'Johnny Depp', address: '1347 Boone Street, Corpus Christi, Texas' }
])

2. Tạo Text Index

Để sử dụng FTS, bạn cần tạo Text Index:

javascript Copy
db.users.createIndex({ name: 'text' })

Khi đã có Text Index, bạn có thể tìm kiếm tài liệu bằng cú pháp sau:

javascript Copy
db.users.find({ $text: { $search: 'John' } })

Các tính năng chính của Full Text Search

  • Tìm kiếm cụm từ: Sử dụng dấu nháy kép để tìm kiếm chính xác một cụm từ.
  • Loại trừ từ khóa: Thêm dấu - trước một từ để loại trừ nó khỏi kết quả.

Cách thức hoạt động của FTS

FTS hoạt động bằng cách sử dụng chỉ mục đã được xây dựng trước, từ đó giúp tăng tốc độ tìm kiếm. Khi thực hiện truy vấn, MongoDB sẽ tham chiếu đến các tài liệu trong chỉ mục thay vì quét từng tài liệu một.

Kết luận

Thông qua bài viết, hy vọng bạn đã hiểu rõ hơn về cách thiết lập và sử dụng Full Text Search trong MongoDB cho dự án NestJS của mình. Nếu bạn cần tìm hiểu sâu hơn về các vấn đề liên quan đến tìm kiếm, hãy theo dõi các bài viết tiếp theo của mình!

Tài liệu tham khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào