Trong zone là gì

Elasticsearch là gì? – là một công cụ tìm kiếm dựa trên nền tảng

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
9. Nó cung cấp một bộ máy tìm kiếm dạng phân tán, có đầy đủ công cụ với một giao diện web HTTP có hỗ trợ dữ liệu JSON.

Elasticsearch được phát triển bằng Java và được phát hành dạng nguồn mở theo giấy phép Apache.

Chi tiết về Elasticsearch là gì? [ES]

  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 là một 
    Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    1.
  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 được kế thừa từ 
    Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    3
  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 thực chất hoặt động như 1 web server, có khả năng tìm kiếm nhanh chóng [near realtime] thông qua giao thức RESTful
  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 có khả năng phân tích và thống kê dữ liệu
  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 chạy trên server riêng và đồng thời giao tiếp thông qua RESTful do vậy nên nó không phụ thuộc vào client viết bằng gì hay hệ thống hiện tại của bạn viết bằng 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ả.
  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 là 1 hệ thống phân tán và có khả năng mở rộng tuyệt vời [horizontal scalability]. Lắp thêm node cho nó là nó tự động auto mở rộng cho bạn.
  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 là 1 
    Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    9 được phát triển bằng 
    wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
    0

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ư thế nào?

Sau khái niệm Elasticsearch là gì, thì chúng ta lại tiếp tục tìm hiểu hoạt đông của Elasticsearch, đó là 1 server riêng biệt để “phục vụ” việc tìm kiếm dữ liệu. ES sẽ chạy một cổng [dưới local default là 9200]. Người ta cũng có thể dùng ES là DB chính nhưng thường không ai làm thế vì cái gì cũng có nhiệm vụ riêng biệt của nó.

ES không mạnh trong các thao tác CRUD, nên thường sẽ dùng song song với 1 DB chính [SQL, MySQL, MongoDB …]

Tại sao nên sử dụng Elasticsearch?

Tại sao phải dùng ES trong khi tìm kiếm văn bản có thể sử dụng câu lệnh LIKE SQL cũng được?

Nếu search bằng truy vấn LIKE “%one%” thì kết quả sẽ chỉ cần chứa “one” là ra. Ví dụ: “phone”, “zone”, “money”, “alone” … nói chung sẽ là 1 list kết quả không mong muốn.

Còn search bằng ES thì gõ “one” sẽ chỉ có “one” được trả về mà thôi. Truy vấn LIKE không thể truy vấn từ có dấu. Ví dụ: từ khoá có dấu là “có”, nếu truy vấn LIKE chỉ gõ “co” thì sẽ không trả về được chính xác kết quả Về Perfomance thì ES sẽ là tốt hơn, truy vấn LIKE sẽ tìm kiếm đơn thuần toàn văn bản không sử dụng index, nghĩa là tập dữ liệu càng lớn thì tìm kiếm càng lâu, trong khi ES lại “đánh index” cho các trường được chọn để tìm kiếm.

Tham khảo việc làm RESTful API lương cao cho bạn

Các khái niệm cần biết

1. Document trong Elasticsearch là gì?

Document là một JSON object với một số dữ liệu. Đây là basic information unit trong ES. Hiểu 1 cách cơ bản thì đây là đơn vị nhỏ nhất để lưu trữ dữ liệu trong 

Term      Doc_1  Doc_2
-------------------------
brown   |   X   |  X
quick   |   X   |
------------------------
Total   |   2   |  1
0.

2. Index

wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2 có lẽ là một khái niệm quá quen thuộc đối với các anh em dùng
wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
3 rồi. Tuy nhiên
wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
4 trong 
wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
5 hoàn toàn khác trong
wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
3.

Trong 

Term      Doc_1  Doc_2
-------------------------
brown   |   X   |  X
quick   |   X   |
------------------------
Total   |   2   |  1
0 , sử dụng một cấu trúc được gọi là 
wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
8 . Nó được thiết kế để cho phép tìm kiếm 
wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
9. Cách thức của nó khá đơn giản, các văn bản được phân tách ra thành từng từ có nghĩa sau đó sẽ đk map xem thuộc văn bản nào. Khi search tùy thuộc vào loại search sẽ đưa ra kết quả cụ thể.

VÍ dụ : Chúng ta có 2 văn bản cụ thể như sau :

1,The quick brown fox jumped over the lazy dog
2,Quick brown foxes leap over lazy dogs in summer

Để tạo ra một 

wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
8, trước hết chúng ta sẽ phân chia nội dung của từng tài liệu thành các từ riêng biệt [chúng tôi gọi là 
sudo apt-get install apt-transport-https
1], tạo một danh sách được sắp xếp của tất cả 
sudo apt-get install apt-transport-https
1 duy nhất, sau đó liệt kê tài liệu nào mà mỗi thuật ngữ xuất hiện. Kết quả như sau:

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------

Bây giờ, nếu chúng ta muốn tìm kiếm màu 

sudo apt-get install apt-transport-https
3, chúng ta chỉ cần tìm trong các tài liệu trong đó mỗi thuật ngữ có xuất xuất hiện hay không. Kết quả như sau:

Term      Doc_1  Doc_2
-------------------------
brown   |   X   |  X
quick   |   X   |
------------------------
Total   |   2   |  1

Như các bạn đã thấy, cả 2 đoạn văn bản đều thích hợp với từ khóa. Tuy nhiên có thể dễ dàng nhận ra rằng Doc_1 chính xác hơn nhiều.

Bạn hoàn toàn có thể setup việc tìm kiếm 1 cách kỹ càng hơn, tuy nhiên minh sẽ đề cập đến vấn đề này trong bài viết sau nhé. Nếu bạn có hứng thú có thể vào tài liệu //www.elastic.co/guide/en/elasticsearch/guide/current/inverted-index.html và //www.elastic.co/guide/en/elasticsearch/guide/current/relevance-intro.html#relevance-intro để có cái nhìn rõ ràng hơn .

3. Shard

  • sudo apt-get install apt-transport-https
    
    4 là đối tượng của 
    sudo apt-get install apt-transport-https
    
    5 , là tập con các 
    sudo apt-get install apt-transport-https
    
    6 của 1 Index. Một Index có thể được chia thành nhiều shard.
  • Mỗi 
    sudo apt-get install apt-transport-https
    
    7 bao gồm nhiều 
    sudo apt-get install apt-transport-https
    
    4 . Chính vì thế 
    sudo apt-get install apt-transport-https
    
    4 mà là đối tượng nhỏ nhất, hoạt động ở mức thấp nhất, đóng vai trò lưu trữ dữ liệu.
  • Chúng ta gần như không bao giờ làm việc trực tiếp với các 
    sudo apt-get install apt-transport-https
    
    4 vì 
    Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 đã support toàn bộ việc giao tiếp cũng như tự động thay đổi các 
    sudo apt-get install apt-transport-https
    
    4 khi cần thiết.
  • Có 2 loại 
    sudo apt-get install apt-transport-https
    
    4 là : 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    4 và 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    5

3.1 : Primary Shard

  • echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    6 là sẽ lưu trữ dữ liệu và đánh 
    wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
    4 . Sau khi đánh xong dữ liệu sẽ được vận chuyển tới các 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    8.
  • Mặc định của 
    Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 là mỗi 
    wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
    4 sẽ có 5 
    sudo apt-get update && sudo apt-get install elasticsearch
    
    1 và với mỗi
    sudo apt-get update && sudo apt-get install elasticsearch
    
    1 thì sẽ đi kèm với 1 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    8.

3.2 : Replica Shard

  • echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    8 đúng như cái tên của nó, nó là nơi lưu trữ dữ liệu nhân bản của 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    6
  • echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    8 có vai trò đảm bảo tính toàn vẹn của dữ liệu khi 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    6xảy ra vấn đề.
  • Ngoài ra 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    8 có thể giúp tăng cường tốc độ tìm kiếm vì chúng ta có thể setup lượng 
    echo "deb //artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
    
    8 nhiều hơn mặc định của 
    wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
    5

  Instant AJAX Search với Laravel và Vuejs

4. Node

  • Là trung tâm hoạt động của Elasticsearch. Là nơi lưu trữ dữ liễu ,tham gia thực hiện đánh 
    wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
    4 cúa 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    2 cũng như thực hiện các thao tác tìm kiếm
  • Mỗi 
    sudo apt-get install apt-transport-https
    
    7 được định danh bằng 1 unique name

5. Cluster

  • Tập hợp các 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    4 hoạt động cùng với nhau, chia sẽ cùng thuộc tính 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    5. Chính vì thế 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    6 sẽ được xác định bằng 1 ‘unique name’. Việc định danh các 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    2 trùng tên sẽ gây nên lỗi cho các node vì vậy khi setup các bạn cần hết sức chú ý điểm này
  • Mỗi cluster có một 
    sudo apt-get install apt-transport-https
    
    7 chính [master], được lựa chọn một cách tự động và có thể thay thế nếu sự cố xảy ra. Một cluster có thể gồm 1 hoặc nhiều 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    4. Các nodes có thể hoạt động trên cùng 1 server .
  • Tuy nhiên trong thực tế , một 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    2 sẽ gồm nhiều 
    wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
    wget //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
    
    4 hoạt động trên các server khác nhau để đảm bảo nếu 1 server gặp sự cố thì server khác [node khác] có thể hoạt động đầy đủ chức năng so với khi có 2 servers. Các 
    sudo apt-get install apt-transport-https
    
    7 có thể tìm thấy nhau để hoạt động trên cùng 1 cluster qua giao thức 
    $ sudo systemctl start elasticsearch.service
    
    3.

Chức năng chính của 

wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
wget //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
6 đó chính là quyết định xem 
$ sudo systemctl start elasticsearch.service
5 nào được phân bổ cho 
sudo apt-get install apt-transport-https
7 nào và khi nào thì di chuyển các 
wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
wget //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
6 để cân bằng lại 
wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
wget //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
6

Ưu nhược điểm của ES

Ưu điểm

  • Tìm kiếm dữ liệu rất nhanh chóng, mạnh mẽ dựa trên Apache Lucene [ near-realtime searching]
  • Có khả năng phân tích dữ liệu [Analysis data]
  • Khả năng mở rộng theo chiều ngang tuyệt “vòi”
  • Hỗ trợ tìm kiếm mờ [fuzzy], tức là từ khóa tìm kiếm có thể bị sai lỗi chính tả hay không đúng cú pháp thì vẫn có khả năng elasticsearch trả về kết quả tốt.
  • Hỗ trợ Structured Query DSL [Domain-Specific Language ], cung cấp việc đặc tả những câu truy vấn phức tạp một cách cụ thể và rõ ràng bằng JSON.
  • Hỗ trợ nhiều 
    $ sudo systemctl start elasticsearch.service
    
    9 client như 
    wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
    0, 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    1, 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    2, 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    3, 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    4, 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    5

Nhược điểm

  • Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    0 được thiết kế cho mục đích search, do vậy với những nhiệm vụ khác ngoài search như CRUD thì elastic kém thế hơn so với những database khác như Mongodb, Mysql …. Do vậy người ta ít khi dùng elasticsearch làm database chính, mà thường kết hợp nó với 1 database khác.
  • Trong 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    7 không có khái niệm 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    8 , tức là nó sẽ không đảm bảo được toàn vẹn dữ liệu trong các hoạt động
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    9, 
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    00, 
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    01.Tức khi chúng ta thực hiện thay đổi nhiều bản ghi nếu xảy ra lỗi thì sẽ làm cho logic của mình bị sai hay dẫn tới mất mát dữ liệu. Đây cũng là 1 phần khiến 
    $ curl -X PUT //localhost:9200/team/_mapping/member
    
    7 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 cập nhật dữ liệu. Sẽ rất tốn kém cho việc đánh index dữ liệu.

Cài đặt ElasticSearch

Yêu cầu

Elasticsearch yêu cầu Java 8 trở lên và phải thiết lập biến môi trường 

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
03 cho java, do đó trước khi cài Elasticsearch, hãy chắc chắn rằng bạn đã cài Java version >= 8 trên máy.

Kiểm tra bằng lệnh 

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
04 để biết máy máy mình đã cài Java chưa và phiên bản Java đang cài là bao nhiêu. Kiểm tra biến môi trường 
Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
03 đã được thiết lập chưa bằng lệnh: 
Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
06

Cài đặt

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

wget -qO - //artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Để cài đặt Elasticsearch trên Ubuntu ta có 2 cách là cài từ Repository hoặc cài từ file .deb

Cách 1: Cách Elasticsearch bằng APT Repository

Cài gói 

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
07

sudo apt-get install apt-transport-https

Lưu định nghĩa repository vào 

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
08:

[Repository mặc định ko có elasticsearch]

echo "deb //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ằng lệnh:

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

Done!

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

Chạy các lệnh dưới đây để tải và cài đặt elasticsearch bằng file .deb

wget //artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
wget //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 khi được cài đặt sẽ không tự động chạy.

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

Lệnh để chạy server elasticsearch$ sudo systemctl start elasticsearch.service:

$ sudo systemctl start elasticsearch.service

Lệnh khởi tạo 1 index, mapping trong index đó và 1 document:

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

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

Term      Doc_1  Doc_2
-------------------------
Quick   |       |  X
The     |   X   |
brown   |   X   |  X
dog     |   X   |
dogs    |       |  X
fox     |   X   |
foxes   |       |  X
in      |       |  X
jumped  |   X   |
lazy    |   X   |  X
leap    |       |  X
over    |   X   |  X
quick   |   X   |
summer  |       |  X
the     |   X   |
------------------------
0

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 có trong ES:
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    1
  • Lệnh tạo document của index: ở đây là thêm member với các trường thuộc tính
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    2
  • Lệnh kiểm tra tất cả index đã khởi tạo:
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    3
  • Lệnh thêm, sửa dữ liệu vào index trên[team], ở đây là dữ liệu do nhóm em fake ra và insert vào
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    4
  • Lệnh hiển thị thông tin các dữ liệu trong document và của từng doccument sau khi đã thêm
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    5
  • Lệnh tìm kiếm tất cả dữ liệu các document trong index sử dụng API Search
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    6
  • Lệnh tìm kiếm theo text nhập ở tất cả các trường trong document , ở đây key search của mình là ruby, đây cũng chính là điểm mạnh của Elasticsearch, nó không giống với query like như thao tác với DB vì nó cần phải nhập đầy đủ text đó ví dụ như ruby ở trên sẽ trả về các document member có text là ruby trong tất cả các field
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    7
  • Lệnh xóa 1 index
    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    8

Tài liệu tham khảo Elasticsearch là gì?

Vẫn còn một số các hoạt động, các API để xử lý vào thao tác với Index trong Elasticsearch, nhưng với phần tìm hiểu ở 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 quen với elasticsearch. Các bạn có thể tham khảo ở các trang dưới đây.

Zone VinaPhone là gì?

Vùng Zone [hay còn gọi vùng nội Zone VinaPhone] đây vùng mà nhà mạng VinaPhone đã cài đặt sẵn khi cho sim di động từ khi mới hoà mạng. Thông thường, vùng Zone chỉ áp dụng một số tỉnh thành phố trên toàn quốc.

100GB trong zone là gì?

Trong đó 100GB vùng nội Zone và 2GB vùng ngoài Zone]. Tức các thuê bao đang hoạt động tại Nghệ An, Bình Phước, Đắk Lắk sẽ có thể sử dụng 100GB ưu đãi được tặng vùng nội Zone. Khi ở tỉnh khác thì các thuê bao chỉ được sử dụng ưu đãi 2GB mà thôi.

Gọi ngoài Zone là gì?

Zone được mặc định vùng [tỉnh hoặc thành phố] mà khách hàng đăng ký dịch vụ. Trong Zone [In Zone]: Trong vùng kích hoạt [phạm vi tỉnh hoặc thành phố]. Khách hàng đứng trong Zonegọi đi bất kỳ đâu trong nước sẽ được tính cước trong Zone. Ngoài Zone [Out Zone]: Ngoài vùng kích hoạt.

Gói cước Vina690 là gì?

SIM Vina690 là sim được cung cấp bởi nhà mạng VinaPhone. Sim được đặt tên Vina690 là bởi giá cước 690 đồng/ phút [ngoại mạng trong 1 năm đầu tiên]. Tên sim phần nào thể hiện được ưu điểm về giá cước. Sim Vina690 được VinaPhone triển khai trên toàn quốc [theo CV 5402/KHCN-QLSP ngày 05/10/2016].

Chủ Đề