Truy Vấn Dữ Liệu Trong Elasticsearch Sử Dụng API _search

1. Cơ Bản Về API Search

1.1 Lấy Toàn Bộ Dữ Liệu

GET _search

1.2 Giải Thích Cấu Trúc Phản Hồi

{
    "took": 280,
    "timed_out": false,
    "_shards": {
        "total": 3,
        "successful": 3,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 5,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "products",
                "_type": "_doc",
                "_id": "101",
                "_score": 1.0,
                "_source": {
                    "product_name": "SSD 1TB NVMe",
                    "brand": "BrandX",
                    "price": 250.0,
                    "stock": 50
                }
            }
        ]
    }
}

1.3 Cơ Chế Timeout

Thiết lập giới hạn thời gian cho từng shard:

GET _search?timeout=500ms
  • Đơn vị hỗ trợ: ms (mili giây), s (giây), m (phút)
  • Kết quả trả về có thể không đầy đủ nếu quá thời gian quy định

1.4 Truy Vấn Nhiều Chỉ Mục

# Truy vấn một chỉ mục
GET logs_2023/_search

# Truy vấn nhiều chỉ mục
GET sales,jobs/_search

# Sử dụng wildcard
GET data-2023-*,backup_*/_search

2. Sử Dụng URI Search

2.1 Tham Số Phân Trang

GET _search?from=0&size=5

Thay thế bằng POST khi không hỗ trợ GET có body:

POST _search
{
    "from": 0,
    "size": 5
}

2.2 Danh Sách Tham Số

Tham SốMô Tả
qChuỗi truy vấn
sortQuy tắc sắp xếp: price:desc, _score
source_filteringLọc trường trả về: _source_include, _source_exclude

2.3 Ví Dụ Thực Tế

# Tìm sản phẩm có giá > 200
GET products/_search?q=price>200

# Tìm tài liệu không chứa từ "error"
GET logs/_search?q=-error

# Kiểm tra tồn tại tài liệu
GET inventory/_search?q=item:ABC123&size=0&terminate_after=1

2.4 Nguyên Lý Tìm Kiếm Khi Không Chỉ Định Trường

Khi không chỉ định trường tìm kiếm:

GET documents/_search?q=contract
  • Elasticsearch 6.0+ không sử dụng trường _all mặc định
  • Thay thế bằng tham số default_field hoặc chỉ định danh sách trường tìm kiếm

Thẻ: Elasticsearch search-api uri-search query-parameters distributed-search

Đăng vào ngày 12 tháng 6 lúc 22:41