Client Elasticsearch cho Mac
Một console cho request Query DSL, và một data grid đọc mỗi index như một table, sửa document theo _id. Cả hai đều không dùng SQL: mọi thao tác là một REST request gửi tới cluster.
Dùng được trên MacDriver được tải về ở lần đầu bạn chọn Elasticsearch
Tóm tắt
- Ngôn ngữ query
- Query DSL
- Driver
- Tải về ở lần dùng đầu
- Cách kết nối
- Host và port, SSL/TLS
- Port mặc định
- 9200
- Phiên bản tối thiểu
- 7.x, theo tài liệu
- iPhone và iPad
- Không mở được
Kết nối
Nhập host và REST port của cluster, rồi chọn Phương thức xác thực (Auth Method). Username & Password gửi HTTP Basic. API Key gửi nội dung ô này trong header Authorization: ApiKey, nên hãy dán giá trị encoded mà request tạo API key trả về. None dành cho cluster phát triển đã tắt bảo mật. Mỗi connection tới một cluster, nên form không có ô Cơ sở dữ liệu (Database).
Connection mới để SSL ở Đã tắt (Disabled), tức HTTP thường. Mọi chế độ khác dùng HTTPS: Ưu tiên (Preferred) và Bắt buộc, bỏ qua xác minh (Required, skip verify) chấp nhận chứng chỉ tự ký, còn Xác minh CA (Verify CA) và Xác minh danh tính (Verify Identity) kiểm tra chứng chỉ. Elasticsearch 8.x bật sẵn bảo mật và TLS, nên cluster 8.x thường cần HTTPS và thông tin đăng nhập.
Index và console Query DSL
Console nhận method, path và JSON body tùy chọn, giống Kibana Dev Tools, chẳng hạn GET /orders/_search kèm một query match. Các hit tìm được hiện thành dòng, request _cat có format=json và các response dạng mảng khác thành table, còn lại hiển thị dưới dạng JSON đã định dạng. Endpoint _sql không dùng được.
Sidebar liệt kê index như table và ẩn các tên bắt đầu bằng dấu chấm. Cột lấy từ mapping: field kiểu object được trải thành đường dẫn có dấu chấm như address.city, field nested có một cột JSON cho cả mảng cùng một cột cho mỗi field con, và mọi document đều có _id, _index và _score.
Bộ lọc theo cột được chuyển thành query term, range, wildcard, terms và exists, còn dòng lọc SQL thô (Raw SQL) nhận cú pháp Lucene, như name:Widget, và gửi đi dưới dạng query_string. Sắp xếp theo field text sẽ dùng subfield .keyword nếu mapping có.
Thay đổi trong data grid thành REST call theo _id: _update cho document được sửa, _doc để tạo hoặc xóa document. Nhập _id vào dòng mới để tự đặt tên document. Mảng nested được sửa qua cột JSON của nó; giá trị gõ vào một cột con sẽ chặn thao tác lưu, nêu tên cột đó và không gửi gì đi.
Mapping
Mapping chỉ đọc trong TablePro. Không có lệnh Truncate, vì cách gần nhất của Elasticsearch là _delete_by_query, chạy bất đồng bộ và báo xung đột theo từng document; hãy gửi nó từ console. Xóa một index từ sidebar sẽ gửi đúng request DELETE mà hộp xác nhận hiển thị.
Export
TablePro không có import cho Elasticsearch. Export đọc toàn bộ index bằng point-in-time và search_after, nên không bị giới hạn bởi result window, rồi ghi ra CSV, JSON hoặc XLSX.
iPhone và iPad
Ứng dụng cho iPhone và iPad không có driver Elasticsearch. Connection Elasticsearch đồng bộ từ máy Mac vẫn hiện trong danh sách nhưng không mở được.
Giới hạn
- Không hỗ trợ OpenSearch.
- Alias và data stream không được liệt kê trong sidebar. Hãy gọi chúng theo tên trong console.
- Không hỗ trợ SSH tunnel.
Câu hỏi về Elasticsearch
Tôi có phân trang vượt quá result window được không?
Được. Khi vượt quá window mặc định của Elasticsearch, việc phân trang chuyển sang search_after trên một point-in-time. Điểm chuyển cố định ở mức mặc định, nên index đã hạ max_result_window sẽ báo lỗi trước khi chuyển; hãy nâng thiết lập đó về mức mặc định.
Vì sao sắp xếp theo _id mà thứ tự dòng không đổi?
Elasticsearch không sắp xếp được theo _id, hay theo field text không có subfield .keyword, nên TablePro bỏ cột đó ra khỏi phần sắp xếp. Hãy thêm subfield keyword vào mapping, hoặc sắp xếp theo một field keyword.
Tải TablePro
Yêu cầu macOS 13 Ventura trở lên