Một trong những tính năng thiết kế độc đáo của Elasticsearch là, không giống như hầu hết các hệ thống hoặc cơ sở dữ liệu truyền thống, tất cả các tác vụ như kết nối và thao tác với Elasticsearch đều được thực hiện bằng cách sử dụng REST API
, nghĩa là gần như mọi truy vấn hoặc lệnh được thực thi trên nút Elasticsearch của bạn là một yêu cầu HTTP đơn giản đến một URL cụ thể.
Tùy thuộc vào HTTP verb
được gửi và URL mà động từ đó được gửi đến, Elasticsearch có thể thực hiện rất nhiều hành động trên nút hoặc thậm chí cả cụm.
Cấu trúc URL Elasticsearch REST API
Ở cấp độ cơ bản nhất, để thực hiện một lệnh trong Elasticsearch, bạn sẽ cần gửi một động từ HTTP đến URL của nút Elasticsearch của bạn. Để phát triển, thông thường đây là localhost:9200
.
Trong hầu hết trường hợp, phương pháp đơn giản nhất để gửi yêu cầu tới API REST của Elasticsearch là thông qua công cụ dòng lệnh hữu ích, cURL
, là một công cụ đơn giản được sử dụng để truyền gần như bất kỳ loại dữ liệu Internet nào.
Ví dụ:để liệt kê tất cả các indices
, bạn có thể thực thi curl
sau lệnh từ dấu nhắc shell của máy chủ phát triển của bạn (như được chỉ ra trong tài liệu chính thức:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Tại đây, chúng tôi đang truy cập cat API
(được biểu thị bằng _
hàng đầu gạch dưới) và xem các indices
, hiển thị mặt cắt của từng chỉ mục trong cụm.
Chỉ số, Loại, Tài liệu và Thuộc tính
Với một ví dụ tại chỗ, chúng ta có thể khám phá chi tiết hơn cấu trúc cụ thể của các API REST của Elasticsearch, thường bao gồm ba thành phần có cấu trúc, index
, loại type
và document
:
localhost:9200/index/type/document
index
là cấu trúc mẹ và được coi đơn giản nhất là database
chứa nhiều types
. Và index
có thể đại diện cho bất kỳ khái niệm nào, nhưng thường sẽ đại diện cho toàn bộ hệ thống các thành phần như shop
hoặc bookstore
.
Types
được chứa trong một index
và tương tự như các bảng database
, với mỗi types
đại diện cho một tập hợp các đối tượng tương tự (như shirt
hoặc book
).
Cuối cùng, tài liệu type
là một trường hợp đơn lẻ hoặc đại diện của một đối tượng của type
mẹ . Do đó, cuốn sách “The Hobbit” có thể tồn tại dưới dạng cuốn sách types
trong index
có tên là hiệu sách .
Xóa dữ liệu khỏi Elasticsearch
Với cú pháp API REST cơ bản, chúng ta có thể khám phá cách thực hiện các hành động cụ thể như xóa dữ liệu.
Xóa một tài liệu
Lấy cú pháp cơ bản của chúng ta như đã thấy ở trên, chúng ta cần sử dụng curl
và gửi DELETE
Động từ HTTP, sử dụng -XDELETE
tùy chọn:
$ curl -XDELETE 'localhost:9200/index/type/document'
Ví dụ:để xóa document
sách nói trên của chúng tôi , chúng tôi có thể sử dụng lệnh sau:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Thao tác này sẽ xóa document
với một ID
trong tổng số 1
từ book
types
nằm trong bookstore
index
.
Xóa một loại
Như bạn có thể đoán, với cú pháp chỉ mở rộng một chút, chúng tôi có thể xóa toàn bộ types
. Ở đây, chúng tôi đang xóa book
types
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Xóa chỉ mục
Cuối cùng, nếu chúng ta muốn xóa toàn bộ index
, điều này có thể được thực hiện bằng cú pháp tương tự như trước đây:
$ curl -XDELETE 'localhost:9200/bookstore'