> For the complete documentation index, see [llms.txt](https://learnsql.gitbook.io/lernmysql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learnsql.gitbook.io/lernmysql/elasticsearch-and-php-and-mysql-thuc-hanh-phan-3.md).

# ElasticSearch & php & mysql thực hành – Phần 3

## ElasticSearch & php & mysql thực hành – Phần 3

[June 10, 2015](https://thinhpc86.wordpress.com/2015/06/10/elasticsearch-php-mysql-thuc-hanh-phan-3/) [thinhpc86](https://thinhpc86.wordpress.com/author/thinhpc86/) [Java](https://thinhpc86.wordpress.com/tag/java/), [PHP](https://thinhpc86.wordpress.com/category/php/)[ElasticSearch](https://thinhpc86.wordpress.com/tag/elasticsearch/), [Java](https://thinhpc86.wordpress.com/tag/java/), [Search Engine](https://thinhpc86.wordpress.com/tag/search-engine/)

Sau khi [cài đặt ES thành công](https://thinhpc86.wordpress.com/2015/06/10/elasticsearch-php-mysql-thuc-hanh-phan-2/), bây giờ ta đã có node và cluster đã chạy và chờ ta khám phá. Ta sẽ tìm hiểu cách để giao tiếp với chúng. May mắn là ES cung cấp một REST API toàn diện và mạnh mẽ giúp bạn tương tác với cluster của mình. Một số việc bạn có thể làm với API

* Kiểm tra sức khỏe, trạng thái và số liệu của cluster, node và index của bạn
* Quản lý cluster, node, dữ liệu index và metadata
* Thực hiệnCRUD (Create, Read, Update và Delete) và search indexes của bạn
* Thi hành các hoạt động search mở rộng như phân trang, sắp xếp, lọc, scripting, faceting, aggregations,….

**Cluster Health**

Chúng ta sẽ bắt đầu bằng việc check cơ bản nhất, để xem cluster làm việc thế nào. Ta sẽ dùng curl để làm việc này nhưng bạn có thể dùng bất kỳ công cụ nào khác cho phép bạn tạo request HTTP/REST để thay thế. Mình thì thích dùng Advanced Rest Client extension của Chrome để làm việc này. **Nếu dùng curl trên Windows thì chúng ta dùng cặp nháy đôi thay vì nháy đơn (“text” thay vì ‘text’) trong những câu lệnh dưới đây**. Chắn chắn là ta vẫn đang ở cái node lúc mới khởi động ES và mở 1 cmd khác dùng curl nhé.

để check cluster health, chúng ta dùng ***\_cat*** API. Nhớ là node của ta đang hiện diện ở port 9200

| 1 | `curl` `'localhost:9200/_cat/health?v'` |
| - | --------------------------------------- |

Kết quả:

![Untitled](https://thinhpc86.files.wordpress.com/2015/06/untitled1.jpg?w=700)

Chúng ta có thể thấy cluster name là “elasticsearch” với trạng thái là green.

Mỗi khi chúng ta kiểm tra sức khỏe của cluster, ta sẽ thấy status là xanh, vàng hoặc đỏ. Xanh nghĩa là mọi thứ đều tốt, vàng nghĩa là tất cả data đều available nhưng có 1 số bản sao chưa được định vị, đỏ nghĩa là một số data không available. Chú ý là ngay cả kh status là màu đỏ thì nó vẫn đáp ứng các function ví dụ như search request nhưng bạn nên fix nó ngay lập tức trước khi bị mất dữ liệu.

Cũng trong cái response trên đây, ta có thể thấy có tổng cộng 1 node và 0 shards vì ta chưa có data. Nếu có nhiều hơn 1 node trong mạng ta sẽ thấy.

**List Nodes:**

Ta cũng có thể check danh sách nodes của cluster như sau:

| 1 | `curl` `'localhost:9200/_cat/nodes?v'` |
| - | -------------------------------------- |

Response:

![testno](https://thinhpc86.files.wordpress.com/2015/06/testno.jpg?w=700)

Ta thấy node của ta có tên “Possessor”, là node đơn trong cluster của ta.

**List Indexes:**

Chạy lệnh như sau:

| 1 | `curl` `'localhost:9200/_cat/indices?v'` |
| - | ---------------------------------------- |

Response:

| 1 | `health index pri rep docs.count` `docs.deleted store.size pri.store.size` |
| - | -------------------------------------------------------------------------- |

Vì ta chưa có index, nếu có thì các thông số đó sẽ có giá trị

Trong 3 bài đầu chủ yếu để ta làm quen với ES. Những kiến thức này trên trang chủ của ES đã viết khá kỹ nên từ những bài sau mình ko đi chi tiết, chủ yếu là note lại những ý hay, cần ghi nhớ.

Phần tiếp theo sẽ tìm hiểu về [các API cơ bản của ES](https://thinhpc86.wordpress.com/2015/06/10/elasticsearch-php-mysql-thuc-hanh-phan-4/)

Nguồn:

<https://www.elastic.co/guide/en/elasticsearch/reference/current/_cluster_health.html>
