[Phần 1] Hướng dẫn CRUD với Elasticsearch
Elasticsearch là một công cụ tìm kiếm siêu nhanh, giúp bạn lưu trữ và truy vấn dữ liệu một cách thần tốc. Nó cực kỳ hữu ích cho việc tìm kiếm full-text, phân tích dữ liệu và xử lý log. Trong bài viết này, mình sẽ hướng dẫn các bạn cách "quậy tung" Elasticsearch với các thao tác CRUD (Create, Read, Update, Delete) nhé! 🚀
Mục lục :
- Tạo mới 01 bản ghi
- Tạo mới nhiều bản ghi
- Tìm kiếm chi tiết một bản ghi theo Id
- Cập nhật bản ghi ( tương tự như PUT trong ResfulApi )
- Cập nhật một phần ( tương tự như PATCH trong ResfulApi )
- Xóa bản ghi theo Id
- Xóa nhiều bản ghi theo query
- Kiểm tra xem bản ghi có tồn tại hay không
- Tạo mapping của index
- Xem mapping của Index
- Sửa mapping của index
Elasticsearch là một công cụ mạnh mẽ giúp lưu trữ, tìm kiếm và phân tích dữ liệu nhanh chóng. Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách thực hiện các thao tác CRUD (Create, Read, Update, Delete) với Elasticsearch.
1. Tạo mới một bản ghi
Cú pháp:
POST <index_name>/_doc/<_id>
PUT <index_name>/_create/<_id>
PUT <index_name>/_doc/<_id>?op_type=create
POST player/_doc # Tự động tạo _id
2. Tạo mới nhiều bản ghi
Cú pháp:
POST <index_name>/_bulk
3. Tìm kiếm chi tiết một bản ghi theo ID
Cú pháp:
GET <index_name>/_doc/<_id>
GET <index_name>/_source/<_id>
Trường hợp chỉ lấy một số trường nhất định:
GET <index_name>/_source/<_id>?_source=<_field1>,<field2>,...
4. Cập nhật bản ghi ( tương tự như PUT trong ResfulApi )
Cú pháp:
PUT <index_name>/_doc/<_id>
5. Cập nhật một phần ( tương tự như PATCH trong ResfulApi )
Cú pháp:
POST <index_name>/_update/<_id>
{
"doc": {
"<field_value>": "<value>"
}
}
6. Xóa bản ghi theo ID
Cú pháp:
DELETE <index_name>/_doc/<_id>
7. Xóa nhiều bản ghi theo query
Cú pháp:
POST <index_name>/_delete_by_query
{
"query": {
"query_string": {
"query": "*" // Thay thế bằng điều kiện của bạn ở đây
}
}
}
8. Kiểm tra bản ghi có tồn tại hay không
Cú pháp:
HEAD <index_name>/_doc/<_id>
Trả về 200: Bản ghi tồn tại
Trả về 404: Bản ghi không tồn tại
9. Tạo mapping cho index
- ElasticSearch sẽ sử dụng thuật toán để có thể tự gen ra mapping theo model của bạn. Trong một số trường hợp bạn muốn tự tạo mapping cho bản thân mình thì hãy làm như sau nhé ^^
Cú pháp:
PUT /<index_name>
{
"mappings": {
"properties": {
"age": { "type": "integer" },
"email": { "type": "keyword" },
"name": { "type": "text" }
}
}
}
Các kiểu dữ liệu trong mapping:
- binary: Giá trị nhị phân (Base64)
- boolean:
true
hoặcfalse
- keyword: Chuỗi ngắn không phân tích
- integer, double: Số nguyên và số thực
- date, date_nanos: Kiểu ngày tháng
- object, nested: Dữ liệu JSON lồng nhau
- text: Dữ liệu văn bản hỗ trợ tìm kiếm full-text
- completion: Hỗ trợ auto-complete
10. Xem mapping của index
Cú pháp:
GET <index_name>/_mapping
11. Sửa mapping của index
Cú pháp:
PUT /<index_name>/_mapping
{
"properties": {
"email": {
"type": "keyword"
}
}
}
Đây là phần 1 của hướng dẫn CRUD với Elasticsearch. Trong các phần tiếp theo, chúng ta sẽ tìm hiểu về các câu truy vấn sử dụng trong Elastic Search nhé.
Nếu các bạn thấy hữu ích, hãy ủng hộ tôi bằng 1 cái upvote nhé 😁
Cảm ơn quý các bạn đã đón xem 🥰
All rights reserved