Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual
MongoDB cung cấp một giải pháp tìm kiếm toàn văn bản, tìm kiếm Atlas MongoDB, cho dữ liệu được lưu trữ trên Atlas MongoDB. Người dùng chạy triển khai MongoDB tự quản lý có quyền truy cập vào khả năng tìm kiếm văn bản tại chỗ.full-text search solution, MongoDB Atlas Search, for data hosted on MongoDB Atlas. Users running self-managed MongoDB deployments have access to on-premises text search capabilities.
Đối với người dùng MongoDB Atlas, tìm kiếm Atlas của MongoDB hỗ trợ lập chỉ mục văn bản chi tiết và ngôn ngữ truy vấn phong phú cho kết quả tìm kiếm nhanh, có liên quan. Để tìm hiểu thêm về các chỉ mục tìm kiếm toàn văn bản và các truy vấn $search
, hãy xem:$search
queries, see:
Atlas Các giai đoạn đường ống tổng hợp tìm kiếm
Xác định các chỉ mục tìm kiếm Atlas
Chạy các truy vấn tìm kiếm Atlas
Atlas Search cũng cung cấp các máy phân tích chung cho văn bản phân tích cú pháp cho tìm kiếm toàn văn, bao gồm hỗ trợ cho hơn 40 máy phân tích cụ thể ngôn ngữ. also offers common analyzers for parsing text for full-text search, including support for over 40 language-specific analyzers.
Đối với triển khai tại chỗ [không phải ATLAS], khả năng tìm kiếm văn bản của MongoDB hỗ trợ các hoạt động truy vấn thực hiện tìm kiếm văn bản của nội dung chuỗi. Để thực hiện tìm kiếm văn bản, MongoDB sử dụng chỉ mục văn bản và toán tử $text
.
Ghi chú
Lượt xem không hỗ trợ tìm kiếm văn bản.
Để tìm hiểu thêm về tìm kiếm văn bản để triển khai tại chỗ, xem:
Chỉ mục văn bản
Toán tử tìm kiếm văn bản
MongoDB cũng hỗ trợ tìm kiếm văn bản cho các ngôn ngữ khác nhau. Xem ngôn ngữ tìm kiếm văn bản để biết danh sách các ngôn ngữ được hỗ trợ.
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual
MongoDB hỗ trợ các hoạt động truy vấn thực hiện tìm kiếm văn bản của nội dung chuỗi. Để thực hiện tìm kiếm văn bản, MongoDB sử dụng chỉ mục văn bản và toán tử $text
.
Ghi chú
Lượt xem không hỗ trợ tìm kiếm văn bản.
Ví dụ này trình bày cách xây dựng một chỉ mục văn bản và sử dụng nó để tìm các cửa hàng cà phê, chỉ được đưa ra các trường văn bản.
Tạo bộ sưu tập stores
với các tài liệu sau:
db.stores.insert[ [ { _id: 1, name: "Java Hut", description: "Coffee and cakes" }, { _id: 2, name: "Burger Buns", description: "Gourmet hamburgers" }, { _id: 3, name: "Coffee Shop", description: "Just coffee" }, { _id: 4, name: "Clothes Clothes Clothes", description: "Discount clothing" }, { _id: 5, name: "Java Shopping", description: "Indonesian goods" } ] ]
MongoDB cung cấp các chỉ mục văn bản để hỗ trợ các truy vấn tìm kiếm văn bản trên nội dung chuỗi. Các chỉ mục
db.stores.createIndex[ { name: "text", description: "text" } ]
0 có thể bao gồm bất kỳ trường nào có giá trị là chuỗi hoặc một mảng các phần tử chuỗi.Để thực hiện các truy vấn tìm kiếm văn bản, bạn phải có chỉ mục
db.stores.createIndex[ { name: "text", description: "text" } ]
0 trên bộ sưu tập của mình. Một bộ sưu tập chỉ có thể có một chỉ mục tìm kiếm văn bản, nhưng chỉ mục đó có thể bao gồm nhiều trường.one text search index, but
that index can cover multiple fields.Ví dụ: bạn có thể chạy các phần sau trong shell
db.stores.createIndex[ { name: "text", description: "text" } ]
2 để cho phép tìm kiếm văn bản trên các trường db.stores.createIndex[ { name: "text", description: "text" } ]
3 và db.stores.createIndex[ { name: "text", description: "text" } ]
4:db.stores.createIndex[ { name: "text", description: "text" } ]
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 với 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à trình phân cách và thực hiện logic
db.stores.createIndex[ { name: "text", description: "text" } ]
7 của tất cả các mã thông báo như vậy trong chuỗi tìm kiếm.Ví dụ: bạn có thể sử dụng truy vấn sau để tìm tất cả các cửa hàng chứa bất kỳ điều khoản nào từ danh sách "cà phê", "cửa hàng" và "java":
db.stores.find[ { $text: { $search: "java coffee shop" } } ]
Bạn cũng có thể tìm kiếm các cụm từ chính xác bằng cách gói chúng trong các trích dẫn kép. Nếu chuỗi $search
bao gồm một cụm từ và các thuật ngữ riêng lẻ, tìm kiếm văn bản sẽ chỉ khớp các tài liệu bao gồm cụm từ.
Ví dụ: những điều sau đây sẽ tìm thấy tất cả các tài liệu có chứa "quán cà phê":
db.stores.find[ { $text: { $search: "\"coffee shop\"" } } ]
Để biết thêm thông tin, xem các cụm từ.
Để loại trừ một từ, bạn có thể tạo một ký tự "
db.stores.createIndex[ { name: "text", description: "text" } ]
9". Ví dụ: để tìm tất cả các cửa hàng có chứa "java" hoặc "cửa hàng" nhưng không phải "cà phê", hãy sử dụng các cửa hàng sau:db.stores.find[ { $text: { $search: "java shop -coffee" } } ]
MongoDB sẽ trả về kết quả của nó theo thứ tự chưa được phân loại theo mặc định. Tuy nhiên, các truy vấn tìm kiếm văn bản sẽ tính toán điểm liên quan cho mỗi tài liệu chỉ định mức độ một tài liệu phù hợp với truy vấn.
Để sắp xếp các kết quả theo thứ tự điểm liên quan, bạn phải chiếu rõ ràng trường
db.stores.find[ { $text: { $search: "java coffee shop" } } ]
0db.stores.find[ { $text: { $search: "java coffee shop" } } ]
1 và sắp xếp trên đó:db.stores.find[ { $text: { $search: "java coffee shop" } }, { score: { $meta: "textScore" } } ].sort[ { score: { $meta: "textScore" } } ]
Tìm kiếm văn bản cũng có sẵn trong đường ống tổng hợp.
MongoDB hỗ trợ tìm kiếm văn bản cho các ngôn ngữ khác nhau. Xem ngôn ngữ tìm kiếm văn bản để biết danh sách các ngôn ngữ được hỗ trợ.
Đối với dữ liệu được lưu trữ trên MongoDB Atlas, Atlas Search cung cấp hỗ trợ cho các ngôn ngữ bổ sung. Để xem danh sách đầy đủ các ngôn ngữ được hỗ trợ bởi Atlas Search, hãy xem các máy phân tích ngôn ngữ tìm kiếm Atlas.Atlas Search provides support for additional languages. To see the complete list of languages supported by Atlas Search, see the Atlas Search Language Analyzers.