Elasticsearch - IngestNode
index.blocks.read_only | 1 จริง / เท็จ | ตั้งค่าเป็น true เพื่อให้ข้อมูลเมตาของดัชนีและดัชนีเป็นแบบอ่านอย่างเดียวเป็นเท็จเพื่ออนุญาตให้เขียนและเปลี่ยนแปลงข้อมูลเมตา |
บางครั้งเราจำเป็นต้องแปลงเอกสารก่อนที่จะจัดทำดัชนี ตัวอย่างเช่นเราต้องการลบเขตข้อมูลออกจากเอกสารหรือเปลี่ยนชื่อเขตข้อมูลแล้วจัดทำดัชนี สิ่งนี้จัดการโดยโหนด Ingest
ทุกโหนดในคลัสเตอร์มีความสามารถในการนำเข้า แต่ยังสามารถปรับแต่งให้ประมวลผลโดยโหนดเฉพาะได้
ขั้นตอนที่เกี่ยวข้อง
มีสองขั้นตอนที่เกี่ยวข้องในการทำงานของโหนดการนำเข้า -
- การสร้างไปป์ไลน์
- การสร้างเอกสาร
สร้างไปป์ไลน์
ขั้นแรกให้สร้างไปป์ไลน์ที่มีโปรเซสเซอร์จากนั้นดำเนินการไปป์ไลน์ดังที่แสดงด้านล่าง -
PUT _ingest/pipeline/int-converter
{
"description": "converts the content of the seq field to an integer",
"processors" : [
{
"convert" : {
"field" : "seq",
"type": "integer"
}
}
]
}
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
{
"acknowledged" : true
}
สร้างเอกสาร
ต่อไปเราจะสร้างเอกสารโดยใช้ตัวแปลงไปป์ไลน์
PUT /logs/_doc/1?pipeline=int-converter
{
"seq":"21",
"name":"Tutorialspoint",
"Addrs":"Hyderabad"
}
ในการรันโค้ดด้านบนเราจะได้รับคำตอบตามที่แสดงด้านล่าง -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1
}
ต่อไปเราจะค้นหาเอกสารที่สร้างขึ้นด้านบนโดยใช้คำสั่ง GET ดังที่แสดงด้านล่าง -
GET /logs/_doc/1
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"Addrs" : "Hyderabad",
"name" : "Tutorialspoint",
"seq" : 21
}
}
คุณจะเห็นด้านบนว่า 21 กลายเป็นจำนวนเต็ม
ไม่มีท่อ
ตอนนี้เราสร้างเอกสารโดยไม่ต้องใช้ไปป์ไลน์
PUT /logs/_doc/2
{
"seq":"11",
"name":"Tutorix",
"Addrs":"Secunderabad"
}
GET /logs/_doc/2
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "2",
"_version" : 1,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"seq" : "11",
"name" : "Tutorix",
"Addrs" : "Secunderabad"
}
}
คุณจะเห็นด้านบนว่า 11 เป็นสตริงที่ไม่มีการใช้ไปป์ไลน์