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ệuTạ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",
}];
4Vì 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",
}];
5await 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",
}];
1Bạ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ếmawait client
.db[""]
.collection[""]
.createIndex[{
"$**": "text",
}];
4Bạ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",
}];
9await client
.db[""]
.collection[""]
.createIndex[{
"$**": "text",
}];
6Bạ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",
}];
9Phầ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