paint-brush
So sánh tìm kiếm Meilisearch và Manticore bằng cách sử dụng các điểm chuẩn chínhtừ tác giả@snikolaev
4,274 lượt đọc
4,274 lượt đọc

So sánh tìm kiếm Meilisearch và Manticore bằng cách sử dụng các điểm chuẩn chính

từ tác giả Sergey Nikolaev10m2023/05/02
Read on Terminal Reader

dài quá đọc không nổi

Các công cụ tìm kiếm đóng một 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. 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 cung cấp sự so sánh giữa Meilisearch và Manticore Search, tập trung vào bộ tính năng và quá trình nhập dữ liệu của chúng.
featured image - So sánh tìm kiếm Meilisearch và Manticore bằng cách sử dụng các điểm chuẩn chính
Sergey Nikolaev HackerNoon profile picture
0-item
1-item

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, MeilisearchManticore 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.

Tìm kiếm toàn văn

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.

Kích thước chỉ mục và nhập dữ liệu

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ụ.


Manticore cung cấp inse thời gian thực

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ộ.

Hiệu suất tìm kiếm

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ọ.

Kiểm tra điểm chuẩn

Bộ dữ liệu nhỏ của Hacker News (Nhận xét về tin tức của Hacker)

Đ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ó đã:


  • Meilisearch31 phút
  • Thần chú 65 giây


để hoàn tất quá trình tải dữ liệu.

Hacker News Bộ dữ liệu lớn (116 triệu bình luận)

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 .

10 triệu bản ghi NGINX

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.



Tính năng So sánh Manticore Search và Meilisearch

  • đối sánh toàn văn
    • ✅ Manticore: hơn 20 toán tử toàn văn. Percolate search (tìm kiếm ngược lại).
    • ❌ Meilisearch: rất đơn giản: AND và tìm kiếm cụm từ. Không có tìm kiếm percolate.
  • Tìm kiếm liên quan
    • ✅ Manticore sử dụng các thuật toán xếp hạng cổ điển đã được thử nghiệm và chứng minh (BM25, BM15). Sự liên quan đã được chứng minh bằng điểm chuẩn. 7 trình xếp hạng tích hợp và một trình xếp hạng tùy chỉnh với hơn 20 yếu tố xếp hạng .
    • ❌ Meilisearch tuyên bố mức độ liên quan tìm kiếm tốt nhưng thiếu điểm chuẩn công khai để xác thực. 6 quy tắc xếp hạng .
  • Kho
    • ✅ Manticore: bộ lưu trữ theo hàng riêng cho tập dữ liệu nhỏ/trung bình, bộ lưu trữ cột riêng với yêu cầu RAM thấp hơn phù hợp với tập dữ liệu lớn hơn
    • ❌ Meilisearch: LMDB với tất cả các ưu điểm, nhược điểm và hậu quả của nó: ví dụ: yêu cầu bộ nhớ ảo 205 GB cho tập dữ liệu 9,1 MB có vẻ lạ.
  • Kích thước chỉ mục và tải dữ liệu
    • ✅ Manticore cung cấp các tập dữ liệu lớn với các phương pháp lập chỉ mục theo hàng và cột. Dễ dàng đồng bộ hóa dữ liệu từ MySQL, PostgreSQL, MS SQL và bất kỳ cơ sở dữ liệu nào khác hỗ trợ ODBC, XML và CSV. Chèn, thay thế và xóa giao dịch thời gian thực thực sự. Nhật ký nhị phân. Cập nhật giá trị thuộc tính tại chỗ.
    • ❌ Meilisearch gặp khó khăn với các bộ dữ liệu lớn hơn và bị suy giảm hiệu suất trong quá trình tải tài liệu. Bạn có thể tải lên CSV và JSON. Chỉ bổ sung không đồng bộ các tài liệu. Không có cập nhật tại chỗ.
  • Lược đồ
    • ✅ Manticore: Lược đồ tự động. ID tự động. Tất cả các thuộc tính đều có thể lọc, có thể sắp xếp và có thể nhóm theo mặc định.
    • ❌ Meilisearch: Lược đồ tự động. ID có thể được chọn tự động từ tài liệu. Theo mặc định, tất cả các trường đều có thể tìm kiếm toàn văn nhưng các thuộc tính không thể lọc hoặc sắp xếp được. Bạn phải quyết định lược đồ trước khi tải dữ liệu vào chỉ mục để tránh lập chỉ mục lại đầy đủ.
  • Hiệu suất tìm kiếm
    • ✅ Manticore vượt trội hơn Meilisearch về hiệu suất tìm kiếm.
    • ❌ Meilisearch ít phù hợp hơn cho các ứng dụng yêu cầu chức năng tìm kiếm nhanh và có thể mở rộng.
  • Tính khả dụng cao
    • ✅ Manticore: sao chép, bảng phân tán hỗ trợ các tác nhân từ xa bằng phản chiếu và một số chiến lược HA.
    • ❌ Meilisearch: không sao chép, không tìm kiếm phân tán, không sao chép.
  • Dung sai lỗi đánh máy
    • ✅ Meilisearch cung cấp khả năng chịu lỗi đánh máy dễ dàng hơn.
    • ❌ Manticore có thể xử lý lỗi đánh máy nhưng đòi hỏi nỗ lực cao hơn trong ứng dụng.
  • Xem trước tìm kiếm
    • ✅ Meilisearch có tính năng xem trước tìm kiếm hữu ích - giao diện người dùng tích hợp để tìm kiếm thông qua dữ liệu trong trường hợp này.
    • ❌ Manticore không có tính năng này.
  • Token hóa
    • ✅ Manticore: mã thông báo linh hoạt cao: ký tự mã thông báo, ký tự hỗn hợp, ký tự bị bỏ qua, quy tắc mã thông báo biểu thức chính quy, v.v., dạng từ, từ dừng, từ đồng nghĩa, tùy chọn để tạo plugin mã thông báo, hình thái cho các ngôn ngữ khác nhau dựa trên trình tạo gốc và từ vựng.
    • ❌ Meilisearch: bộ mã thông báo phụ thuộc vào ngôn ngữ: bộ phân đoạn Unicode cho hầu hết các ngôn ngữ, bộ mã thông báo cụ thể cho tiếng Trung, tiếng Nhật, tiếng Do Thái và tiếng Thái. từ đồng nghĩa. Ngưng từ.
  • xác thực
    • ✅ Meilisearch: xác thực tích hợp.
    • ❌ Manticore: không có xác thực tích hợp.
  • giao diện
    • ✅ Manticore: Đầu tiên là SQL, bạn có thể kết nối bằng ứng dụng khách MySQL. Giao diện HTTP JSON. Giao diện nhị phân cho thời gian phản hồi cực thấp. Ứng dụng khách cho: PHP, Python, JavaScript, Java, C#, Elixir, Golang.
    • ❌ Meilisearch: Giao diện HTTP JSON. Ứng dụng khách dành cho: JavaScript, Python, PHP, Java, Ruby, Golang, C#, Rust, Swift, Dart.
  • Trường hợp sử dụng
    • ✅ Manticore: tìm kiếm nhật ký, nền tảng thương mại điện tử, trang web giàu nội dung, ứng dụng doanh nghiệp.
    • ❌ Meilisearch: dự án quy mô nhỏ, hạn chế về dữ liệu và yêu cầu tìm kiếm.

Trường hợp sử dụng

Các trường hợp sử dụng cho Tìm kiếm Manticore

  1. Nền tảng thương mại điện tử: Manticore Search có thể quản lý hiệu quả các danh mục sản phẩm lớn, cung cấp kết quả tìm kiếm phù hợp cho khách hàng với chức năng theo khía cạnh nâng cao của nó. Điều này giúp cải thiện tỷ lệ chuyển đổi và nâng cao trải nghiệm mua sắm tổng thể, khiến nó trở thành một tính năng được tìm kiếm nhiều cho các nền tảng thương mại điện tử.
  2. Các trang web giàu nội dung: Manticore Search có thể lập chỉ mục và tìm kiếm thông qua các thư viện nội dung phong phú, chẳng hạn như các trang tin tức, blog hoặc cơ sở kiến thức. Với xếp hạng toàn văn phù hợp, nó đảm bảo người dùng tìm thấy thông tin họ cần một cách nhanh chóng và hiệu quả, góp phần tăng mức độ tương tác của người dùng.
  3. Ứng dụng doanh nghiệp: Khả năng mở rộng và khả năng tìm kiếm nâng cao của Manticore Search khiến nó trở nên lý tưởng cho các ứng dụng doanh nghiệp quy mô lớn, bao gồm hệ thống quản lý quan hệ khách hàng (CRM), hệ thống quản lý tài liệu và cổng mạng nội bộ, trong đó chức năng tìm kiếm chính xác và hiệu quả là rất quan trọng.
  4. Tìm kiếm nhật ký: Manticore Search rất tuyệt vời để tìm kiếm trong nhật ký, vì nó có thể xử lý và tìm kiếm hiệu quả thông qua các nhật ký khổng lồ. Tốc độ và hiệu suất của nó làm cho nó trở thành một lựa chọn tuyệt vời để phân tích và giám sát nhật ký.

Các trường hợp sử dụng cho Meilisearch

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.

Phần kết luận

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.