Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Posted by

Mục tiêu

  • Elasticsearch SQL là gì?
  • Làm thế nào để chạy Elasticsearch?
  • Làm thế nào để có thể test Elasticsearch SQL chỉ trong 15 phút?

Tổng quan

Nếu các bạn từng làm việc với các Search Engine thì hẳn sẽ biết đến Elasticsearch, một Search Engine rất HOT và mạnh mẽ. Cơ mà trong quá trình sử dụng hẳn chúng ta cũng gặp rất nhiều những khó khăn đi cùng với nó, đặc biệt là khi tạo query để lấy dữ liệu vì nó không sử dụng cách query SQL như chúng ta quen thuộc mà sử dụng query DSL (Domain Specific Language).

Nhưng giờ đây các bạn có thể bỏ những lo lắng về việc học query Elasticsearch sang một bên rồi đấy vì Elasticsearch đã hỗ trợ các bạn query như SQL rồi. Về cơ bản thì nhu cầu query của chúng ta đã có thể sử dụng format như khi thực hiện với query SQL.

Nay mình sẽ hướng dẫn các bạn cách để trải nghiệm Elasticsearch SQL chỉ với 15 phút nhé. Chúng ta có thể dễ dàng trải nghiệm được nó mà không cần có những thao tác quá phức tạp.

Cài đặt Elasticsearch

Có 2 cách cài đặt Elasticsearch nhanh và tiện nhất cho các bạn mà mình muốn chia sẻ tới các bạn như dưới đây.

  • Cài đặt trực tiếp
  • Cài đặt qua Docker

Cài đặt trực tiếp

Các bạn lên trang chủ Elasticsearch và tải Elasticsearch về.

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Giải nén file zip

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Chạy Elasticsearch bằng cách chạy file elasticsearch.bat  trong thư mục /bin

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Kết quả như hình dưới đây là Okay.

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Cài đặt qua Docker

NOTE: việc cài đặc qua Docker cần một số kiến thức về Docker và yêu cầu trên máy các bạn phải cài đặt Docker rồi.

Pull Elasticsearch image về máy:

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Start Elasticsearch và mapping port 9200 của máy các bạn với port 9200 của container Elasticsearch.

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Kiểm tra xem Elasticsearch container đã chạy chưa. Kết quả như hình dưới đây là Okay.

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Chuẩn bị dữ liệu test

Để test Elasticsearch SQL thì dĩ nhiên chúng ta phải có dữ liệu để query. Tạo dữ liệu mới sẽ tốn thời gian và hơn nữa không tận dụng được thế mạnh về tốc độ tìm kiếm của Elasticsearch khi dữ liệu quá ít.

Để tiết kiệm thời gian, các bạn chỉ cần download 3 file dữ liệu sample dưới đây về, đưa vào Elasticsearch là chúng ta đã có thể test rồi đó.

Note: Để chung 3 file trên vào một thư mục sẽ tiết kiệm thời gian ở bước sau

Đưa dữ liệu test vào Elasticsearch

Để đưa dữ liệu test vào Elasticsearch, các bạn tiến hành như sau:

Mở terminal lên, truy cập vào thư mục để dữ liệu test:

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Các bạn dùng Windows thì có thể sử dụng Powershell để đẩy dữ liệu lên bằng cách chạy 3 lệnh sau:

Kết quả

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Nếu các bạn không dùng Windows thì có thể sử dụng 3 lệnh với CURL như sau:

Trải nghiệm Elasticsearch SQL

Chúng ta sử dụng Postman để test nhé. Đầu tiên search ALL dữ liệu để có thể tiếp tục viết các query khác. Ta có thể sử dụng thêm tool or plugin để bỏ qua bước này nhưng trước mắt thì chưa cần thiết nhé.

Query (được gửi đến Elasticsearch qua request body):

Kết quả:

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Ngoài ra, ta có thể thay đổi format cho response bằng cách thêm paramter format vào trong request. Cụ thể trong ví dụ của chúng ta thì kết quả sẽ thay đổi như sau:

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Tiếp theo chúng ta sẽ update query để lấy ra tất cả employer có tuổi lớn hơn 39.

Sửa query trong request body thành:

Kết quả:

Trải nghiệm Elasticsearch SQL chỉ với 15 phút

Kết luận

Với việc bổ sung hình thức SQL query thì Elasticsearch đã giúp chúng ta dễ dàng tiếp cận với Elasticsearch hơn rất nhiều. Sẽ không còn những tháng ngày khó nhọc học cách sử dụng query nữa, chúng ta có thể dành thời gian nhiều hơn vào việc tìm cách cải tiến, cải thiện ứng dụng/hiệu năng ứng dụng. Hy vọng các bạn có thể áp dụng nó thành công vào dự án. Nếu có chia sẻ/vấn đề thì vui lòng comment. Mình rất vui khi được trao đổi cùng các bạn.

Leave a Reply

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