Trong bối cảnh kỹ thuật số không ngừng phát triển, các công cụ tìm kiếm đóng vai trò ngày càng quan trọng trong việc cung cấp năng lượng cho các chức năng tìm kiếm trên nhiều nền tảng khác nhau. Trong số các công cụ tìm kiếm phổ biến, Meilisearch và Manticore Search nổi bật với các dịch vụ độc đáo của chúng.
Tuy nhiên, việc chọn công cụ tìm kiếm phù hợp cho dự án của bạn đòi hỏi sự hiểu biết thấu đáo về hiệu suất, trường hợp sử dụng và giới hạn của chúng. Bài viết này nhằm mục đích cung cấp sự so sánh giữa Meilisearch và Manticore Search, tập trung vào bộ tính năng cũng như khả năng nhập dữ liệu và hiệu suất tìm kiếm của họ theo ba điểm chuẩn trong thế giới thực: 10 triệu nhật ký NGINX, bộ dữ liệu 1,1 triệu tài liệu của Hacker News và bộ dữ liệu 116 triệu tài liệu của Hacker News tất cả đều có tại DB Benchmarks . Tất cả các tập lệnh kiểm tra hiệu suất, cấu hình và bộ sưu tập dữ liệu đều có sẵn công khai và có thể tái sản xuất.
Cả Manticore và Meilisearch đều tự định vị mình là công cụ tìm kiếm toàn văn. Yếu tố chính trong các công cụ tìm kiếm toàn văn là cách chúng xếp hạng tài liệu trong quá trình tìm kiếm.
Chọn thuật toán xếp hạng tìm kiếm phù hợp là rất quan trọng để đảm bảo người dùng có thể tìm thấy thông tin họ cần một cách chính xác và dễ nhớ. Trong ngữ cảnh liên quan đến tìm kiếm toàn văn bản, điều cần thiết là phải hiểu cách các thuật toán này hoạt động và cách chúng góp phần cung cấp kết quả tìm kiếm chính xác và có ý nghĩa.
Manticore Search rất linh hoạt trong việc kiểm soát xếp hạng tìm kiếm và hiển thị hàng chục yếu tố xếp hạng; tuy nhiên, theo mặc định, nó sử dụng thuật toán BM25 cổ điển và các dẫn xuất của nó. BM25 là một thuật toán truy xuất thông tin được thiết lập tốt để tính toán mức độ liên quan của tài liệu dựa trên tần suất thuật ngữ và tần suất tài liệu nghịch đảo.
Yêu cầu kéo đang diễn ra đối với điểm chuẩn BEIR (Đánh giá và đo lường khả năng truy xuất thông tin) thể hiện cam kết của Manticore Search đối với mức độ liên quan của tìm kiếm. BEIR là một khung đánh giá đo lường hiệu suất của các hệ thống truy xuất thông tin đối với các tác vụ khác nhau, chẳng hạn như truy xuất tài liệu và trả lời câu hỏi. Kết quả của điểm chuẩn BEIR có thể được tìm thấy ở đây:
https://docs.google.com/spreadsheets/d/1_ZyYkPJ_K0st9FJBrjbZqX14nmCCPVlE_y3a_y5KkYI/edit#gid=0 .
Ngược lại, Meilisearch tuyên bố cung cấp mức độ liên quan tốt cho tìm kiếm, nhưng không có điểm chuẩn công khai nào để chứng minh khẳng định này. Theo một cuộc thảo luận trên Hacker News , người dùng Meilisearch đã đề cập đến mức độ liên quan đến tìm kiếm của nó, nhưng không có bất kỳ bằng chứng thực nghiệm nào, rất khó để so sánh hiệu suất của nó với Manticore Search một cách khách quan.
Nhìn chung, việc Manticore Search sử dụng các thuật toán xếp hạng đã được chứng minh và tham gia vào điểm chuẩn BEIR làm nổi bật cam kết cung cấp các kết quả tìm kiếm có liên quan cao, khiến nó trở thành lựa chọn đáng tin cậy cho các ứng dụng khác nhau. Mặc dù Meilisearch cũng có thể vượt trội về mức độ liên quan của tìm kiếm toàn văn, nhưng rất khó để đưa ra tuyên bố dứt khoát vì không có điểm chuẩn được thiết lập và thuật toán được sử dụng không được biết đến rộng rãi.
Manticore Search thể hiện khả năng xử lý hiệu quả các tập dữ liệu lớn (ví dụ : 1,7 tỷ tài liệu thử nghiệm đi taxi hoặc đơn giản là Craigslist.org ) thông qua việc sử dụng kho lưu trữ theo hàng và theo cột. Phương pháp cột được thiết kế đặc biệt để tăng tốc hiệu suất tìm kiếm và giảm mức tiêu thụ RAM trên các tập dữ liệu lớn. Ngược lại, bộ lưu trữ theo hàng mặc định của Manticore Search mang lại hiệu suất vượt trội trên các bộ dữ liệu vừa và nhỏ. Tính linh hoạt này làm cho Manticore Search trở thành lựa chọn lý tưởng cho nhiều ứng dụng.
Mặt khác, Meilisearch gặp khó khăn với các tập dữ liệu lớn hơn, vì chúng tôi không thể tải tập dữ liệu lớn hơn của Hacker News vào công cụ tìm kiếm ngay cả sau 2 ngày tải. Hơn nữa, Meilisearch gặp phải tình trạng suy giảm hiệu suất khi tải tài liệu. Khi tập dữ liệu tăng lên, thời gian tải từng lô tài liệu tiếp theo sẽ tăng lên. Vấn đề về hiệu suất này cho thấy rằng Meilisearch gặp sự cố với khả năng mở rộng dữ liệu và có thể là vấn đề đối với các ứng dụng yêu cầu nhập dữ liệu theo thời gian thực hoặc lập chỉ mục các bộ dữ liệu lớn. Meilisearch xử lý các bản cập nhật tài liệu trong một hàng đợi, điều này có thể dẫn đến tắc nghẽn và giảm hiệu suất theo thời gian.
Điều quan trọng cần lưu ý là các cập nhật tài liệu trong Meilisearch không được phản ánh ngay lập tức trong các truy vấn tìm kiếm. Điều này là do Meilisearch sử dụng hàng đợi tác vụ không đồng bộ để xử lý các bản cập nhật, đảm bảo hiệu suất tìm kiếm vẫn ổn định ngay cả trong các hoạt động lập chỉ mục chuyên sâu.
Khi cập nhật tài liệu, thay đổi sẽ được thêm vào hàng đợi tác vụ và được xử lý bởi công cụ trong nền. Sau khi hoàn thành nhiệm vụ, dữ liệu được cập nhật sẽ có sẵn trong kết quả tìm kiếm. Thời gian xử lý có thể khác nhau tùy thuộc vào kích thước cập nhật và tài nguyên máy chủ. Để theo dõi trạng thái nhiệm vụ, bạn có thể sử dụng API nhiệm vụ , cung cấp thông tin về tiến độ và hoàn thành nhiệm vụ.
các khả năng rt, thay thế và xóa, cho phép các thay đổi hiển thị ngay lập tức ngay khi truy vấn hoàn tất.
Tóm lại, trong khi Meilisearch cung cấp khả năng tìm kiếm nhanh và hiệu quả, hãy nhớ rằng các bản cập nhật cho tài liệu có thể không hiển thị ngay trong kết quả tìm kiếm do quá trình xử lý tác vụ không đồng bộ.
Meilisearch được biết đến với tốc độ ấn tượng, vượt trội so với Elaticsearch trong nhiều trường hợp . Tuy nhiên, hiệu suất của nó đáng chú ý nhất khi làm việc với các tập dữ liệu nhỏ. Khi kích thước tập dữ liệu tăng lên, hiệu suất của Meilisearch có thể giảm.
Manticore Search luôn mang lại hiệu suất truy vấn nhanh cho các loại truy vấn và loại tập dữ liệu khác nhau, vượt trội so với cả Meilisearch và Elaticsearch . Với các phương pháp lập chỉ mục theo hàng và cột được tối ưu hóa, Manticore đảm bảo trải nghiệm tìm kiếm phản hồi nhanh, rất quan trọng để duy trì sự tham gia của người dùng trong các ứng dụng hiệu suất cao.
Ngược lại, Meilisearch gặp khó khăn trong việc xử lý hiệu quả các tập dữ liệu lớn và bị suy giảm hiệu suất trong quá trình tải tài liệu. Do đó, Manticore là lựa chọn ưu việt cho những người không muốn lo lắng về kích thước tập dữ liệu của họ.
Điểm chuẩn bộ dữ liệu nhỏ của Hacker News, có bộ sưu tập gồm 1,1 triệu nhận xét về Hacker News được tuyển chọn với các trường số (nguồn: https://zenodo.org/record/45901/ ), làm nổi bật hiệu suất tìm kiếm cao hơn của Manticore Search so với Meilisearch. Tập dữ liệu chứa dữ liệu văn bản từ các nhận xét và trường số như upvote, dấu thời gian và ID người dùng. Bài kiểm tra điểm chuẩn liên quan đến việc chạy các truy vấn toàn văn và phân tích để đánh giá khả năng của các công cụ tìm kiếm.
Kết quả điểm chuẩn cũng có thể được xác minh thông qua liên kết này .
Thật không may, Meilisearch không có khả năng thực hiện nhiều loại truy vấn, chẳng hạn như truy vấn tổng hợp và những truy vấn có cụm từ tìm kiếm toàn văn phủ định.
Một khía cạnh thú vị của điểm chuẩn này là sự khác biệt đáng kể trong việc sử dụng dung lượng ổ đĩa giữa hai công cụ tìm kiếm:
[email protected] /perf/test_engines/tests/hn_small/manticore # du -sh idx 1.1G idx [email protected] /perf/test_engines/tests/hn_small/meilisearch # du -sh . 38G .
Meilisearch yêu cầu dung lượng đĩa gấp 34 lần để lưu trữ cùng một tập dữ liệu so với Manticore Search.
Xét về hiệu suất tải dữ liệu, nó đã:
để hoàn tất quá trình tải dữ liệu.
Thử nghiệm này liên quan đến cùng một bộ dữ liệu 1,1 triệu nhận xét Hacker News được quản lý (nguồn: https://zenodo.org/record/45901/ ), nhưng được nhân lên 100 lần, dẫn đến khoảng 116 triệu tài liệu . Điểm chuẩn bao gồm cả truy vấn toàn văn và truy vấn phân tích, làm cho nó trở thành trường hợp thử nghiệm tuyệt vời để đánh giá khả năng của công cụ tìm kiếm trên quy mô lớn hơn.
Meilisearch không thể tải dữ liệu trong 2 ngày. Hiệu suất chèn của nó bị suy giảm khi cơ sở dữ liệu phát triển. Chúng tôi đã cố gắng tối ưu hóa nó nhưng không thành công vì tất cả các lô, ngay cả khi chúng tôi cố gắng đặt chúng song song, đều đi vào một hàng đợi. Do đó, chúng tôi không thể đạt được bất kỳ cải thiện nào về tải dữ liệu cho Meilisearch. Meilisearch mất khoảng 2 ngày để tải chỉ 38% dữ liệu, dữ liệu này đã tiêu tốn hơn 850 GB dung lượng ổ đĩa. Điều này hoàn toàn trái ngược với Manticore Search, công cụ này đã lưu trữ toàn bộ tập dữ liệu bằng cách sử dụng khoảng 100 GB dung lượng ổ đĩa và mất 2 giờ 9 phút để tải bằng một lõi CPU (có thể mở rộng hầu như theo tuyến tính).
Việc Meilisearch không có khả năng xử lý toàn bộ tập dữ liệu lớn của Hacker News làm nổi bật những thách thức của nó trong việc quản lý và mở rộng quy mô với các bộ sưu tập dữ liệu phong phú hơn. Hiệu suất vượt trội của Manticore Search trong điểm chuẩn này nhấn mạnh khả năng xử lý các yêu cầu tìm kiếm quy mô lớn, khiến nó trở thành lựa chọn phù hợp hơn cho các ứng dụng có bộ sưu tập dữ liệu lớn hơn.
Vì chúng tôi không thể tải dữ liệu vào Meilisearch nên bạn có thể kiểm tra kết quả chỉ dành cho Manticore tại đây .
Thử nghiệm này dựa trên tập dữ liệu chứa 10 triệu nhật ký NGINX. Nguồn của tập dữ liệu này là Kaggle . Nhật ký máy chủ web đăng ký các sự kiện khác nhau, cung cấp thông tin chi tiết có giá trị về khách truy cập trang web, hành vi của người dùng, trình thu thập dữ liệu truy cập trang web, thông tin kinh doanh thông minh, vấn đề bảo mật, v.v. Điểm chuẩn sử dụng danh sách tuyển chọn các truy vấn điển hình mà một kỹ sư DevOps ngẫu nhiên có thể chạy.
Manticore Search và Meilisearch thể hiện sự khác biệt đáng kể trong việc sử dụng dung lượng ổ đĩa cho tập dữ liệu. Manticore Search đã sử dụng 4,4 GB dung lượng ổ đĩa, trong khi Meilisearch tiêu thụ 69 GB, gấp khoảng 15 lần so với Manticore. Mặc dù sự khác biệt ít ấn tượng hơn so với thử nghiệm tập dữ liệu nhỏ của Hacker News, nhưng nó vẫn rất đáng chú ý, đặc biệt khi xem xét tập dữ liệu Logs10m chứa ít dữ liệu văn bản hơn.
Meilisearch mất khoảng 20 phút để điền dữ liệu, trong khi Manticore hoàn thành sau 6 phút .
Bạn có thể tìm thấy so sánh chi tiết về kết quả hoạt động bằng cách sử dụng liên kết được cung cấp . Xin lưu ý rằng nhiều kết quả trống chỉ đơn giản là do Meiliesarch không thể xử lý một số loại truy vấn nhất định. Do đó, các truy vấn này đã bị bỏ qua trong quá trình đo điểm chuẩn.
Các dự án quy mô nhỏ: Bản chất nhẹ và dễ triển khai của Meilisearch khiến nó phù hợp với các dự án nhỏ với yêu cầu tìm kiếm và dữ liệu hạn chế, chẳng hạn như thương mại điện tử quy mô nhỏ, trang web cá nhân, thư mục cục bộ hoặc ứng dụng web đơn giản, nơi tải dữ liệu nhanh, các tính năng tìm kiếm nâng cao và khả năng mở rộng không phải là yếu tố quan trọng.
Khi chọn một công cụ tìm kiếm cho dự án của bạn, điều quan trọng là phải xem xét các yếu tố như mức độ liên quan của tìm kiếm, khả năng mở rộng và hiệu suất. Manticore Search nổi bật là lựa chọn ưu việt cho các ứng dụng và trường hợp sử dụng đa dạng, đảm bảo hiệu suất tìm kiếm tối ưu và mức độ liên quan bất kể kích thước tập dữ liệu. Khả năng tìm kiếm và phân tích nâng cao của nó làm cho nó trở thành lựa chọn đáng tin cậy cho các dự án yêu cầu chức năng tìm kiếm hiệu suất cao.
Meilisearch phù hợp cho các dự án nhỏ, nơi các tính năng tìm kiếm nâng cao và khả năng mở rộng không phải là yếu tố quan trọng.
Cuối cùng, sự lựa chọn giữa Manticore Search và Meilisearch sẽ phụ thuộc vào nhu cầu cụ thể của bạn và yêu cầu của dự án.
Cũng được xuất bản ở đây.