Trường loại bỏ Elasticsearch

Truong Loai Bo Elasticsearch



“Khi làm việc với các chỉ số Elasticearch, bạn có thể gặp phải trường hợp cần xóa một trường khỏi tài liệu hiện có. Rất tiếc, Elasticsearch không cung cấp yêu cầu gốc mà chúng tôi có thể sử dụng để thực hiện hành động đã nói.

Tuy nhiên, chúng tôi có thể sử dụng API cập nhật tài liệu và chuyển một tập lệnh cho phép chúng tôi xóa một trường dựa trên tên của nó ”.







GHI CHÚ : Quá trình này yêu cầu bạn phải có kiến ​​thức cơ bản về tập lệnh Elasticsearch và API cập nhật tài liệu. Vui lòng khám phá tài liệu hoặc hướng dẫn của chúng tôi về chủ đề này để tìm hiểu thêm.



Hãy đi sâu vào.



Kiểm tra nếu tài liệu tồn tại

Trước khi xóa một trường khỏi một tài liệu cụ thể, bạn nên đảm bảo rằng tài liệu đích tồn tại trong chỉ mục.





Chúng tôi có thể sử dụng API tìm kiếm để tìm nạp tài liệu đích.

Ví dụ: giả sử chúng ta có chỉ mục kibana_sample_logs_data. Chúng tôi có thể tìm kiếm chỉ mục cho một tài liệu có chứa một IP cụ thể.



GHI CHÚ : Ví dụ trên chỉ được sử dụng cho mục đích minh họa. Bạn có thể sử dụng các phương pháp khác nhau để xác minh xem một tài liệu cụ thể có sẵn trong chỉ mục hay không.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: báo cáo' -H 'Content-Type: application / json' -d '
{
'kích thước': 0,
'query': {'match': {
'ip': '171.24.97.162'
}}
} '

Kết quả đầu ra:

{
'lấy': 3,
'timed_out': false,
'_shards': {
'tổng số': 1,
'thành công': 1,
'bỏ qua': 0,
'không thành công': 0
},
'lượt truy cập': {
'toàn bộ': {
'giá trị': 17,
'quan hệ': 'eq'
},
'max_score': null,
'lượt truy cập': []
}

}

Tiếp theo, một tập lệnh đơn giản có thể xóa một trường đích khỏi tài liệu. Bắt đầu bằng cách đăng nhập vào bảng điều khiển Kibana của bạn và chạy lệnh:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: báo cáo' -H 'Content-Type: application / json' -d '
{
'script': 'ctx._source.remove ('\' 'ip' \ '')'
} '

Yêu cầu trên sử dụng một tập lệnh ngữ cảnh đơn giản để cập nhật tài liệu và xóa trường “ip” với ID được chỉ định.

Đầu ra:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_version': 2,
'result': 'đã cập nhật',
'_shards': {
'tổng số': 2,
'thành công': 2,
'không thành công': 0
},
'_seq_no': 14074,
'_primary_term': 1
}

Sau khi tài liệu được cập nhật, bạn có thể xác minh bằng cách chạy truy vấn:

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: báo cáo'

Yêu cầu ở trên sẽ trả về dữ liệu được lưu trữ trong tài liệu với ID được chỉ định.

Chúng tôi có thể xác minh trường IP không còn trong tài liệu.

Sự kết luận

Trong bài viết này, bạn đã học cách sử dụng khả năng tạo tập lệnh Elasticsearch để xóa một trường khỏi tài liệu hiện có.

Cảm ơn vì đã đọc!!