0
0
Posts
Admin Team
Admin Teamtechmely

Hướng Dẫn Quản Lý Tài Liệu Trong Elasticsearch Qua Giao Diện CLI

Đăng vào 1 tuần trước

• 3 phút đọc

Chủ đề:

Elasticsearch

Elasticsearch là một công cụ tìm kiếm mạnh mẽ, và việc quản lý tài liệu (documents) bên trong nó là rất cần thiết để tối ưu hóa khả năng tìm kiếm và phân tích dữ liệu. Trong bài viết này, chúng ta sẽ điểm qua cách sử dụng các API của Elasticsearch để thêm, cập nhật và xóa tài liệu một cách hiệu quả.

Tạo Một Tài Liệu Mới

Khi bắt đầu, một index trống mà không có documents sẽ không mang lại nhiều giá trị. Để thêm một tài liệu, đầu tiên ta cần một tệp JSON mẫu. Ví dụ, chúng ta sẽ tạo một tài liệu cho một cuốn sách như sau:

book.json

Copy
{
  "title": "Elasticsearch: The Definitive Guide. A Distributed Real-Time Search and Analytics Engine",
  "categories": [
    { "name": "analytics" },
    { "name": "search" },
    { "name": "database store" }
  ],
  "publisher": "O’Reilly",
  "description": "Một hướng dẫn thực tiễn không chỉ giúp bạn tìm kiếm và phân tích dữ liệu với Elasticsearch mà còn giúp bạn giải quyết những phức tạp của ngôn ngữ tự nhiên, vị trí địa lý và mối quan hệ.",
  "published_date": "2015-02-07",
  "isbn": "978-1449358549",
  "rating": 4
}

Trước khi gửi tài liệu này lên Elasticsearch, điều cần thiết là xác định id cho tài liệu. Mỗi tài liệu trong Elasticsearch đều có một identifier duy nhất được lưu trữ trong trường _id. Trong trường hợp này, chúng ta sẽ sử dụng isbn làm ID. Để gửi tài liệu lên, thực hiện lệnh sau:

Copy
$ http PUT https://localhost:9200/catalog/books/978-1449358549 < book.json

Kết Quả

Khi gửi tài liệu thành công, bạn sẽ nhận được kết quả như sau:

Copy
{
  "_id": "978-1449358549",
  "_index": "catalog",
  "_shards": {
    "failed": 0,
    "successful": 3,
    "total": 3
  },
  "_type": "books",
  "_version": 1,
  "created": true,
  "result": "created"
}

Thêm Tác Giả Cho Cuốn Sách

Elasticsearch cho phép bạn thêm các tác giả cho mỗi cuốn sách. Chúng ta sẽ tạo một danh sách các tác giả trong file authors.json:

authors.json

Copy
[
  {
    "first_name": "Clinton",
    "last_name": "Gormley",
    "_parent": "978-1449358549"
  },
  {
    "first_name": "Zachary",
    "last_name": "Tong",
    "_parent": "978-1449358549"
  }
]

Thay vì thêm từng tác giả một, chúng ta sẽ sử dụng Bulk Document API. Đầu tiên, chuyển đổi authors.json sang định dạng bulk:

authors-bulk.json

Copy
{ "index": { "_index": "catalog", "_type": "authors", "_id": "1", "_parent": "978-1449358549" } }
{ "first_name": "Clinton", "last_name": "Gormley" }
{ "index": { "_index": "catalog", "_type": "authors", "_id": "2", "_parent": "978-1449358549" } }
{ "first_name": "Zachary", "last_name": "Tong" }

Gửi tài liệu bulk lên Elasticsearch:

Copy
$ http POST https://localhost:9200/_bulk < authors-bulk.json

Kiểm Tra và Xóa Tài Liệu

Để kiểm tra tài liệu đã thêm, bạn có thể sử dụng lệnh sau:
Lấy Lại Cuốn Sách

Copy
$ http https://localhost:9200/catalog/books/978-1449358549

Lấy Lại Tác Giả

Copy
$ http https://localhost:9200/catalog/authors/1?parent=978-1449358549

Nếu bạn cần xóa một tài liệu, sử dụng API xóa tương tự:

Copy
$ http DELETE https://localhost:9200/catalog/books/978-1449358549

Lưu ý rằng khi xóa một parent document, các child documents không bị xóa tự động.

Thông Tin Chi Tiết Về Tài Liệu

Để lấy thông tin thống kê về các terms trong một tài liệu, bạn có thể sử dụng Term Vectors API:

Copy
$ http https://localhost:9200/catalog/books/978-1449358549/_termvectors?fields=description

Kết quả sẽ cho bạn biết điều gì đã xảy ra với các terms trong tài liệu.


Với những kiến thức trên, bạn đã sẵn sàng để quản lý tài liệu trong Elasticsearch một cách hiệu quả! Hãy khám phá và tối ưu hóa dữ liệu của bạn ngay hôm nay.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào