Sự khác biệt giữa hai, những người nắm giữ tất cả các trường, eludes tôi.sự khác biệt giữa _source và _all trong Elasticsearch
Nếu tài liệu của tôi có:
{"mydoc":
{"properties":
{"name":{"type":"string","store":"true"}},
{"number":{"type":"long","store":"false"}},
{"title":{"type":"string","include_in_all":"false","store":"true"}}
}
}
Tôi hiểu _source đó là một lĩnh vực mà có tất cả các lĩnh vực. Nhưng vậy thì sao? Điều này có nghĩa là "tên" được lưu nhiều lần (hai lần? Trong _src và trong _all), tăng không gian đĩa mà tài liệu cần?
"Tên" được lưu trữ một lần cho trường này, một lần cho _source và một lần cho _all? Còn về "số", anh ta có được lưu trữ trong tất cả, mặc dù không có trong _source không?
Khi nào tôi nên sử dụng _source trong truy vấn của mình và khi _all?
Usecase nơi tôi có thể tắt "_all" và chức năng nào sau đó sẽ bị từ chối?
Cảm ơn! Nếu tôi đặt trường thành "chỉ mục": "không", trường đó vẫn xuất hiện trong "_all", phải không? Vì vậy, nếu tôi không có ý định thực hiện tìm kiếm văn bản đầy đủ trên nhiều trường được chỉ định tại một thời điểm, hãy biến "include_in_all" thành false trên tất cả các trường của tôi sẽ tiết kiệm không gian, đúng không? – eran
Tôi đã thêm một số suy nghĩ khác vào câu trả lời của mình trong thời gian chờ đợi. Trường '_all' được đặt mặc định là' "index": yes' và không liên quan đến ánh xạ của các trường khác nếu không khi sử dụng tùy chọn 'include_in_all'. Nếu bạn không sử dụng trường '_all' tôi sẽ vô hiệu hóa nó hoàn toàn thay vì thiết lập tất cả các trường thành' "include_in_all": false'. – javanna
Cảm ơn, việc vô hiệu hóa trường '_all' có tiết kiệm dung lượng đĩa đáng kể không? (có vẻ như nó gần như tăng gấp đôi không gian cần thiết, trực quan) – eran