Truy vấn bản đồ mongodb

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 để 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ữ. cũng cung cấp máy phân tích để phân tích văn bản cho tìm kiếm toàn văn , bao gồm hỗ trợ cho hơn 40 máy phân tích ngôn ngữ cụ thể

Đố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 chuỗi nội dung. Để 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ỗ, hãy 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ìm kiếm toàn văn bản đề cập đến việc tìm kiếm một số văn bản bên trong dữ liệu văn bản mở rộng được lưu trữ bằng điện tử và kết quả trả về có chứa một số hoặc tất cả các từ truy vấn. Ngược lại, hệ thống tìm kiếm truyền thống sẽ trả về các cuộc đấu tranh chính xác

Trong khi cơ sở dữ liệu truyền thống là tuyệt vời để lưu trữ và truy xuất dữ liệu chung, việc thực hiện các tìm kiếm toàn văn đã là một chuẩn mực. Thông thường, cần có công cụ bổ sung để đạt được điều này

Trong bài viết này, bạn sẽ tìm hiểu cách tìm kiếm toàn văn là gì, cách thức hoạt động và cách thực hiện nó trong MongoDB

Ví dụ search toàn văn

Tìm kiếm toàn văn có thể có nhiều cách sử dụng khác nhau, ví dụ: tìm kiếm một món ăn trên thực đơn nhà hàng hoặc tìm kiếm một tính năng cụ thể trong mô tả của một mặt hàng trên trang web thương mại điện tử. Ngoài việc tìm kiếm các từ khóa cụ thể, bạn có thể tăng cường tìm kiếm toàn văn bằng các tính năng tìm kiếm như văn bản mờ và đồng nghĩa. Do đó, kết quả cho một từ như Pasta Pasta, sẽ trả lại không chỉ các sản phẩm như mì ống với thịt viên mà còn có thể trả lại các sản phẩm như fettuccine carbonara, bằng cách sử dụng từ đồng nghĩa hoặc thịt . Mì ống với thịt viên” nhưng cũng có thể trả về các mặt hàng như “Fettuccine Carbonara” bằng cách sử dụng từ đồng nghĩa hoặc “Bánh mì dẹt thịt xông khói và sốt pesto” bằng cách sử dụng tìm kiếm mờ

Truy vấn bản đồ mongodb

Bạn có thể tìm thấy một bản demo đầy đủ chức năng của một tìm kiếm toàn văn tương tự cho các menu mục tại http. // atlassearchnhà hàng. com/

Các loại tìm kiếm toàn văn

Tìm kiếm trên các trường văn bản có thể được thực hiện theo nhiều cách khác nhau. Đầu tiên, hệ thống tìm kiếm chuỗi tìm kiếm có thể được thực hiện trên các trường văn bản nhỏ hơn. Các phương pháp này không hiệu quả vì các tìm kiếm được thiết lập chỉ mục hiện đại nhưng yêu cầu ít tài nguyên hơn. Tìm kiếm toàn văn cung cấp nhiều tùy chọn phong phú hơn cho truy vấn nâng cao nhưng có thể phức tạp hơn để thiết lập

Search string

Chuỗi tìm kiếm tìm kiếm là thuật toán tìm kiếm các ký tự liên tiếp trong một trường văn bản lớn hơn. Những tìm kiếm tìm kiếm đó sẽ được thực hiện theo thứ tự trên mỗi ký tự và có thể tương thích với đối tượng

Một kỹ thuật khác thường được sử dụng cho chuỗi tìm kiếm là việc sử dụng các biểu thức thông thường. Những biểu thức này đại diện cho một mẫu tìm kiếm và được hỗ trợ bởi hầu hết các ngôn ngữ lập trình hiện đại

Một số thuật toán tồn tại để tăng tốc độ tìm kiếm đó nếu văn bản được tìm kiếm có ý nghĩa hơn. Thuật toán Rabin-Karp, tìm kiếm các chuỗi con phù hợp, nhanh chóng và dễ dàng thực hiện. Thuật toán Knuth-Morris-Pratt tìm kiếm tất cả các trường hợp của một ký tự phù hợp, tăng tốc độ cho nhiều trận đấu trong một chuỗi. Các kỹ thuật nâng cao khác có thể được sử dụng để thực hiện các tìm kiếm mờ

Trong cơ sở dữ liệu SQL, một tìm kiếm trên trường văn bản trong bản ghi thường được thực hiện bằng toán tử tương tự

SELECT * FROM menus WHERE item LIKE "%pasta%";

Trong MongoDB, một tìm kiếm tương tự có thể được thực hiện bằng toán tử $ regex

db.menus.find({"item": {"$regex": /pasta/i }});

Các tìm kiếm này rất dễ sử dụng và có thể hoạt động tốt trên các bộ dữ liệu nhỏ. Tuy nhiên, vì chúng tôi không sử dụng các mục tiêu theo một cách tối ưu nhất, nên chúng tôi có thể nhanh chóng trở thành một vấn đề khi bạn cần kết quả nhanh chóng cho các vấn đề xuất hiện tự động hoàn thiện, không có giới hạn

Search toàn văn

Tìm kiếm toàn văn có nghĩa là tìm kiếm một lượng lớn văn bản. Ví dụ. công cụ tìm kiếm sẽ sử dụng công cụ tìm kiếm toàn văn để tìm kiếm các từ khóa trong tất cả các trang web mà nó đã lập chỉ mục. Key key of this skill is set up index

Lập chỉ mục có thể được thực hiện theo các cách khác nhau, chẳng hạn như lập chỉ mục hàng loạt hoặc lập chỉ mục gia tăng. The number after that active as a table chú thích rộng rãi cho bất kỳ tài liệu phù hợp nào. Các kỹ thuật khác nhau sau đó có thể được sử dụng để trích xuất dữ liệu. Apache Lucene, thư viện tìm kiếm có nguồn gốc mở, sử dụng một mục đảo ngược để tìm các mục phù hợp. Trong trường hợp tìm menu tìm kiếm của chúng tôi, mỗi từ liên kết đến menu đối sánh

Kỹ thuật này nhanh hơn nhiều so với chuỗi tìm kiếm tìm kiếm cho một lượng lớn dữ liệu. Tuy nhiên, các mục này yêu cầu một số lượng không gian đĩa và có thể tiêu thụ rất nhiều tài nguyên khi được tạo ra

Quy trình lập chỉ mục tìm kiếm toàn văn bản

Chìa khoá để tìm kiếm toàn văn hiệu quả là tạo chỉ mục. Về cơ bản, quá trình tạo chỉ mục đi qua từng trường văn bản của một bộ dữ liệu. Đối với mỗi từ, nó sẽ bắt đầu bằng cách loại bỏ bất kỳ dấu hiệu nào (các dấu được đặt ở trên hoặc dưới các chữ cái, chẳng hạn như é, à và ç trong tiếng Pháp). Sau đó, dựa trên ngôn ngữ đã sử dụng, thuật toán sẽ loại bỏ các từ phụ và chỉ giữ lại các thuật ngữ. Bằng cách này, ăn uống, ăn, ăn, ăn và ăn, tất cả đều được phân loại là cùng một từ khóa ăn. Sau đó, nó thay đổi vỏ chỉ sử dụng chữ hoa hoặc chữ thường. Quá trình thiết lập chỉ mục chính được xác định bởi máy phân tích được sử dụng

Chỉ mục sau đó được tạo bằng cách thêm từng từ này với một tài liệu tham khảo về tài liệu mà nó có thể được tìm thấy trong

Explosion search toàn văn bằng SQL

Để thực hiện tìm kiếm toàn văn trong cơ sở dữ liệu SQL, bạn phải tạo một chỉ mục toàn văn trên mỗi cột bạn muốn thiết lập chỉ mục. Trong MySQL, điều này sẽ được thực hiện với từ khóa FullText

Sau đó, bạn sẽ có thể truy vấn cơ sở dữ liệu bằng cách sử dụng đối sánh và chống lại

ALTER TABLE menus ADD FULLTEXT(item);
SELECT * FROM menus WHERE MATCH(item) AGAINST("pasta");

Mặc dù chỉ số này sẽ tăng tốc độ tìm kiếm cho truy vấn của bạn, nhưng nó không cung cấp cho bạn tất cả các khả năng bổ sung mà bạn có thể mong đợi. Để sử dụng các tính năng như tìm kiếm mờ, sửa lỗi hoặc từ đồng nghĩa, bạn cần bổ sung một công cụ tìm kiếm lõi cốt lõi như Apache Lucene trên cơ sở dữ liệu của bạn

Thực hiện tìm kiếm toàn văn trong MongoDB Atlas

Triển khai một công cụ tìm kiếm toàn văn trong MongoDB Atlas chỉ là một câu hỏi khi nhấp vào một nút. Chuyển đến bất kỳ cụm từ nào và chọn tab Tìm kiếm trên mạng để làm như vậy. Từ đó, bạn có thể nhấp vào Tạo chỉ mục tìm kiếm để khởi động quy trình

Khi chỉ mục được tạo, bạn có thể sử dụng thuật toán tìm kiếm $ để thực hiện tìm kiếm toàn văn

db.menus.aggregate([
  {
    $search: {
      text: {
        query: "pasta",
        path:"item"
      }
    }
  }
]);

Tập hợp này là truy vấn đơn giản nhất mà bạn có thể sử dụng với Atlas Search. Bạn có thể xây dựng các truy vấn phong phú bao gồm dung nạp lỗi đánh máy, thuật ngữ tìm kiếm làm nổi bật, tìm kiếm từ đồng nghĩa và hơn thế nữa. Đằng sau hậu trường, Atlas Search sử dụng Apache Lucene, vì vậy bạn không phải tự mình bổ sung động cơ. Bạn có thể tìm hiểu thêm về việc tìm kiếm Atlas trên trang chính thức

Cân nhắc trước khi sử dụng tìm kiếm toàn văn

Cho dù bạn đang sử dụng cơ sở dữ liệu nào, trước khi thực hiện giải pháp tìm kiếm toàn văn, bạn sẽ phải suy nghĩ về những vấn đề này

  • Các tính năng cần thiết. Thêm một mục toàn văn vào cơ sở dữ liệu của bạn sẽ giúp bạn tối ưu hóa việc tìm kiếm văn bản. Tuy nhiên, bạn có thể cần các tính năng bổ sung như các tiêu đề xuất tự động hoàn thành, tìm kiếm từ đồng nghĩa hoặc ghi điểm tùy chỉnh cho các kết quả có liên quan

  • Sự kiện phức hợp về kiến ​​trúc. Thêm phần mềm bổ sung vào kiến ​​trúc của bạn có nghĩa là các hệ thống riêng biệt để duy trì và độ phức tạp của phần mềm bổ sung để truy vấn hai nguồn khác nhau

  • chi phí. Cho dù một giải pháp được xây dựng trong nhà hay sử dụng công cụ của bên thứ ba, sẽ có các khoản bổ sung

MongoDB Atlas Tính năng và khả năng tìm kiếm

Atlas Search là một giải pháp dễ sử dụng cho tất cả các nhu cầu tìm kiếm của bạn. Nó bao gồm một trải nghiệm của nhà phát triển tuyệt vời giúp nhóm của bạn dễ dàng đứng dậy và điều hành tất cả những điều này với chi phí thấp hơn các giải pháp khác

Đặc trưng

MongoDB Atlas Search cung cấp cho bạn tất cả các tính năng mà bạn có thể mong đợi từ một công cụ tìm kiếm hiện đại

Khả năng truy vấn phong phú

Sử dụng một loạt các thuật toán, Atlas Search có thể làm được nhiều hơn là chỉ tìm kiếm văn bản. Bạn cũng có thể tìm kiếm các điểm và ngày địa lý

Tìm kiếm mờ

The user double query error when they typing. Với Atlas Search Typo-Tolerance, bạn có thể cung cấp kết quả chính xác, ngay cả với lỗi đánh máy hoặc lỗi mô tả chính xác

Từ đồng nghĩa

Dữ liệu của bạn có thể sử dụng từ ngữ khác với những gì người dùng của bạn đang tìm kiếm. Bạn có thể sử dụng các từ đồng nghĩa để xác định danh sách các từ đồng nghĩa nhằm cung cấp kết quả phù hợp hơn cho người dùng của bạn

Ghi điểm tùy chỉnh

Nếu bạn đã quảng cáo nội dung hoặc nội dung có liên quan hơn dựa trên các biến thể khác nhau (ví dụ:. tại các thời điểm khác nhau trong năm), bạn có thể xác định điều đó trong tùy chọn tính điểm của hàm. Điểm này sẽ giúp mang lại kết quả ưu tiên đầu tiên cho kết quả tìm kiếm

Tự động hoàn thành

Cung cấp cho người dùng của bạn các tiêu đề xuất ra để làm cho trải nghiệm của họ trở nên liền mạch hơn khi họ nhập

floating point

Khi kết quả tìm kiếm quay trở lại từ cơ sở dữ liệu của bạn, hãy tự động làm nổi các từ tìm kiếm được để giúp người dùng của bạn tìm thêm bối cảnh về kết quả

Bạn có thể tìm thấy danh sách đầy đủ các tính năng của việc tìm kiếm Atlas MongoDB trong tài liệu

Sự kiện phức hợp về kiến ​​trúc

Add bổ sung các thành phần bổ sung mức độ phức tạp cho ứng dụng của bạn. Để cung cấp khả năng tìm kiếm toàn văn cho ứng dụng của bạn, bạn cần thêm một lớp để chăm sóc việc lập chỉ mục và cung cấp kết quả cho bạn

Với search Atlas MongoDB, mọi thứ đã được tích hợp vào cơ sở dữ liệu của bạn. Các nhà phát triển phần mềm không cần phải lắng nghe về nơi truy vấn;

Bằng cách loại bỏ lớp bổ sung đó, bạn đơn giản hóa phát triển phần mềm và liên kết chi phí với việc phát triển khai và duy trì các thành phần khác nhau trong kiến ​​trúc

chi phí

Phát triển một giải pháp từ đầu trở lên có thể phải chịu chi phí cao. Đây là lý do tại sao hầu hết các nhóm phát triển phần mềm sẽ đi với một giải pháp bên ngoài luồng. Tuy nhiên, ngay cả một giải pháp nguồn mở cũng có giá. Khi đánh giá các giải pháp, bạn nên xem xét chi phí duy trì phần mềm

Một chi phí đáng kể khác là chi phí liên quan đến năng suất của nhà phát triển. Sử dụng một công cụ của bên thứ ba mà các nhà phát triển không quen thuộc và đào tạo cần thiết để có thể nhanh chóng tích lũy

Sử dụng một giải pháp như MongoDB Atlas Search giúp giảm chi phí bằng cách loại bỏ mọi yêu cầu đối với bạn và nhóm của bạn để duy trì cơ sở hạ tầng cơ bản. Nó cũng giúp tăng cường công việc cho nhóm phát triển của bạn vì họ đã quen thuộc với việc sử dụng MongoDB để truy vấn dữ liệu của họ

Kết luận

Tìm kiếm toàn văn là một chủ đề phức tạp. Nó yêu cầu một chuyên môn tốt để thiết lập chính xác. Thêm các tính năng bổ sung như tìm kiếm mờ, nổi bật hoặc từ đồng nghĩa cũng có thể yêu cầu rất nhiều công việc

Sử dụng một giải pháp tổng hợp đầy đủ như tìm kiếm Atlas MongoDB giúp nhóm của bạn dễ dàng thêm các tính năng đó vào ứng dụng của bạn trong vài phút

Nếu bạn không có tài khoản MongoDB Atlas, bạn có thể đăng ký một tài khoản miễn phí ngay bây giờ. Khi bạn đã thiết lập tài khoản của mình, bạn sẽ có thể thử Tìm kiếm Atlas trong bản demo này tại Atlas Search Restaurant Finder hoặc bạn có thể tìm hiểu cách thực hiện nó bằng cách sử dụng hướng dẫn về cách xây dựng ứng dụng tìm kiếm này.

Câu hỏi thường gặp

Ví dụ search toàn văn toàn văn là gì?

Truy vấn tìm kiếm toàn văn bản là gì?

Tìm kiếm toàn văn MySQL là gì?

Tìm kiếm toàn văn hoạt động như thế nào?

Làm thế nào để bạn thực hiện một tìm kiếm toàn văn?

MongoDB could not doing full full

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 phép dữ liệu được lưu trữ trên Atlas MongoDB. , dành cho dữ liệu được lưu trữ trên MongoDB Atlas.

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

Sử dụng toán tử truy vấn văn bản $ để 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. $ Văn bản sẽ mã hóa chuỗi tìm kiếm bằng khoảng trắng và hầu hết các dấu chấm câu là dấu phân cách và thực hiện logic hoặc của tất cả các mã thông báo như vậy trong chuỗi tìm kiếm. . $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.

Làm thế nào để tôi làm đủ

Để thực hiện tìm kiếm toàn văn trong cơ sở dữ liệu SQL, bạn phải tạo một mục toàn văn trên mỗi cột bạn muốn thiết lập chỉ mục. Trong MySQL, điều này sẽ được thực hiện với từ khóa FullText. Sau đó, bạn sẽ có thể truy vấn cơ sở dữ liệu bằng cách sử dụng đối sánh và chống lại. tạo chỉ mục toàn văn trên mỗi cột bạn muốn được lập chỉ mục . Trong MySQL, điều này sẽ được thực hiện với từ khóa FULLTEXT. Sau đó, bạn sẽ có thể truy vấn cơ sở dữ liệu bằng MATCH và AGAINST.

Làm thế nào để tìm kiếm văn bản hoạt động trong MongoDB?

Tìm kiếm văn bản MongoDB sử dụng thư viện bắt nguồn quả cầu tuyết để giảm các từ thành dạng gốc dự kiến ​​(hoặc gốc) dựa trên các quy tắc ngôn ngữ chung. Thân thuật thuật toán cung cấp giảm nhanh, nhưng các ngôn ngữ có ngoại lệ (không hạn chế như các mẫu liên kết động từ không đều hoặc có mặt) có thể ảnh hưởng đến mức độ chính xác. sử dụng thư viện từ gốc Snowball để rút gọn các từ thành dạng từ gốc (hoặc từ gốc) dự kiến ​​dựa trên các quy tắc ngôn ngữ phổ biến