Elasticsearch - Ánh xạ
Ánh xạ là phác thảo của các tài liệu được lưu trữ trong một chỉ mục. Nó xác định kiểu dữ liệu như geo_point hoặc chuỗi và định dạng của các trường có trong tài liệu và quy tắc để kiểm soát ánh xạ các trường được thêm động.
PUT bankaccountdetails
{
"mappings":{
"properties":{
"name": { "type":"text"}, "date":{ "type":"date"},
"balance":{ "type":"double"}, "liability":{ "type":"double"}
}
}
}
Khi chúng tôi chạy đoạn mã trên, chúng tôi nhận được phản hồi như hình dưới đây:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "bankaccountdetails"
}
Các loại dữ liệu trường
Elasticsearch hỗ trợ một số kiểu dữ liệu khác nhau cho các trường trong tài liệu. Các kiểu dữ liệu được sử dụng để lưu trữ các trường trong Elasticsearch được thảo luận chi tiết tại đây.
Các loại dữ liệu cốt lõi
Đây là những kiểu dữ liệu cơ bản như văn bản, từ khóa, ngày, dài, kép, boolean hoặc ip, được hầu hết các hệ thống hỗ trợ.
Các kiểu dữ liệu phức tạp
Các kiểu dữ liệu này là sự kết hợp của các kiểu dữ liệu cốt lõi. Chúng bao gồm mảng, đối tượng JSON và kiểu dữ liệu lồng nhau. Ví dụ về kiểu dữ liệu lồng nhau được hiển thị bên dưới & dấu trừ
POST /tabletennis/_doc/1
{
"group" : "players",
"user" : [
{
"first" : "dave", "last" : "jones"
},
{
"first" : "kevin", "last" : "morris"
}
]
}
Khi chúng tôi chạy đoạn mã trên, chúng tôi nhận được phản hồi như hình dưới đây:
{
"_index" : "tabletennis",
"_type" : "_doc",
"_id" : "1",
_version" : 2,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1
}
Một mã mẫu khác được hiển thị bên dưới -
POST /accountdetails/_doc/1
{
"from_acc":"7056443341", "to_acc":"7032460534",
"date":"11/1/2016", "amount":10000
}
Khi chúng tôi chạy đoạn mã trên, chúng tôi nhận được phản hồi như hình dưới đây:
{ "_index" : "accountdetails",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1
}
Chúng ta có thể kiểm tra tài liệu trên bằng cách sử dụng lệnh sau:
GET /accountdetails/_mappings?include_type_name=false
Loại bỏ các loại ánh xạ
Các chỉ số được tạo trong Elasticsearch 7.0.0 trở lên không còn chấp nhận ánh xạ _default_. Các chỉ số được tạo trong 6.x sẽ tiếp tục hoạt động như trước trong Elasticsearch 6.x. Các loại không được chấp nhận trong API trong 7.0.