Sự khác biệt giữa Lucene và Elaticsearch là gì


138

Tôi biết ElasticSearch được xây dựng dựa trên Apache Lucene nhưng tôi muốn biết sự khác biệt đáng kể giữa hai loại này.

Câu trả lời:


215

Lucene là một thư viện Java . Bạn có thể đưa nó vào dự án của bạn và tham khảo các chức năng của nó bằng các lệnh gọi hàm.

Elaticsearch là một máy chủ web dựa trên JSON , phân tán , được xây dựng trên Lucene. Mặc dù đó là Lucene, người đang thực hiện công việc thực tế bên dưới, Elaticsearch cung cấp cho chúng ta một lớp thuận tiện hơn Lucene. Mỗi phân đoạn được tạo ra trong Elaticsearch là một thể hiện Lucene riêng. Vì vậy, để tóm tắt

  1. Elaticsearch được xây dựng trên Lucene và cung cấp API REST dựa trên JSON để tham khảo các tính năng của Lucene.
  2. Elaticsearch cung cấp một hệ thống phân tán trên đỉnh Lucene . Một hệ thống phân tán không phải là thứ mà Lucene nhận thức được hoặc được xây dựng cho. Elaticsearch cung cấp sự trừu tượng hóa của cấu trúc phân tán.
  3. Elaticsearch cung cấp các tính năng hỗ trợ khác như nhóm luồng, hàng đợi, API giám sát nút / cụm, API giám sát dữ liệu, quản lý cụm, v.v.

1
Có sự khác biệt giữa cả hai liên quan đến DataStore không?
AlikElzin-kilaka

Còn kho dữ liệu thì sao?
Rookian

10
Không chắc chắn nếu điều này trả lời câu hỏi của bạn rất lớn DataStore, nhưng mỗi Nút Elaticsearch có chứa Shard. Một chỉ mục Elaticsearch duy nhất được trải đều trên các Nút bằng cách sử dụng Phân đoạn. Mỗi Shard giữ một phần tài liệu trong Chỉ số Elaticsearch. Mỗi một trong những mảnh vỡ này là một ví dụ của Lucene. Vì vậy, tại thư mục gốc, tất cả dữ liệu được lưu trữ trong Lucene và ElSTERearch quản lý các tương tác.
Airn5485

31

Ngoài các từ @Vineeth Mohan :

Tính sẵn sàng cao: Elaticsearch được phân phối, để nó có thể quản lý sao chép dữ liệu, có nghĩa là có nhiều bản sao dữ liệu trong cụm của bạn. Điều này cho phép tính sẵn sàng cao.

DSL truy vấn mạnh mẽ : Elaticsearch cung cấp cho chúng tôi, giao diện JSON để đọc và viết các truy vấn trên Lucene. Nhờ Elaticsearch, bạn có thể viết các truy vấn phức tạp mà không cần biết cú pháp Lucene.

Schemaless (Schema-Free): Các trường (tên, cặp giá trị) schemakhông phải được xác định trước. Khi bạn lập chỉ mục dữ liệu, elaticsearch có thể tự động tạo lược đồ khi chạy, như ma thuật.


0

Tôi sẽ trả lời từ góc độ sử dụng.

Lucene là một thư viện công cụ tìm kiếm . Bạn muốn sử dụng nó để xây dựng công cụ tìm kiếm của riêng mình: một đối thủ cạnh tranh mới của Elaticsearch hoặc Solr hoặc một cái gì đó hẹp cho trường hợp sử dụng của bạn (ví dụ: phân tích văn bản).

Elaticsearch là một công cụ tìm kiếm . Hầu hết mọi người sử dụng nó để tổng hợp nhật ký, tìm kiếm sản phẩm hoặc một biến thể của hai điều này (ví dụ: phân tích phương tiện truyền thông xã hội hoặc tìm người có liên quan cho một số tiêu chí tìm kiếm). Nó được xây dựng trên đỉnh Lucene, vì vậy nó phơi bày hầu hết (mặc dù không phải tất cả) các tính năng của nó . Nó cũng thêm rất nhiều trên đầu trang, đáng kể nhất:

  • API REST
  • truy vấn DSL
  • hệ thống phân tán (shending, nhân rộng, quản lý cụm)
  • khía cạnh / tập hợp
  • các tính năng bổ sung cho việc sử dụng phổ biến (ví dụ: xử lý nhập ) và quản lý (API để theo dõi các số liệu liên quan , sao lưu và khôi phục, v.v.)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.