- vừa được xem lúc

Elasticsearch Zero to Hero #1 - Elasticsearch là gì? Cài đặt thế nào?

0 0 26

Người đăng: Thanh Bình

Theo Viblo Asia

Elasticsearch - Tưởng quen mà lạ

Nhắc đến Search engine, chắc chắn 10 người thì có thể đến 9,5 người nghĩ ngay đến từ khóa Elasticsearch. Đó cũng chính là lý do Elasticsearch luôn nằm trong top 10 của DB-Engines Ranking - bảng xếp hạng các hệ thống quản lý cơ sở dữ liệu theo mức phổ biến (https://db-engines.com/en/ranking). Tại thời gian viết series này, Elasticsearch đang ổn định ở vị trí thứ 8, bỏ xa những cái tên khác như Splunk (hạng 14) hay Solr (hạng 24).

Sự phổ biến của Elasticsearch dẫn đến rất nhiều người tìm hiểu, nhiều công ty công nghệ áp dụng, cũng như rất nhiều bài viết hướng dẫn cách sử dụng. Tuy nhiên, để có thể hiểu sâu và thành thạo về Elasticsearch một cách chuyên nghiệp cũng không phải là điều đơn giản. Mình cũng đã mất nhiều thời gian trong việc tổng hợp thông tin và áp dụng thực chiến. Chuỗi bài viết Elasticsearch Zero to Hero này của mình hi vọng sẽ giúp mọi người dễ dàng tìm hiểu và tiếp cận hơn, thời gian chính là vàng bạc mà! 🤣

A. Giới thiệu chung

Để tăng tầm hiểu biết, chúng ta cũng sẽ lược nhanh qua một số thông tin quan trọng về Elasticsearch:

  1. Là Search Engine #1 thế giới. Phát triển bằng Java, dựa trên Apache Lucense.
  2. Tiền thân là Compass - Java Search Engine Framework (2004).
  3. Được phát hành phiên bản đầu tiên năm 2010, thuộc công ty Elastic
  4. Là một trong những sản phẩm Open Source cùng Logstash, Kibana, Beats,..

Trong hình trên, chúng ta có :

  • Beats: Công cụ truyền dữ liệu từ nguồn tới Logstash hoặc Elasticsearch (single-purpose data shippers).
  • Logstash: Nơi xử lý, chuyển đổi dữ liệu và truyền về Elasticsearch
  • Elasticsearch: Tâm điểm của chúng ta. Nơi lưu trữ tập trung dữ liệu của bạn để tìm kiếm và phân tích.
  • Kibana: Công cụ phân tích, hiển thị dữ liệu từ Elasticsearch một cách trực quan dễ sử dụng. Ngoài ra mình cũng không rõ có phải theo trend là các công ty công nghệ nước ngoài thường gắn với động vật hay không, nhưng bộ 3 sản phẩm nổi tiếng nhất Elasticsearch - Logstash - Kibana hay được gọi tắt là ELK cũng là nai sừng tấm.

Ưu điểm:

  • Mã nguồn mở, hoàn toàn miễn phí, cộng đồng phát triển lớn.
  • Tốc độ truy vấn nhanh, kể cả các truy vấn phức tạp.
  • Hỗ trợ full-tex search: tách từ, tách câu, tạo chỉ mục cho dữ liệu.
  • Tìm kiếm mờ (fuzzy), tự động hoàn thành (autocomplete) giúp tìm kết quả kể cả khi sai chính tả.
  • Chạy trên server riêng, tương tác qua RESTful API, có thể tích hợp với hầu hết mọi hệ thống.
  • Dữ liệu lưu dạng JSON, rất linh hoạt trong trường hợp dữ liệu thường xuyên thay đổi cấu trúc.
  • Khả năng mở rộng, tính sẵn sàng cao do dựng theo mô hình cluster.

Nhược điểm:

  • Có đầy đủ các nhược điểm của NoSQL.
  • Không phù hợp với dữ liệu phải chỉnh sửa nhiều.
  • Không hỗ trợ transaction, không có ràng buộc quan hệ dẫn đến dữ liệu có thể sai.

B. Hướng dẫn cài đặt

Đối với việc cài đặt Elasticsearch nói riêng, hay bất kỳ thứ gì nói chung, không chỉ trên Internet mà ngay cả ở Viblo này cũng đã có rất nhiều bài chia sẻ. Mình tự cảm thấy việc hướng dẫn lại hơi dư thừa. Chúng ta cũng có rất nhiều cách thức cài đặt, từ trực tiếp tới gián tiếp. Nếu bạn là người mới, mình nhờ bạn tìm kiếm trên 1 bài viết khác (xem như +1 view cho các tác giả khác). 🤣 Tuy nhiên, mình cũng để sẵn docker-compose.yaml của Elasticsearch ở đây cho mọi người tham khảo. Hiện phiên bản mình giới thiệu mọi người là phiên bản 7.10 nhé! Có quà tặng kèm thêm Kibana luôn.

version: "3.0"
services: elasticsearch: container_name: es-container image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0 environment: - xpack.security.enabled=false - "discovery.type=single-node" networks: - es-net ports: - 9200:9200 kibana: container_name: kb-container image: docker.elastic.co/kibana/kibana:7.10.0 environment: - ELASTICSEARCH_HOSTS=http://es-container:9200 networks: - es-net depends_on: - elasticsearch ports: - 5601:5601
networks: es-net: driver: bridge

Sau khi mọi người cài đặt, truy vấn tới Elasticsearch sẽ ở đường dẫn http://localhost:9200. Nếu bạn truy cập trên trình duyệt như thế này là thành công.

Ngoài ra, chúng ta đã cài thêm Kibana - một nền tảng open source phân tích, hiển thị dữ liệu từ Elasticsearch một cách trực quan dễ sử dụng. Kibara được cấu hình chạy ở đường dẫn http://localhost:5601/. Khi bạn truy cập sẽ thấy như sau:

Phần tiếp theo, chúng ta sẽ đi chi tiết về cách hoạt động của Elasticsearch, để hiểu cơ chế lưu trữ và lý do tại sao "Nhanh như Elasticsearch!"

Bình luận

Bài viết tương tự

- vừa được xem lúc

Elasticsearch là gì ?

. Lời nói đầu. Elasticsearch là gì .

0 0 35

- vừa được xem lúc

Backup và Restore Elasticsearch snapshot với AWS S3 trong Kubernetes

Ở công ty mình vừa có mấy task devops liên quan đến scaling, clustering Elasticsearch nên viết lại đề phòng sau này cần dùng. Có một task là chuyển dữ liệu từ single-node Elasticsearch cũ lên cluster mới.

0 0 50

- vừa được xem lúc

Reindex Elasticsearch data with zero downtime

Elasticsearch là một search engine tuyệt vời cho mọi dự án muốn áp dụng chức năng search cho sản phẩm của mình, với những tính năng như là near-realtime search, auto-complete, suggestion,.... Cùng với đó là lợi thế kiến trúc distributed search system, có thể dễ dàng scaling, failing handle. Khi muốn

0 0 40

- vừa được xem lúc

Fork you ElasticSearch! How Open Source Works

ElasticSearch recently dropped its open-source licensing strategy, prompting AWS to fork it. Learn how "Open Source" actually works and how companies profit from it.

0 0 48

- vừa được xem lúc

Tìm hiểu Text và Keyword trong Elasticsearch

Giới thiệu. Khi mình mới bắt đầu tìm hiểu về Elasticsearch mình không nghĩ rằng giữa kiểu dữ liệu Text và Keyword có sự khác nhau nhưng khi vào dự án thực tế mình mới nhận ra được sự khác biệt giữa 2

0 0 140

- vừa được xem lúc

Tìm hiểu và cài đặt Elasticsearch

Elasticsearch là gì. Elasticsearch cung cấp công cụ tìm tiếm và phân tích gần như là thời gian thực, áp dụng với mọi kiểu dữ liệu - văn bản có cấu trúc hoặc phi cấu trúc, số, thông tin địa lý.

0 0 113