Elasticsearch (search engine) là gì?

Elasticsearch là search engine (lõi/máy tìm kiếm) dựa trên Lucene. Nó cung cấp khả năng full-text search với giao thức http và dữ liệu JSON. Elasticsearch được phát triển trên Java và là mã mở. Elasticsearch là search engine doanh nghiệp phổ biến nhất, tiếp theo là Apache Solr (cũng dựa trên Lucene)

Elasticsearch có thể tìm kiếm tất cả các dữ liệu. Nó cung cấp khả năng search mở rộng, gần như tức thì, và hỗ trợ đã lưu trữ (multitenancy). Elasticsearch được phân chia, có nghĩa là chỉ số có thể chia thành những đoạn (shard) và mỗi đoạn có hoặc không có một hoặc nhiều bản sao. Mỗi nút (node) tổ chức một hoặc nhiều đoạn và hoạt động điều phối để các hoạt động đúng với các đoạn cần thiết. Cân bằng tải và định tuyết được hoạt động tự động.

Elasticsearch dùng Lucene và cố gắng phát huy hết tính năng thông qua JSON và Java API. Nó hỗ trợ facetting (mài) và percolating (thấm) có thể hữu ích cho thông báo nếu dữ liệu phù hợp với các truy vấn đăng ký (registered queries).

Một tính năng khác được gọi là gateway (cổng vào) và xử lý sự tồn tại lâu dài của chỉ số (index). Ví dụ, index số có thể được khôi phục từ gateway trong trường hợp máy chủ bị hỏng hóc. Elasticsearch hỗ trợ các yêu cầu GET thời gian thực, khiến nó phù hợp như một nơi lưu trữ NoSQL, nhưng nó thiếu các giao dịch phân tán (distributed transactions)

Ví dụ về Mô hình Elasticsearch với SQL Server

new-diagram

Ví dụ: đồng bộ dữ liệu giữa ElasticSearch và cơ sở dữ liệu gốc, mô hình truy xuất dữ liệu từ web/api server

elasticsearch-feeder

Tham khảo:

https://en.wikipedia.org/wiki/Elasticsearch#Overview

Đọc thêm về Elasticsearch:

https://www.elastic.co/products/elasticsearch

ElasticSearch Reference Guide

ElasticSearch Definitive Guide

1 thought on “Elasticsearch (search engine) là gì?”

Leave a Reply

Your email address will not be published. Required fields are marked *