khóa học “kinh doanh khóa học”
CỦA CEO & FOUNDER MONA
NGAY
Từ 0:0027/4 đến ngày 23:591/5
15 Tháng Tám, 2023
Thuật ngữ Elasticsearch dùng để nhắc đến một công nghệ tìm kiếm và phân tích dữ liệu mạnh mẽ trên các ứng dụng web và di động. Với khả năng tích hợp linh hoạt và mở rộng, Elasticsearch đã nhanh chóng trở thành công cụ hữu ích cho việc quản lý dữ liệu lớn và trích xuất thông tin quan trọng. Nếu bạn chưa từng nghe đến tên gọi này, hãy dừng chân ở bài viết hôm nay để cùng Mona Media tìm hiểu chi tiết hơn về Elasticsearch là gì và lợi ích mà nó mang lại cho doanh nghiệp.
Elasticsearch là gì? Đây một công cụ tìm kiếm mã nguồn mở phổ biến được ra mắt từ năm 2010 dựa trên nền tảng Apache Lucene. Elasticsearch cho phép người dùng thực hiện hàng loạt các thao tác như lưu trữ mã nguồn mở, tìm kiếm và phân loại dữ liệu chính xác.
Ngày nay, công cụ Elasticsearch được rất nhiều doanh nghiệp yêu thích vì chỉ cần vài giây, người dùng có thể tìm kiếm hàng triệu bản ghi. Từ đó nâng cao hiệu suất và cải thiện trải nghiệm người dùng đối với ứng dụng mà doanh nghiệp cung cấp.
Khi tìm hiểu Elasticsearch là gì thì nhiều người cũng cần được giải đáp về cách thức hoạt động của nó. Elasticsearch hoạt động theo nguyên tắc “phân tán và cân bằng tải“. Hiểu một cách đơn giản, dữ liệu sẽ phân tán thành nhiều mảng (shard) và chúng được lưu trữ trên các nút của cụm Elasticsearch.
Mỗi shard là một đơn vị xử lý chuyên nghiệp, có vai trò tìm kiếm độc lập và cải thiện hiệu suất khi tìm kiếm dữ liệu. Ngoài ra, Elasticsearch còn hỗ trợ khái niệm “replica”, thực hiện quá trình sao chép dữ liệu từ mảng gốc sang các mảng sao, nhờ đó đảm bảo tính sẵn sàng và tăng độ tin cậy hơn.
Có thể thấy, Elasticsearch đã và đang thực hiện rất tốt nhiệm vụ của mình trong việc tạo nên sức hấp dẫn cho nhiều doanh nghiệp. Vậy lợi ích của Elasticsearch là gì?
Một số khái niệm cần biết dưới đây sẽ giúp bạn hiểu hơn Elasticsearch là gì?
Node là thuật ngữ dùng để nhắc đến trung tâm hoạt động của Elasticsearch. Đây là nơi thực hiện các chức năng như lưu trữ dữ liệu, tìm kiếm, đánh index. Mỗi node được định danh bằng 1 “unique name” và mặc định ngẫu nhiên khi thiết lập hoặc tự định danh.
Một cluster có thể gồm 1 hoặc tập hợp các nodes hoạt động cùng nhau trên cùng 1 server. Custer được xác định bằng 1 “unique name” và chia sẻ cùng thuộc tính cluster.name. Thực tế, mỗi cluster sẽ có một node chính (master) và nó được lựa chọn một cách tự động và được thay thế nếu gặp sự cố.
Document là đơn vị dữ liệu quen thuộc trong Elasticsearch. Mỗi document thuộc một type, nằm trong một chỉ mục và được liên kết với một định danh duy nhất, gọi là UID. Để đánh chỉ mục cho các document, Elasticsearch sẽ sử dụng cách đánh “inverted index”. Đây là cách đánh chỉ mục cơ bản dựa trên đơn vị từ để tạo mối liên kết giữa các từ và các document chứa từ đó.
Trong Elasticsearch, inverted index là cấu trúc được thiết kế sẵn để cho phép tìm kiếm full-text search. Cách thức hoạt động của index khá đơn giản, các văn bản sẽ được phân chia thành từng từ có nghĩa và được map xem xét thuộc văn bản nào. Kết quả tìm kiếm sẽ tùy thuộc tùy thuộc vào loại search.
Shard vừa là đối tượng của phần mềm Lucene, vừa là tập hợp con các documents của 1 Index. Theo quy định, trong một Index thường được chia thành nhiều shard. Trong Elasticsearch, Shard là đối tượng nhỏ nhất, hoạt động ở mức thấp nhất và thực hiện chức năng lưu trữ dữ liệu. Shard được chia thành 2 loại chính là primary shard và replica shard.
Primary Shard là địa điểm lưu trữ dữ liệu và đánh index. Sau đó, dữ liệu sẽ được vận chuyển tới các Replica Shard. Mỗi index sẽ có 5 Primary shard và tương ứng với 5 Replica Shard đi kèm.
Replica Shard thực hiện nhiệm vụ lưu trữ dữ liệu nhân bản của Primary Shard. Replica Shard phải đảm bảo tính toàn vẹn của dữ liệu trong trường hợp Primary Shard xảy ra sự cố, đồng thời tăng cường tốc độ tìm kiếm vì chúng ta có thể setup lượng Replica Shard nhiều hơn mặc định của ES.
ElasticSearch sở hữu nhiều ưu điểm vượt trội như sau:
Bên cạnh 6 điểm mạnh nêu trên, Elasticsearch vẫn còn tồn tại một số nhược điểm khiến cho lập trình viên không hài lòng, chẳng hạn như:
Để cài đặt Elasticsearch thành công, bạn cần lưu ý một số yêu cầu và cách cài đặt sau đây:
Công cụ Elasticsearch yêu cầu ngôn ngữ lập trình Java tối thiểu từ phiên bản 8 trở lên và được thiết lập biến môi trường JAVA_HOME. Do đó, bạn phải đảm bảo rằng đã cài thành công phiên bản Java >= 8 trên máy trước khi cài đặt Elasticsearch. Muốn kiểm tra biến môi trường đã được thiết lập thành công chưa, bạn hãy thực hiện lệnh echo $JAVA_HOME.
Bạn có thể chọn 1 trong 2 cách sau để cài đặt Elasticsearch:
Để cài đặt Elasticsearch bằng gói .deb, bạn hãy thực hiện các lệnh dưới đây:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb.sha512
shasum -a 512 -c elasticsearch-6.4.0.deb.sha512
sudo dpkg -i elasticsearch-6.4.0.deb
Done!
Sau khi cài đặt, công cụ Elasticsearch không tự động chạy mà nó cần được khởi động. Thao tác đơn giản nhất là khởi động theo cách thủ công. Bạn hãy thực hiện lệnh để chạy server elasticsearch$ sudo systemctl start elasticsearch.service -> $ sudo systemctl start elasticsearch.service
Như vậy là bạn đã hoàn tất cài đặt và có thể chạy Elasticsearch.
Cách truy xuất dữ liệu trên ElasticSearch là gì? Dưới đây là một số cách sử dụng câu lệnh dành cho bạn:
Câu lệnh liệt kê các index có trong ES: $ curl -X GET “localhost:9200/_cat/indices?v”
Câu lệnh tạo “document” của “index” (thêm member với các trường thuộc tính):
$ curl -X PUT http://localhost:9200/team/_mapping/member?{&”properties”= {&”id”= { “type”: “text” },&”name”= { “type”: “text” },&”email”= { “type”: “text” },&”age”= { “type”: “integer” },&”phone”= { “type”: “text” },&”image”= { “type”: “text” },&”technologies”= {“type” : “text” }&}&}
Câu lệnh kiểm tra tất cả lập chỉ mục đã khởi tạo: $ curl -X GET http://localhost:9200/team?pretty
Câu lệnh yêu cầu thêm hoặc sửa dữ liệu vào index trên (team): $ curl -X PUT http://localhost:9200/team/member/_bulk?{“create”= { “_id”: 1, “_type”: “member”}&{“id”= “5510ce4ee174054836ef3c5a”,”name”: “Vargas Rosa”,”email”: “[email protected]”,”age”: 25,”phone”: “+1 (807) 530–3567″,”image”: “http://api.randomuser.me/portraits/men/78.jpg”,”description”: “enim Lorem upidatat et nostrud ut irure qui qui nulla qui deserunt fugiat laborum elit”,”technologies”: “ios javascript python”}&{“create”= { “_id”: 2, “_type”: “member”}&{“id”= “5510ce4e24ecdab88fe18d06″,”name”: “Navarro Thornton”,”email”: “[email protected]”,”age”: 34,”phone”: “+1 (896) 579–3364″,”image”: “http://api.randomuser.me/portraits/men/59.jpg”,”description”: “sit enim velit cillum magna commodo tempor”,”technologies”: “swift erlang java”}&{“create”= { “_id”: 3, “_type”: “member”}&{“id”= “5510ce4e6e7bbdbc120c9a89″,”name”: “Francine Aguirre”,”email”: “[email protected]”,”age”: 30,”phone”: “+1 (963) 492–3402″,”image”: “http://api.randomuser.me/portraits/men/82.jpg”,”description”: “cu et sit ullamco tempor Lorem excepteur magna pariatur”,”technologies”: “javascript ionic ruby”}&{“create”= { “_id”: 4, “_type”: “member”}&{“id”= “5510ce4ebd2a509edd8c6b50″,”name”: “Krystal Simmons”,”email”: “[email protected]”,”age”: 40,”phone”: “+1 (857) 418–2040″,”image”: “http://api.randomuser.me/portraits/women/10.jpg”,”description”: “ea dolor ex proident eiusmod et ut irure esse”,”technologies”: “ruby c c”}
Câu lệnh hiển thị thông tin các dữ liệu trong document và của từng document sau khi đã thêm: $ curl -X GET http://localhost:9200/team/member/4?pretty
Câu lệnh tìm kiếm tất cả dữ liệu các document trong “index” sử dụng API Search: $ curl -X GET http://localhost:9200/_search?pretty=true
Câu lệnh tìm kiếm theo văn bản nhập ở tất cả các trường trong document: $ curl -X GET http://localhost:9200/_search?q=ruby
Câu lệnh xóa 1 lập chỉ mục: $ curl -X DELETE “localhost:9200/cuongquach-company”
Bài viết trên đây chúng tôi đã chia sẻ đến bạn khái niệm Elasticsearch là gì và các bước cài đặt nhanh chóng. Với Elasticsearch, việc khám phá và hiểu rõ dữ liệu trở nên dễ dàng hơn bao giờ hết, từ đó giúp doanh nghiệp có sự linh hoạt và đạt hiệu quả cao trong quá trình đưa ra quyết định của mình.
Xem thêm:
Dịch vụ thiết kế
website chuyên nghiệp
Sở hữu website với giao diện đẹp, độc quyền 100%, bảo hành trọn đời với khả năng
mở rộng tính năng linh hoạt theo sự phát triển doanh nghiệp ngay hôm nay!
khóa học “kinh doanh khóa học”
CỦA CEO & FOUNDER MONA
Từ 0:0027/4 đến ngày 23:591/5