[Phần 1] Hướng dẫn CRUD với Elasticsearch

0 0 0

Người đăng: Tuấn Hưng

Theo Viblo Asia

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 :

  1. Tạo mới 01 bản ghi
  2. Tạo mới nhiều bản ghi
  3. Tìm kiếm chi tiết một bản ghi theo Id
  4. Cập nhật bản ghi ( tương tự như PUT trong ResfulApi )
  5. Cập nhật một phần ( tương tự như PATCH trong ResfulApi )
  6. Xóa bản ghi theo Id
  7. Xóa nhiều bản ghi theo query
  8. Kiểm tra xem bản ghi có tồn tại hay không
  9. Tạo mapping của index
  10. Xem mapping của Index
  11. 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ặc false
  • 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 🥰

Bình luận

Bài viết tương tự

Hướng Dẫn Tích Hợp Redis vào Ứng Dụng .NET

1. Giới Thiệu về Redis.

0 0 0

Xây dựng ứng dụng fullstack với Angular, .NET Core Web API và ứng dụng triển khai phần mềm bằng CI/CD, Docker và Nginx (phần 1)

Giới thiệu. Trong bối cảnh phát triển ứng dụng hiện đại, việc tách riêng giao diện người dùng (frontend) và xử lý nghiệp vụ (backend) mang lại nhiều lợi ích vượt trội như khả năng mở rộng, bảo trì dễ

0 0 0

[ Phần 2 ] Các loại Query trong ElasticSearch

Các Loại Tìm Kiếm Trong Elasticsearch. Elasticsearch không chỉ mạnh mẽ mà còn cực kỳ linh hoạt! Hôm nay, hãy cùng mình khám phá các loại query phổ biến giúp bạn tìm kiếm dữ liệu nhanh như chớp nhé! .

0 0 0