Mục lục nội dung

Elasticsearch là gì? cụ thể về Elasticsearch là gì? (ES) các công ty to đang sử dụng Elasticsearch vận động như núm nào? tại sao nên áp dụng Elasticsearch? các khái niệm nên biết 1. Document vào Elasticsearch là gì? 2. Index 3. Shard 3.1 : Primary Shard 3.2 : Replica Shard 4. Node 5. Cluster Ưu điểm yếu kém của ES Ưu điểm Nhược điểm setup ElasticSearch yêu cầu setup Chạy elasticsearch. áp dụng câu lệnh nhằm truy xuất tài liệu trên ElasticSearch Tài liệu xem thêm Elasticsearch là gì?

Elasticsearch là gì?

Elasticsearch là gì? – là một trong những công cụ tìm tìm dựa trên gốc rễ Apache Lucene. Nó cung ứng một cỗ máy tìm tìm dạng phân tán, có khá đầy đủ công ráng với một giao diện web HTTP có cung ứng dữ liệu JSON.

Bạn đang xem: Giới thiệu và cài đặt elasticsearch và kibana là gì

Elasticsearch được cách tân và phát triển bằng Java cùng được xây đắp dạng nguồn mở theo giấy tờ Apache.

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

Elasticsearch là một search engine. Elasticsearch được kế thừa từ Lucene Apache Elasticsearch thực hóa học hoặt động như một web server, có chức năng tìm kiếm mau lẹ (near realtime) thông qua giao thức RESTful Elasticsearch có năng lực phân tích cùng thống kê tài liệu Elasticsearch chạy trên server riêng với đồng thời tiếp xúc thông qua RESTful thế nên nên nó không dựa vào vào client viết bởi gì hay hệ thống hiện tại của công ty viết bởi gì. Cho nên việc tích thí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 khối hệ thống phân tán và có khả năng mở rộng hoàn hảo và tuyệt vời nhất (horizontal scalability). Lắp thêm node mang đến nó là nó từ bỏ động tự động mở rộng mang lại bạn. Elasticsearch là 1 open source được phát triển bằng Java

Các công ty lớn đang sử dụng

Wikimedia athenahealth Adobe Systems Facebook StumbleUpon Mozilla, Amadeus IT Group Quora Foursquare Etsy SoundCloud GitHub FDA CERN Stack Exchange Center for open Science Reverb Netflix Pixabay Motili Sophos Slurm Workload Manager

Elasticsearch hoạt động như nỗ lực nào?


*

*

*

3. Shard

Shard là đối tượng của Lucene , là tập bé các documents của 1 Index. Một Index rất có thể được phân thành nhiều shard. Mỗi node bao bao gồm nhiều Shard . Cũng chính vì thế Shard mà là đối tượng nhỏ nhất, vận động ở mức rẻ nhất, nhập vai trò tàng trữ dữ liệu. Chúng ta gần như không bao giờ làm vấn đề trực tiếp cùng với các Shard vì Elasticsearch đã support toàn bộ việc giao tiếp cũng như tự động thay thay đổi các Shard khi bắt buộc thiết. Gồm 2 loại Shard là : primary shard và replica shard. 3.1 : Primary Shard Primary Shard là sẽ lưu trữ dữ liệu với đánh index . Sau khi đánh hoàn thành dữ liệu sẽ tiến hành vận đưa tới các Replica Shard. Mang định của Elasticsearch là mỗi index sẽ bao gồm 5 Primary shard và với mỗiPrimary shard thì sẽ kèm theo với 1 Replica Shard. 3.2 : Replica Shard Replica Shard đúng như cái thương hiệu của nó, nó là nơi tàng trữ dữ liệu nhân bản của Primary Shard Replica Shard có vai trò đảm bảo tính toàn vẹn của tài liệu khi Primary Shardxảy ra vấn đề. Không tính ra Replica Shard có thể giúp tăng tốc tốc độ tìm kiếm kiếm vì bạn cũng có thể setup lượng Replica Shard nhiều hơn mặc định của ES

4. Node

Là trung tâm buổi giao lưu của Elasticsearch. Là nơi tàng trữ dữ liễu ,tham gia triển khai đánh index cúa cluster cũng như triển khai các làm việc tìm kiếm Mỗi node được định danh bởi 1 unique name

5. Cluster

Tập thích hợp các nodes hoạt động cùng với nhau, phân chia sẽ thuộc thuộc tính cluster.name. Chính vì thế Cluster sẽ được xác định bằng 1 ‘unique name’. Bài toán định danh các cluster trùng thương hiệu sẽ gây nên lỗi cho những node vày vậy lúc setup các bạn cần hết sức để ý điểm này từng cluster tất cả một node chính (master), được lựa lựa chọn 1 cách auto và có thể thay cố gắng nếu sự cụ xảy ra. Một cluster có thể bao gồm một hoặc nhiều nodes. Những nodes có thể hoạt động trên cùng 1 server . Tuy vậy trong thực tiễn , một cluster sẽ bao gồm nhiều nodes hoạt đụng trên những server khác nhau để đảm bảo nếu 1 server gặp mặt sự gắng thì server khác (node khác) có thể hoạt động đầy đủ tác dụng so với khi tất cả 2 servers. Các node có thể tra cứu thấy nhau để vận động trên cùng 1 cluster qua giao thức unicast.

Chức năng chính của Cluster đó đó là quyết định xem shards nào được phân chia cho node nào và bao giờ thì dịch chuyển các Cluster để cân bằng lại Cluster

Ưu điểm yếu kém của ES

Ưu điểm

tìm kiếm dữ liệu rất cấp tốc chóng, mạnh khỏe dựa bên trên Apache Lucene ( near-realtime searching) có công dụng phân tích dữ liệu (Analysis data) kĩ năng mở rộng theo chiều ngang xuất xắc “vòi” cung cấp tìm kiếm mờ (fuzzy), tức là từ khóa tra cứu kiếm rất có thể bị không nên lỗi thiết yếu tả hay không đúng cú pháp thì vẫn có chức năng elasticsearch trả về kết quả tốt. Cung ứng Structured Query DSL (Domain-Specific Language ), cung ứng việc đặc tả hồ hết câu truy tìm vấn phức hợp một cách ví dụ và cụ thể bằng JSON. Hỗ trợ nhiều Elasticsearc client như Java, PhP, Javascript, Ruby, .NET, Python

Nhược điểm

Elasticsearch được thi công cho mục tiêu search, do vậy với những nhiệm vụ khác ngoài tìm kiếm như CRUD thì elastic kém nắm hơn so với số đông database khác như Mongodb, Mysql …. Do vậy người ta ít khi sử dụng elasticsearch làm database chính, mà thường phối hợp nó với cùng 1 database khác. Trong elasticsearch không bao gồm khái niệm database transaction , tức là nó đang không đảm bảo an toàn được trọn vẹn dữ liệu trong số hoạt độngInsert, Update, Delete.Tức khi chúng ta thực hiện đổi khác nhiều bạn dạng ghi nếu xẩy ra lỗi thì sẽ khiến cho logic của bản thân bị sai hay mang đến mất non dữ liệu. Đây cũng là một phần khiến elasticsearch không nên là database chính. Không thích hợp với những hệ thống thường xuyên update dữ liệu. Sẽ khá tốn kém cho vấn đề đánh index dữ liệu.

Cài để ElasticSearch

Yêu cầu

Elasticsearch yêu ước Java 8 trở lên cùng phải tùy chỉnh thiết lập biến môi trường JAVA_HOME mang đến java, vị đó trước lúc cài Elasticsearch, hãy chắc chắn rằng chúng ta đã tải Java version >= 8 bên trên máy.

Kiểm tra bởi lệnh java -version để hiểu máy máy tôi đã cài Java không và phiên bản Java đang cài đặt là bao nhiêu. Kiểm tra biến chuyển môi trường JAVA_HOME đã được tùy chỉnh chưa bằng lệnh: echo $JAVA_HOME

Cài đặt

Download và cài đặt Elasticsearch PGP Key bằng lệnh sau:

wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key showroom –

Để setup Elasticsearch bên trên Ubuntu ta bao gồm 2 bí quyết là cài từ Repository hoặc cài đặt từ file .deb

Cách 1: giải pháp Elasticsearch bằng APT Repository

Cài gói apt-transport-https

sudo apt-get install apt-transport-https

Lưu khái niệm repository vào /etc/apt/sources.list.d/elastic-6.x.list:

(Repository mặc định ko bao gồm elasticsearch)

echo “deb https://artifacts.elastic.co/packages/6.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Cài đặt Elasticsearch bởi lệnh:

sudo apt-get update && sudo apt-get install elasticsearch

Done!

Cách 2: thiết lập elasticsearch bằng gói .deb

Chạy các lệnh sau đây để thiết lập và thiết đặt elasticsearch bằng file .deb

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!

Chạy elasticsearch.

Elasticsearch sau thời điểm được setup sẽ không tự động chạy.

Xem thêm: Vlsm Là Gì - Variable Length Subnet Mask (Vlsm) Là Gì

Để khởi động, start, stop elasticsearch ta làm cho như sau:

Lệnh nhằm chạy server elasticsearch$ sudo systemctl start elasticsearch.service:

$ sudo systemctl start elasticsearch.service

Lệnh khởi tạo nên 1 index, mapping vào index đó cùng 1 document:

$ curl -X PUT http://localhost:9200/team/_mapping/member

Khởi tạo thành công xuất sắc , màn hình sẽ trả về dòng

Là khởi tạo thành công index “team”

Sử dụng câu lệnh để truy xuất tài liệu trên ElasticSearch

Lệnh liệt kê các index tất cả trong ES: $ curl -X GET “localhost:9200/_cat/indices?v” Lệnh tạo ra document của index: ở đó là thêm member với các trường thuộc tính $ curl -X PUT http://localhost:9200/team/_mapping/member?,&”name”= ,&”email”= ,&”age”= ,&”phone”= ,&”image”= ,&”technologies”= &}&} Lệnh kiểm tra tất cả index đang khởi tạo: $ curl -X GET http://localhost:9200/team?pretty Lệnh thêm, sửa dữ liệu vào index trên(team), ở đó là dữ liệu vày nhóm em giả ra và insert vào $ curl -X PUT http://localhost:9200/team/member/_bulk?&&&&&&& Lệnh hiển thị thông tin các dữ liệu trong document và của từng doccument sau khoản thời gian đã thêm $ curl -X GET http://localhost:9200/team/member/4?pretty Lệnh tìm kiếm kiếm toàn bộ dữ liệu những document vào index thực hiện API tìm kiếm $ curl -X GET http://localhost:9200/_search?pretty=true Lệnh tìm kiếm theo text nhập ở toàn bộ các trường trong document , ở đây key search của mình là ruby, phía trên cũng chính là điểm mạnh của Elasticsearch, nó rất khác với query like như làm việc với DB do nó rất cần được nhập vừa đủ text đó ví dụ như ruby ở trên vẫn trả về các document thành viên có text là ruby trong tất cả các field $ curl -X GET http://localhost:9200/_search?q=ruby Lệnh xóa 1 index $ curl -X DELETE “localhost:9200/cuongquach-company”

Tài liệu tìm hiểu thêm Elasticsearch là gì?

Vẫn còn một trong những các hoạt động, các API để cách xử lý vào làm việc với Index trong Elasticsearch, tuy nhiên với phần mày mò ở bên trên về một công cụ trẻ trung và tràn trề sức khỏe như elasticsearch là đầy đủ để hoàn toàn có thể thao tác, áp dụng và có tác dụng quen với elasticsearch. Các chúng ta có thể tham khảo ở những trang bên dưới đây.

https://www.tutorialspoint.com/elasticsearch/elasticsearch_search_apis.htm http://www.elasticsearchtutorial.com/elasticsearch-in-5-minutes.html https://www.elastic.co/guide/index.html