Elasticsearch là gì?

Elasticsearch là gì? – là 1 trong công nuốm tìm kiếm dựa trên căn nguyên Apache Lucene. Nó hỗ trợ một cỗ máy tìm tìm dạng phân tán, có rất đầy đủ công vậy với một hình ảnh web HTTP có hỗ trợ dữ liệu JSON.

Bạn đang xem: Kibana là gì? tìm hiểu về kibana và sử dụng một cách hiệu quả

Elasticsearch được trở nên tân tiến bằng Java và được xây đắp dạng nguồn mở theo giấy tờ Apache.

Chi máu về Elasticsearch là gì? (ES)

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

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

WikimediaathenahealthAdobe SystemsFacebookStumbleUpon Mozilla,Amadeus IT GroupQuoraFoursquareEtsySoundCloudGitHubFDACERNStack ExchangeCenter for xuất hiện ScienceReverbNetflixPixabayMotiliSophosSlurm Workload Manager

Elasticsearch chuyển động như cụ nào?

*
*
*
*

3. Shard

Shard là đối tượng người tiêu dùng của Lucene , là tập nhỏ các documents của 1 Index. Một Index có thể được tạo 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ỏ tuổi nhất, hoạt động ở mức phải chăng nhất, đóng vai trò lưu trữ dữ liệu.Chúng ta gần như là không lúc nào làm bài toán trực tiếp cùng với các Shard vì Elasticsearch đã support cục bộ việc tiếp xúc cũng như tự động thay đổi các Shard khi nên thiết.Có 2 loại Shard là : primary shard và replica shard.3.1 : Primary ShardPrimary Shard là sẽ tàng trữ dữ liệu cùng đánh index . Sau khi đánh ngừng dữ liệu sẽ tiến hành vận gửi tới các Replica Shard.Mặc định của Elasticsearch là mỗi index sẽ gồm 5 Primary shard và với mỗiPrimary shard thì sẽ đi kèm theo với 1 Replica Shard.3.2 : Replica ShardReplica 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 dạng của Primary ShardReplica Shard có vai trò đảm bảo an toàn tính toàn vẹn của tài liệu khi Primary Shardxảy ra vấn đề.Ngoài ra Replica Shard có thể giúp tăng tốc tốc độ tra cứu kiếm vì chúng ta có thể setup lượng Replica Shard nhiều hơn mặc định của ES
Instant AJAX tìm kiếm với Laravel với Vuejs

4. Node

Là trung tâm hoạt động của Elasticsearch. Là nơi lưu trữ dữ liễu ,tham gia tiến hành đánh index cúa cluster cũng như thực hiện các làm việc tìm kiếmMỗi node được định danh bởi 1 unique name

5. Cluster

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

Chức năng thiết yếu của Cluster đó chính là quyết định xem shards nào được phân chia cho node nào và khi nào thì di chuyển các Cluster để cân đối lại Cluster

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

Ưu điểm

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

Nhược điểm

Elasticsearch được kiến tạo cho mục tiêu search, vì vậy với những trách nhiệm khác ngoài search như CRUD thì elastic kém cố hơn so với phần đông database khác như Mongodb, Mysql …. Vì thế người ta ít khi sử dụng elasticsearch làm database chính, nhưng mà thường phối kết hợp nó với 1 database khác.Trong elasticsearch không có khái niệm database transaction , tức là nó sẽ không bảo đảm an toàn được trọn vẹn dữ liệu trong số hoạt độngInsert, Update, Delete.Tức khi họ thực hiện biến đổi nhiều phiên bản ghi nếu xảy ra lỗi thì sẽ tạo nên logic của chính bản thân mình bị không đúng hay dẫn tới mất mát 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 phù hợp với những hệ thống thường xuyên cập nhật dữ liệu. Sẽ rất tốn yếu cho câu hỏi đánh index dữ liệu.

Cài để ElasticSearch

Yêu cầu

Elasticsearch yêu mong 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 lại java, vì đó trước lúc cài Elasticsearch, hãy chắc chắn rằng chúng ta đã sở hữu Java version >= 8 bên trên máy.

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

Cài đặt

Download và thiết lập Elasticsearch PGP Key bởi lệnh sau:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key địa chỉ -Để thiết đặt Elasticsearch trên Ubuntu ta bao gồm 2 giải pháp là tải từ Repository hoặc cài đặt từ file .deb

Cách 1: biện pháp Elasticsearch bởi APT Repository

Cài gói apt-transport-https

sudo apt-get install apt-transport-httpsLưu có mang 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.listCài để Elasticsearch bằng lệnh:

sudo apt-get update && sudo apt-get install elasticsearchDone!

Cách 2: cài đặt elasticsearch bằng gói .deb

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

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.debwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb.sha512shasum -a 512 -c elasticsearch-6.4.0.deb.sha512 sudo dpkg -i elasticsearch-6.4.0.debDone!

Chạy elasticsearch.

Elasticsearch sau khi được setup sẽ không tự động chạy.

Xem thêm: Game Bleach Vs Naruto Unblocked, Bleach Vs Naruto 2

Để 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.serviceLệnh khởi tạo ra 1 index, mapping vào index đó với 1 document:

$ curl -X PUT http://localhost:9200/team/_mapping/memberKhởi tạo thành công xuất sắc , screen sẽ trả về dòng

"acknowledged":true,"shards_acknowledged":true,"index":"team"Là khởi tạo thành công index “team”

Sử dụng câu lệnh để truy xuất dữ 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 chế tạo ra document của index: ở đấy là thêm member với các trường trực 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" &&Lệnh kiểm tra toàn bộ index vẫn khởi tạo:$ curl -X GET http://localhost:9200/team?prettyLệnh thêm, sửa tài liệu vào index trên(team), ở đấy là dữ liệu vì nhóm em giả ra với insert vào$ curl -X PUT http://localhost:9200/team/member/_bulk?{"create"= "_id": 1, "_type": "member"&"id"= "5510ce4ee174054836ef3c5a","name": "Vargas Rosa","email": "","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": "","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": "","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": "","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" Lệnh hiển thị thông tin các dữ liệu vào document và của từng doccument sau thời điểm đã thêm$ curl -X GET http://localhost:9200/team/member/4?prettyLệnh tìm kiếm toàn bộ dữ liệu những document vào index áp dụng API Search$ curl -X GET http://localhost:9200/_search?pretty=trueLệnh search kiếm theo text nhập ở toàn bộ các trường vào document , tại chỗ này key search của mình là ruby, trên đây cũng đó là điểm mạnh của Elasticsearch, nó không giống với query like như thao tác với DB bởi vì nó cần phải nhập khá đầy đủ text đó ví như ruby sinh sống trên đang trả về các document member có text là ruby trong toàn bộ các field$ curl -X GET http://localhost:9200/_search?q=rubyLệnh xóa 1 index $ curl -X DELETE "localhost:9200/cuongquach-company"

Tài liệu xem thêm Elasticsearch là gì?

Vẫn còn một số trong những các hoạt động, những API để xử trí vào thao tác với Index vào Elasticsearch, nhưng với phần khám phá ở trên về một công cụ mạnh mẽ như elasticsearch là đủ để có thể thao tác, sử dụng và làm cho quen với elasticsearch. Các chúng ta có thể tham khảo ở những trang dưới đây.