Elasticsearch là gì? | Khái niệm cơ bản về Elasticsearch | TopDev

Elasticsearch là gì?

Elasticsearch là gì? – là 1 công cụ kiếm tìm dựa trên nền móng Apache Lucene. Nó phân phối 1 bộ máy kiếm tìm dạng phân tán, có toàn bộ công cụ có 1 giao diện internet HTTP có tương trợ dữ liệu JSON.

Elasticsearch được phát triển thành bằng Java và được phát hành dạng nguồn mở theo giấy phép Apache.

Chi tiết về Elasticsearch là gì? (ES)

  • Elasticsearch là 1 search engine.
  • Elasticsearch được kế thừa từ Lucene Apache
  • Elasticsearch thực chất hoặt động như 1 internet server, có khả năng kiếm tìm nhanh chóng (close to realtime) thông qua giao thức RESTful
  • Elasticsearch có khả năng phân tách và thống kê dữ liệu
  • Elasticsearch chạy trên server riêng và đồng thời giao tiếp thông qua RESTful do vậy nên nó ko phụ thuộc vào consumer viết bằng gì hay hệ thống hiện tại của bạn viết bằng gì. Nên việc tích hợp nó vào hệ thống bạn là dễ dàng, bạn chỉ cần gửi request http lên là nó trả về kết quả.
  • Elasticsearch là 1 hệ thống phân tán và có khả năng mở rộng tuyệt vời (horizontal scalability). Lắp ráp thêm node cho nó là nó tự động động auto mở rộng cho bạn.
  • Elasticsearch là 1 open supply được phát triển thành bằng Java

Những đơn vị lớn đang dùng

  • Wikimedia
  • athenahealth
  • Adobe Methods
  • Fb
  • StumbleUpon Mozilla,
  • Amadeus IT Group
  • Quora
  • Foursquare
  • Etsy
  • SoundCloud
  • GitHub
  • FDA
  • CERN
  • Stack Alternate
  • Middle for Open Science
  • Reverb
  • Netflix
  • Pixabay
  • Motili
  • Sophos
  • Slurm Workload Supervisor
Xem Thêm  Lịch sử 10 Bài 5: Những quốc gia cổ đại phương Tây – Hy Lạp và Rô-ma

Elasticsearch hoạt động như thế nào?

elasticsearch là gì

Sau khái niệm Elasticsearch là gì, thì chúng ta lại tiếp tục tìm hiểu hoạt đông của Elasticsearch, đấy là 1 server biệt lập để “dùng cho” việc kiếm tìm dữ liệu. ES sẽ chạy 1 cổng (dưới native default là 9200). Người ta cũng có thể dùng ES là DB chính nhưng thường ko ai khiến thế vì mẫu gì cũng có nhiệm vụ biệt lập của nó.

ES ko mạnh trong những thực hiện CRUD, nên thường sẽ dùng đồng thời có 1 DB chính (SQL, MySQL, MongoDB …)

Tại sao nên dùng Elasticsearch?

Tại sao bắt buộc dùng ES trong lúc kiếm tìm văn bản có thể dùng câu lệnh LIKE SQL cũng được?

Giả dụ search bằng truy vấn LIKE “%one%” thì kết quả sẽ chỉ cần chứa “one” là ra. Thí dụ: “telephone”, “zone”, “cash”, “alone” … nói chung sẽ là 1 listing kết quả ko mong muốn.

Còn search bằng ES thì gõ “one” sẽ chỉ có “one” được trả về mà thôi. Truy vấn LIKE ko thể truy vấn từ có dấu. Thí dụ: từ khoá có dấu là “có”, ví dụ truy vấn LIKE chỉ gõ “co” thì sẽ ko trả về được chính xác kết quả Về Perfomance thì ES sẽ là phải chăng hơn, truy vấn LIKE sẽ kiếm tìm đơn giản toàn văn bản ko dùng index, nghĩa là tập dữ liệu càng lớn thì kiếm tìm càng thời gian dài, trong lúc ES lại “đánh index” cho những trường được chọn để kiếm tìm.

Xem Thêm  Phân tích Chị em Thúy Kiều (17 mẫu) – Văn mẫu lớp 9

Tham khảo việc khiến RESTful API lương cao cho bạn

Những khái niệm cần biết

1. Doc trong Elasticsearch là gì?

Doc là 1 JSON object có 1 số dữ liệu. Đây là fundamental info unit trong ES. Hiểu 1 phương pháp cơ bản thì đây là đơn vị bé nhất để lưu trữ dữ liệu trong Elasticsearch.

2. Index

Index có lẽ là 1 khái niệm quá quen thuộc đối có những anh em dùng Mysql rồi. Tuy nhiên index trong ES hoàn toàn khác trong Mysql.

Trong Elasticsearch , dùng 1 cấu trúc được gọi là inverted index . Nó được thiết kế để cho phép kiếm tìm full-text search. Bí quyết thức của nó khá đơn giản, những văn bản được phân tách ra thành từng từ có nghĩa tiếp theo sẽ đk map xem thuộc văn bản nào. Lúc search tùy thuộc} thuộc vào loại search sẽ đưa ra kết quả cụ thể.

VÍ dụ : Chúng ta có 2 văn bản cụ thể như sau :

1,The short brown fox jumped over the lazy canine 2,Fast brown foxes leap over lazy canines in summer time

Để tạo ra 1 inverted index, trước hết chúng ta sẽ phân chia nội dung của từng tài liệu thành những từ biệt lập (chúng tôi gọi là phrases), tạo 1 danh sách được sắp xếp của toàn bộ phrases duy nhất, tiếp theo liệt kê tài liệu nào mà từng thuật ngữ xuất hiện. Kết quả như sau:

Time period Doc_1 Doc_2 – Fast | | X The | X | brown | X | X canine | X | canines | | X fox | X | foxes | | X in | | X jumped | X | lazy | X | X leap | | X over | X | X fast | X | summer time | | X the | X | –

Xem Thêm  Cõi ta bà là gì và tại sao gọi cõi ta bà là ngũ trược ác thế?

Ngay lúc này}, ví dụ chúng ta muốn kiếm tìm màu sắc fast brown, chúng ta chỉ cần tìm trong những tài liệu trong đấy từng thuật ngữ có xuất xuất hiện hay ko. Kết quả như sau:

Time period Doc_1 Doc_2 – brown | X | X fast | X | – Complete | 2 | 1