0
0
Posts
Admin Team
Admin Teamtechmely

Hướng Dẫn Cài Đặt Elasticsearch Trong Dự Án NestJS - Phần 13: Khám Phá Kiến Trúc Cluster và Tìm Kiếm Dữ Liệu

Đăng vào 1 ngày trước

• 2 phút đọc

Giới Thiệu

Bài viết này thuộc series "NestJS Thực Chiến". Chúng ta sẽ cùng nhau khám phá Elasticsearch, một công cụ tìm kiếm mạnh mẽ và cách tích hợp nó vào dự án NestJS. Link bài viết trước: Tại đây

🌟 Tại Sao Nên Sử Dụng Elasticsearch?

Elasticsearch là một công cụ tìm kiếm hiệu quả, dễ dàng tích hợp và mở rộng. Với một hệ thống cluster mạnh mẽ, nó cho phép quản lý và tìm kiếm dữ liệu một cách nhanh chóng và chính xác hơn so với các cơ sở dữ liệu truyền thống.

Những Lợi Ích Khi Sử Dụng Elasticsearch

  1. Search Engine Mạnh Mẽ: Elasticsearch hoạt động như một search engine với RESTful API linh hoạt, dễ truy cập và tích hợp vào code.
  2. Kiến Trúc Đa Node: Khả năng mở rộng dễ dàng khi thêm hoặc xóa node. Hệ thống tự động cân bằng tải giữa các node trong cluster.
  3. Tối Ưu Thời Gian Tìm Kiếm: Với nhiều node, thời gian tìm kiếm được giảm đáng kể nhờ chia sẻ tải giữa các primary shard và replica shard.
  4. Tính Năng High Availability: Dữ liệu luôn được đảm bảo hơn nhờ các replica shard. Nếu một node chết, cluster sẽ tự động cân bằng lại.
  5. Phân Tích Dữ Liệu Hiệu Quả: Kết hợp với Kibana, có thể thực hiện phân tích và thống kê dữ liệu dễ dàng hơn.
  6. Dễ Dàng Index Dữ Liệu: Elasticsearch tự động index tất cả các field, giúp giảm bớt gánh nặng cho lập trình viên.

Kiến Trúc Của Elasticsearch

Elasticsearch bao gồm các thành phần như cluster, index, shard và document. Một cluster bao gồm nhiều node, mỗi node có thể chứa nhiều shard, giúp chia sẻ và quản lý dữ liệu hiệu quả.

Khái Niệm Elasticsearch Tương Đương RDBMS Tương Đương NoSQL
Cluster Database instance Database cluster
Index Table / Schema Collection
Shard Table partition / shard Shard / Partition
Document Row Document
Field Column Field

Cài Đặt Elasticsearch

Chúng ta sẽ sử dụng Docker để cài đặt Elasticsearch. Dưới đây là cấu hình cơ bản cho một single node:

yaml Copy
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.17.1
    environment:
      - discovery.type=single-node
    ports:
      - "9200:9200"

Quá Trình Tìm Kiếm Dữ Liệu Trong Elasticsearch

Quá trình tìm kiếm được chia thành hai giai đoạn: queryfetch, giúp tối ưu hóa hiệu suất và đảm bảo rằng dữ liệu được trả về nhanh chóng và chính xác.

Kết Luận

Elasticsearch là một công cụ mạnh mẽ cho việc tìm kiếm và phân tích dữ liệu. Bài viết đã cung cấp cái nhìn tổng quan về kiến trúc và cách hoạt động của nó. Trong bài viết tiếp theo, chúng ta sẽ thực hành và áp dụng Elasticsearch vào mã nguồn của dự án Flash Card trong NestJS.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào