Hướng dẫn how does mongodb search? - mongodb tìm kiếm như thế nào?
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual Show
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à truy vấn 3, xem: 3 queries, see:
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ử 4.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:
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ợ. Sử dụng phương thức db.articles.createIndex( { subject: "text" } ) "\"ssl certificate\" authority key" db.articles.createIndex( { subject: "text" } ) Các truy vấn sau đây tìm kiếm thuật ngữ 55 và sắp xếp kết quả theo điểm giảm dần, giới hạn kết quả đối với hai tài liệu phù hợp hàng đầu: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.Các truy vấn sau đây tìm kiếm các tài liệu trong đó 21 bằng 22 và trường được lập chỉ mục 53 chứa các điều khoản 55 hoặc 62. Hoạt động cũng chỉ định thứ tự sắp xếp tăng dần 26, sau đó giảm điểm tìm kiếm văn bản: 4 operator for self-managed deployments.
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ỗ.
Để biết thêm thông tin, xem trường hợp vô cảm.
Bạn không thể sử dụng 2 nếu truy vấn bao gồm biểu thức truy vấn 4. 4 operator in aggregation, the following restrictions also apply.
Trong trường 3, chỉ định một chuỗi các từ mà toán tử 4 phân tích cú pháp và sử dụng để truy vấn chỉ mục văn bản. 4 operator parses and uses to query the text index.Toán tử 4 xử lý hầu hết các dấu chấm câu trong chuỗi dưới dạng các trình phân cách, ngoại trừ một dấu gạch nối ( 1) phủ nhận thuật ngữ hoặc một trích dẫn kép thoát ra 2 chỉ định một cụm từ. 4 operator treats most punctuation in
the string as delimiters, except a hyphen-minus ( 1) that negates term or an escaped double quotes 2 that specifies a phrase.Ghi chúTrường 3 cho biểu thức 4 khác với giai đoạn tổng hợp tìm kiếm $ do Atlas Search cung cấp. Giai đoạn tổng hợp ____33 thực hiện tìm kiếm toàn văn trên các trường được chỉ định và chỉ có sẵn trên Atlas MongoDB. 4 expression is different than the the
$search aggregation stage provided by Atlas Search. The 3 aggregation stage performs full-text search on specified fields and is only available on MongoDB Atlas.Để phù hợp với một cụm từ, trái ngược với các thuật ngữ cá nhân, gửi lại cụm từ trong trích dẫn kép thoát ( 2), như trong:Nếu chuỗi 3 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 với các tài liệu bao gồm cụm từ.Ví dụ: đã vượt qua chuỗi 3:
Toán tử 4 tìm kiếm cụm từ 0. 4 operator searches for the phrase 0.Tiền tố một từ có dấu gạch nối ( 1) phủ nhận một từ:
Toán tử 4 thêm tất cả các phủ định vào truy vấn với toán tử logic 00. 4 operator adds all
negations to the query with the logical 00 operator.Nhà điều hành 4 bỏ qua các từ dừng cụ thể về ngôn ngữ, chẳng hạn như 02 và 03 trong tiếng Anh. 4 operator ignores language-specific stop words, such as 02 and 03 in English.Đối với trường hợp không nhạy cảm và điều chỉnh các tìm kiếm văn bản không nhạy cảm, toán tử 4 khớp với từ gốc hoàn chỉnh. Vì vậy, nếu một trường tài liệu chứa từ 05, một tìm kiếm trên thuật ngữ 06 sẽ không khớp. Tuy nhiên, 05 hoặc 08 sẽ phù hợp. 4 operator matches on the complete stemmed word. So if a document field contains the word 05, a search on the term 06 will not match. However, 05 or 08 will match.Đối với tìm kiếm nhạy cảm trường hợp (nghĩa là 09), nếu gốc hậu tố chứa các chữ cái viết hoa, toán tử 4 khớp với từ chính xác.case sensitive search (i.e. 09), if the suffix stem contains uppercase letters, the 4 operator matches on the exact word.Đối với tìm kiếm nhạy cảm với diacritic (nghĩa là 11), nếu thân hậu tố chứa dấu hoặc dấu hiệu diarritic, toán tử 4 khớp với từ chính xác.diacritic sensitive search (i.e. 11), if the suffix stem contains the diacritic mark or marks, the 4 operator matches on the exact word.Toán tử 4 mặc định là sự vô cảm của trường hợp của chỉ mục văn bản: 4 operator defaults to the case insensitivity of the text index:
Để hỗ trợ tìm kiếm nhạy cảm trường hợp trong đó chỉ số 8 không nhạy cảm với trường hợp, chỉ định 09.Khi thực hiện tìm kiếm nhạy cảm trường hợp ( 09) trong đó chỉ số 8 không nhạy cảm, toán tử 4: 4 operator:
Đối với tìm kiếm nhạy cảm trường hợp (nghĩa là 09), nếu gốc hậu tố chứa các chữ cái viết hoa, toán tử 4 khớp với từ chính xác. 4 operator matches on the exact word.Đối với tìm kiếm nhạy cảm với diacritic (nghĩa là 11), nếu thân hậu tố chứa dấu hoặc dấu hiệu diarritic, toán tử 4 khớp với từ chính xác.Toán tử db.articles.insertMany( [ { _id: 1, subject: "coffee", author: "xyz", views: 50 }, { _id: 2, subject: "Coffee Shopping", author: "efg", views: 5 }, { _id: 3, subject: "Baking a cake", author: "abc", views: 90 }, { _id: 4, subject: "baking", author: "xyz", views: 100 }, { _id: 5, subject: "Café Con Leche", author: "abc", views: 200 }, { _id: 6, subject: "Сырники", author: "jkl", views: 80 }, { _id: 7, subject: "coffee and cream", author: "efg", views: 10 }, { _id: 8, subject: "Cafe con Leche", author: "xyz", views: 10 }] )4 mặc định là sự vô cảm của trường hợp của chỉ mục văn bản:Chỉ số văn bản phiên bản 3 không nhạy cảm với các ký tự Latin có hoặc không có dấu hiệu và ký tự từ bảng chữ cái không phải là Latin, chẳng hạn như bảng chữ cái Cyrillic. Xem chỉ mục văn bản để biết chi tiết.Các phiên bản trước của chỉ số 8 là trường hợp không nhạy cảm với các ký tự Latin mà không có dấu hiệu phụ; tức là cho 15. 4
operator defaults to the diacritic insensitivity of the text index:
Đầu tiên tìm kiếm chỉ số 8 cho các trường hợp không nhạy cảm và phù hợp.Sau đó, để trả về chỉ các tài liệu phù hợp với trường hợp của các thuật ngữ tìm kiếm, thao tác truy vấn 4 bao gồm một giai đoạn bổ sung để lọc các tài liệu không khớp với trường hợp được chỉ định. 4 operator has no effect with earlier versions of the 8 index.Chỉ định 09 có thể ảnh hưởng đến hiệu suất. 4 operator:
Toán tử 4 mặc định là sự vô cảm của chỉ mục văn bản:Chỉ số văn bản phiên bản 3 là không nhạy cảm. Đó là, chỉ số không phân biệt giữa các ký tự có chứa các dấu hiệu điều hòa và đối tác không được đánh dấu của chúng, chẳng hạn như 27, 28 và 29. 4 operator searches the 8 index, which is diacritic sensitive.Đối với tìm kiếm nhạy cảm diarritic, nếu thân hậu tố chứa dấu hoặc dấu hiệu Diacritic, toán tử 4 khớp với từ chính xác. 4 operator matches on the exact word.MẹoXem thêm:Toán tử 4 gán điểm cho mỗi tài liệu chứa thuật ngữ tìm kiếm trong các trường được lập chỉ mục. Điểm số đại diện cho sự liên quan của một tài liệu với một truy vấn tìm kiếm văn bản nhất định. Điểm số có thể là một phần của đặc tả phương pháp 48 cũng như một phần của biểu thức chiếu. Biểu thức 49 cung cấp thông tin về việc xử lý hoạt động 4. Xem toán tử dự đoán 6 để biết chi tiết về việc truy cập điểm để trình chiếu hoặc sắp xếp. 4 operator assigns a score to each document that contains the
search term in the indexed fields. The score represents the relevance of a document to a given text search query. The score can be part of a 48 method specification as well as part of the projection expression. The 49 expression provides information on the processing of the
4 operation. See 6 projection operator for details on accessing the score for projection or sort.Các ví dụ sau đây giả định bộ sưu tập 52 có chỉ mục văn bản phiên bản 3 trên trường 53:
Tập hợp bộ sưu tập với các tài liệu sau:
Truy vấn sau đây chỉ định chuỗi 3 của 55:
Truy vấn này trả về các tài liệu có chứa thuật ngữ 55 trong trường 53 được lập chỉ mục, hay chính xác hơn là phiên bản gốc của từ:
MẹoXem thêm: 1 search on each term and returns documents that contains any of the terms.Toán tử 4 gán điểm cho mỗi tài liệu chứa thuật ngữ tìm kiếm trong các trường được lập chỉ mục. Điểm số đại diện cho sự liên quan của một tài liệu với một truy vấn tìm kiếm văn bản nhất định. Điểm số có thể là một phần của đặc tả phương pháp 48 cũng như một phần của biểu thức chiếu. Biểu thức 49 cung cấp thông tin về việc xử lý hoạt động 4. Xem toán tử dự đoán 6 để biết chi tiết về việc truy cập điểm để trình chiếu hoặc sắp xếp.
Các ví dụ sau đây giả định bộ sưu tập 52 có chỉ mục văn bản phiên bản 3 trên trường 53:or 55 or 64 in the indexed 53 field, or more precisely, the stemmed version of these words:
MẹoTập hợp bộ sưu tập với các tài liệu sau: Truy vấn sau đây chỉ định chuỗi 3 của 55:
Truy vấn này trả về các tài liệu có chứa thuật ngữ 55 trong trường 53 được lập chỉ mục, hay chính xác hơn là phiên bản gốc của từ:Nếu chuỗi tìm kiếm là một chuỗi được chọn lọc không gian, thì toán tử 4 sẽ thực hiện tìm kiếm logic 1 trên mỗi thuật ngữ và trả về các tài liệu chứa bất kỳ điều khoản nào.MẹoXem thêm:Toán tử 4 gán điểm cho mỗi tài liệu chứa thuật ngữ tìm kiếm trong các trường được lập chỉ mục. Điểm số đại diện cho sự liên quan của một tài liệu với một truy vấn tìm kiếm văn bản nhất định. Điểm số có thể là một phần của đặc tả phương pháp 48 cũng như một phần của biểu thức chiếu. Biểu thức 49 cung cấp thông tin về việc xử lý hoạt động 4. Xem toán tử dự đoán 6 để biết chi tiết về việc truy cập điểm để trình chiếu hoặc sắp xếp. 4 operator will exclude the documents that contain those terms from the results.Các ví dụ sau đây giả định bộ sưu tập 52 có chỉ mục văn bản phiên bản 3 trên trường 53:not contain the term 71, or more precisely the stemmed version of the words: 0Tập hợp bộ sưu tập với các tài liệu sau: 1MẹoTruy vấn sau đây chỉ định chuỗi 3 của 55: 4 expression to specify a language that
determines the list of stop words and the rules for the stemmer and tokenizer for the search string.Truy vấn này trả về các tài liệu có chứa thuật ngữ 55 trong trường 53 được lập chỉ mục, hay chính xác hơn là phiên bản gốc của từ:Nếu chuỗi tìm kiếm là một chuỗi được chọn lọc không gian, thì toán tử 4 sẽ thực hiện tìm kiếm logic 1 trên mỗi thuật ngữ và trả về các tài liệu chứa bất kỳ điều khoản nào. 2Tập hợp bộ sưu tập với các tài liệu sau: 3Truy vấn sau đây chỉ định chuỗi 3 của 55: 4 expression can also accept the language by name, 77. See Text Search Languages for the supported languages.MẹoXem thêm:Truy vấn này trả về các tài liệu có chứa thuật ngữ 55 trong trường 53 được lập chỉ mục, hay chính xác hơn là phiên bản gốc của từ: 4 operator defers to the case and diacritic insensitivity of the 8 index. The version 3 8 index is diacritic insensitive and expands its case insensitivity to include the Cyrillic alphabet as well as characters with diacritics. For details, see
text Index Case Insensitivity and text Index Diacritic Insensitivity.Nếu chuỗi tìm kiếm là một chuỗi được chọn lọc không gian, thì toán tử 4 sẽ thực hiện tìm kiếm logic 1 trên mỗi thuật ngữ và trả về các tài liệu chứa bất kỳ điều khoản nào. 4Truy vấn sau đây chỉ định chuỗi 3 gồm ba thuật ngữ được phân định theo không gian, 61: 5Truy vấn này trả về các tài liệu có chứa 62 hoặc 55 hoặc 64 trong trường 53 được lập chỉ mục, hay chính xác hơn là phiên bản gốc của các từ này:MẹoĐể phù hợp với cụm từ chính xác như một thuật ngữ duy nhất, hãy thoát các trích dẫn. Các truy vấn sau đây tìm kiếm cụm từ 66: 6Truy vấn này trả về các tài liệu chứa cụm từ 66: 7Mẹo
8Truy vấn này trả về các tài liệu chứa cụm từ 66: 9Mẹo
4 operator will exclude the documents that contain those terms from the results. You can also specify case sensitivity for negated terms.Một thuật ngữ phủ định là một thuật ngữ được đặt trước một dấu hiệu trừ 1. Nếu bạn phủ nhận một thuật ngữ, toán tử 4 sẽ loại trừ các tài liệu có chứa các thuật ngữ đó khỏi kết quả.not contain the lower-case term 71, or more precisely the stemmed version of the
words: 0Ví dụ sau đây tìm kiếm các tài liệu chứa các từ 55 nhưng không chứa thuật ngữ 71 hoặc chính xác hơn là phiên bản gốc của các từ: 1MẹoTruy vấn trả về các tài liệu sau: Truy vấn sau đây thực hiện tìm kiếm văn bản nhạy cảm diarritic trên thuật ngữ 95, hay chính xác hơn là phiên bản gốc của từ: 2Truy vấn chỉ khớp với tài liệu sau: 3MẹoTùy chọn 6 cũng áp dụng cho các thuật ngữ phủ định. Một thuật ngữ phủ định là một thuật ngữ được đặt trước một dấu hiệu trừ 1. Nếu bạn phủ nhận một thuật ngữ, toán tử 4 sẽ loại trừ các tài liệu có chứa các thuật ngữ đó khỏi kết quả. 4
operator will exclude the documents that contain those terms from the results.Truy vấn sau đây thực hiện tìm kiếm văn bản nhạy cảm nhảm nhí cho tài liệu chứa thuật ngữ 99 nhưng không phải là thuật ngữ 00, hay chính xác hơn là phiên bản gốc của các từ: 4Truy vấn khớp với tài liệu sau: 5MẹoTùy chọn 6 cũng áp dụng cho các thuật ngữ phủ định. Một thuật ngữ phủ định là một thuật ngữ được đặt trước một dấu hiệu trừ 1. Nếu bạn phủ nhận một thuật ngữ, toán tử 4 sẽ loại trừ các tài liệu có chứa các thuật ngữ đó khỏi kết quả. 6Truy vấn sau đây thực hiện tìm kiếm văn bản nhạy cảm nhảm nhí cho tài liệu chứa thuật ngữ 99 nhưng không phải là thuật ngữ 00, hay chính xác hơn là phiên bản gốc của các từ: 7MẹoTùy chọn db.articles.find( { $text: { $search: "coffee" } } )6 cũng áp dụng cho các thuật ngữ phủ định. Một thuật ngữ phủ định là một thuật ngữ được đặt trước một dấu hiệu trừ db.articles.find( { $text: { $search: "\"coffee shop\"" } } )1. Nếu bạn phủ nhận một thuật ngữ, toán tử db.articles.insertMany( [ { _id: 1, subject: "coffee", author: "xyz", views: 50 }, { _id: 2, subject: "Coffee Shopping", author: "efg", views: 5 }, { _id: 3, subject: "Baking a cake", author: "abc", views: 90 }, { _id: 4, subject: "baking", author: "xyz", views: 100 }, { _id: 5, subject: "Café Con Leche", author: "abc", views: 200 }, { _id: 6, subject: "Сырники", author: "jkl", views: 80 }, { _id: 7, subject: "coffee and cream", author: "efg", views: 10 }, { _id: 8, subject: "Cafe con Leche", author: "xyz", views: 10 }] )4 sẽ loại trừ các tài liệu có chứa các thuật ngữ đó khỏi kết quả.
MẹoTùy chọn db.articles.find( { $text: { $search: "coffee" } } )6 cũng áp dụng cho các thuật ngữ phủ định. Một thuật ngữ phủ định là một thuật ngữ được đặt trước một dấu hiệu trừ db.articles.find( { $text: { $search: "\"coffee shop\"" } } )1. Nếu bạn phủ nhận một thuật ngữ, toán tử db.articles.insertMany( [ { _id: 1, subject: "coffee", author: "xyz", views: 50 }, { _id: 2, subject: "Coffee Shopping", author: "efg", views: 5 }, { _id: 3, subject: "Baking a cake", author: "abc", views: 90 }, { _id: 4, subject: "baking", author: "xyz", views: 100 }, { _id: 5, subject: "Café Con Leche", author: "abc", views: 200 }, { _id: 6, subject: "Сырники", author: "jkl", views: 80 }, { _id: 7, subject: "coffee and cream", author: "efg", views: 10 }, { _id: 8, subject: "Cafe con Leche", author: "xyz", views: 10 }] )4 sẽ loại trừ các tài liệu có chứa các thuật ngữ đó khỏi kết quả.Truy vấn sau đây thực hiện tìm kiếm văn bản nhạy cảm nhảm nhí cho tài liệu chứa thuật ngữ 99 nhưng không phải là thuật ngữ 00, hay chính xác hơn là phiên bản gốc của các từ:Truy vấn khớp với tài liệu sau: 1MẹoTùy chọn db.articles.find( { $text: { $search: "coffee" } } )6 cũng áp dụng cho các thuật ngữ phủ định. Một thuật ngữ phủ định là một thuật ngữ được đặt trước một dấu hiệu trừ db.articles.find( { $text: { $search: "\"coffee shop\"" } } )1. Nếu bạn phủ nhận một thuật ngữ, toán tử db.articles.insertMany( [ { _id: 1, subject: "coffee", author: "xyz", views: 50 }, { _id: 2, subject: "Coffee Shopping", author: "efg", views: 5 }, { _id: 3, subject: "Baking a cake", author: "abc", views: 90 }, { _id: 4, subject: "baking", author: "xyz", views: 100 }, { _id: 5, subject: "Café Con Leche", author: "abc", views: 200 }, { _id: 6, subject: "Сырники", author: "jkl", views: 80 }, { _id: 7, subject: "coffee and cream", author: "efg", views: 10 }, { _id: 8, subject: "Cafe con Leche", author: "xyz", views: 10 }] )4 sẽ loại trừ các tài liệu có chứa các thuật ngữ đó khỏi kết quả.Truy vấn sau đây thực hiện tìm kiếm văn bản nhạy cảm nhảm nhí cho tài liệu chứa thuật ngữ 99 nhưng không phải là thuật ngữ 00, hay chính xác hơn là phiên bản gốc của các từ: 2MẹoTùy chọn db.articles.find( { $text: { $search: "coffee" } } )6 cũng áp dụng cho các thuật ngữ phủ định. Một thuật ngữ phủ định là một thuật ngữ được đặt trước một dấu hiệu trừ db.articles.find( { $text: { $search: "\"coffee shop\"" } } )1. Nếu bạn phủ nhận một thuật ngữ, toán tử db.articles.insertMany( [ { _id: 1, subject: "coffee", author: "xyz", views: 50 }, { _id: 2, subject: "Coffee Shopping", author: "efg", views: 5 }, { _id: 3, subject: "Baking a cake", author: "abc", views: 90 }, { _id: 4, subject: "baking", author: "xyz", views: 100 }, { _id: 5, subject: "Café Con Leche", author: "abc", views: 200 }, { _id: 6, subject: "Сырники", author: "jkl", views: 80 }, { _id: 7, subject: "coffee and cream", author: "efg", views: 10 }, { _id: 8, subject: "Cafe con Leche", author: "xyz", views: 10 }] )4 sẽ loại trừ các tài liệu có chứa các thuật ngữ đó khỏi kết quả. |