Lịch sử

Với mục đích ban đầu là xây dựng 1 ứng dụng để giúp vợ mình tìm kiếm các kiến thức liên quan đến nấu ăn,
Shay Banon đã khởi đầu dự án Compass dựa trên thư viện tìm kiếm phổ biến lúc đó là Apache Lucene.
Compass cho phép kết nối giữa domain model với Lucene, sau đó đánh dấu chỉ mục (index) và dễ dàng tìm kiếm chúng.
Dự án ngày càng phát triển nhanh, Banon quyết định open source toàn bộ và nhận được sự hưởng ứng tích cực từ cộng đồng.
Compass là khởi đầu cho sự ra đời Elasticsearch ngày nay,
và 1 điều thú vị là vợ của Shay Banon vẫn đang phải chờ đợi ứng dụng Cooking của anh hoàn thiện.

ElasticSearch có thể làm gì?

ElasticSearch (ES) có thể cho phép tìm kiếm tất cả các loại documents. Có những tính năng nổi bật như:

  • Khả năng tìm kiếm mở rộng (scalable search):
  • Tìm kiếm gần như là realtime hay còn gọi là near-realtime search
  • Có khả năng phân tích dữ liệu (Analysis data)
  • Khả năng đánh index cho dữ liệu gần như là realtime.
  • Grouping & aggregation
  • Hỗ trợ tìm kiếm mờ (fuzzy), tức là từ khoá tìm kiếm có thể bị sai lỗi chỉnh tả hoặc không đúng cú pháp thì vẫn có khả năng
    nhận về được kết quả chính xác.

Các khái niệm cơ bản

Cluster: tập hợp các node chứa tất cả các dữ liệu. Mỗi cluster được định danh bằng một unique name. Mỗi cluster có một node chính (master) được lựa chọn tự động và có thể thay thế khi gặp sự cố.

Node: nơi lưu trữ dữ liệu, tham gia vào việc đánh chỉ mục của cluster cũng như thực hiện việc tìm kiếm. Mỗi node được định danh bằng một unique name.

Index: Là một tập hợp các document.

Shard: Tập con các document của một index. Một index có thể có nhiều shard. Có hay loại shard được sử dụng là Primary Shard và Replica Shard.

Document: một JSON object với một số dữ liệu. Đây là đơn vị dữ liệu cơ bản trong Elasticsearch. Đối chiếu các khái niệm lưu trữ của Elasticsearch với một hệ quản trị cơ sở dữ liệu

Đối thủ cạnh tranh.

  • Solr: Là nền tảng mã nguồn mở của Apache cũng được xây dựng dựa trên Lucene giống như Elasticsearch. Nó có khả năng distributed indexing,
    replication, load balanced querying, automated failover and recovery. Solr đang được sử dụng bởi nhiều ông lớn như Netflix, eBay, Instagram, Amazon..

  • Splunk: từng được ví là “Google for log files”, Splunk là phần mềm đầu tiên dành cho việc phân tích log và đã từng dẫn dắt thị trường 1 thời gian dài.
    Với hướng tiếp cận khác so với ELK, Splunk vẫn là đối thủ đáng gờm của ELK trong tương lai.

  • Sphinx: So với Elasticsearch thì Sphinx không được nổi bật cho lắm về tính năng cũng như số lượng công ty sử dụng nó.
    Nhưng việc chỉ tập trung vào việc xây dựng thành 1 search engine, Sphinx vẫn có thể có nhiều đột phá.

Kết luận

Search engine đang ngày càng trở nên thông minh và phát triển mạnh mẽ. Thường nghĩ đến tìm kiếm ta thường nghĩ đến Google như một gã công nghệ lớn không có đối thủ. Nhưng với sự cải tiến không ngừng, kết hợp nhiều giải pháp thông minh liên quan đến phân tích dữ liệu lớn, elasticsearch ngày càng được biết đến nhiều và được sự đánh giá tích cực từ cộng đồng.

Liên kết ngoài: