Tìm kiếm toàn văn MongoDB

Bài đăng này sẽ chỉ cho bạn cách thực hiện tìm kiếm toàn văn bằng cách sử dụng

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
0 trên bộ sưu tập MongoDB. Tôi sẽ sử dụng các đoạn mã đang sử dụng
await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
0 trong các ví dụ. Đối với các thư viện máy khách khác và các lệnh trình bao
await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
1, vui lòng tham khảo tài liệu


Tạo chỉ mục văn bản#

Để tạo chỉ mục văn bản, hãy sử dụng hàm

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
2,

await client
    .db("")
    .collection("")
    .createIndex({
      name: "text",
      description: "text",
    });

Đoạn mã trên tạo một chỉ mục từ các trường

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
3 và
await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
4

Vì MongoDB có lược đồ động nên đây không phải là cách lý tưởng để tạo chỉ mục. Ngoài ra, bạn có thể sử dụng các chỉ mục Trường ký tự đại diện để tự động lập chỉ mục cho tất cả các bản ghi văn bản trong bộ sưu tập của mình

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });

GHI CHÚ. MongoDB chỉ hỗ trợ một chỉ mục văn bản cho mỗi bộ sưu tập kể từ MongoDB 3. 2

Bạn cũng có thể định cấu hình một ngôn ngữ cụ thể

await client
  .db("")
  .collection("")
  .createIndex(
   { "$**": "text", },
   { default_language: "english", }
);


Tìm kiếm trong một chỉ mục #

Sau khi tạo chỉ mục, bạn có thể tìm kiếm thông qua chỉ mục bằng hàm

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
5

await client
    .db("")
    .collection("")
    .find({
      $text: {
        $search: "",
      },
    })
    .toArray();

Theo mặc định, các kết quả tìm kiếm này không được sắp xếp theo mức độ liên quan

Để sắp xếp kết quả theo thứ tự liên quan, chúng ta cần

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
6 điểm văn bản. (tôi. e. ) thêm trường điểm văn bản vào đối tượng kết quả tìm kiếm, sau đó sắp xếp theo trường đó

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
1

Bạn cũng có thể sử dụng

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
7 và
await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
8 để duyệt qua con trỏ kết quả tìm kiếm

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
4

Bạn có thể tìm kiếm một cụm từ chính xác bằng cách gói cụm từ bên trong một

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
9

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
6

Bạn cũng có thể phủ định từ trong kết quả tìm kiếm bằng cách thêm

await client
  .db("")
  .collection("")
  .createIndex(
   { "$**": "text", },
   { default_language: "english", }
);
0 trước từ

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
8

Điều này sẽ trả về kết quả tìm kiếm không chứa từ “trò chơi”

Để sắp xếp và nhóm kết quả tìm kiếm của bạn, bạn có thể sử dụng Aggregation Pipelines ,

await client
    .db("")
    .collection("")
    .createIndex({
      "$**": "text",
    });
9


Phần kết luận#

Đó là một bọc. Chúng tôi đã đề cập đến một số tính năng tìm kiếm cơ bản mà bạn có thể sử dụng trong ứng dụng của mình

Nếu bạn muốn nâng cấp khả năng tìm kiếm của mình bằng cách sử dụng các tính năng như chịu lỗi đánh máy, tìm kiếm theo khía cạnh và tìm kiếm tức thì, bạn có thể xem xét lập chỉ mục các bản ghi MongoDB của mình thành Typesense

MongoDB có đầy đủ không

MongoDB cung cấp giải pháp tìm kiếm toàn văn bản, MongoDB Atlas Search , cho dữ liệu được lưu trữ trên MongoDB Atlas.

Làm cách nào để sử dụng tìm kiếm văn bản trong MongoDB?

Sử dụng toán tử truy vấn $text để thực hiện tìm kiếm văn bản trên bộ sưu tập có chỉ mục văn bản . $text sẽ mã hóa chuỗi tìm kiếm bằng cách sử dụng khoảng trắng và hầu hết các dấu chấm câu làm dấu phân cách và thực hiện OR logic của tất cả các mã thông báo như vậy trong chuỗi tìm kiếm.

đầy đủ là gì

Tìm kiếm toàn văn đề cập đến chức năng trong SQL Server hỗ trợ truy vấn toàn văn đối với dữ liệu dựa trên ký tự . Các loại truy vấn này có thể bao gồm các từ và cụm từ cũng như nhiều dạng của một từ hoặc cụm từ.

Làm cách nào để truy vấn một chuỗi trong MongoDB?

Trong MongoDB, chúng ta có thể sử dụng toán tử $regex để tìm truy vấn chứa chuỗi.