Elasticsearch - IngestNode

index.blocks.read_only 1 doğru / yanlış Dizin ve dizin meta verilerini salt okunur hale getirmek için true, yazma ve meta veri değişikliklerine izin vermek için false olarak ayarlayın.

Bazen bir belgeyi dizine eklemeden önce dönüştürmemiz gerekir. Örneğin, belgeden bir alanı kaldırmak veya bir alanı yeniden adlandırmak ve ardından onu indekslemek istiyoruz. Bu, Ingest düğümü tarafından ele alınır.

Kümedeki her düğümün alma yeteneği vardır, ancak yalnızca belirli düğümler tarafından işlenecek şekilde özelleştirilebilir.

İlgili Adımlar

Besleme düğümünün çalışmasında iki adım vardır -

  • Bir ardışık düzen oluşturma
  • Bir doküman oluşturmak

Ardışık Düzen Oluşturun

Önce işlemcileri içeren bir ardışık düzen oluşturmak ve ardından aşağıda gösterildiği gibi ardışık düzeni yürütmek -

PUT _ingest/pipeline/int-converter
{
   "description": "converts the content of the seq field to an integer",
   "processors" : [
      {
         "convert" : {
            "field" : "seq",
            "type": "integer"
         }
      }
   ]
}

Yukarıdaki kodu çalıştırdığımızda şu sonucu alıyoruz -

{
   "acknowledged" : true
}

Bir Doküman Oluşturun

Ardından, boru hattı dönüştürücüsünü kullanarak bir belge oluşturuyoruz.

PUT /logs/_doc/1?pipeline=int-converter
{
   "seq":"21",
   "name":"Tutorialspoint",
   "Addrs":"Hyderabad"
}

Yukarıdaki kodu çalıştırırken, yanıtı aşağıda gösterildiği gibi alıyoruz -

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "result" : "created",
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   },
   "_seq_no" : 0,
   "_primary_term" : 1
}

Ardından, aşağıda gösterildiği gibi GET komutunu kullanarak yukarıda oluşturulan dokümanı ararız -

GET /logs/_doc/1

Yukarıdaki kodu çalıştırdığımızda şu sonucu alıyoruz -

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "_seq_no" : 0,
   "_primary_term" : 1,
   "found" : true,
   "_source" : {
      "Addrs" : "Hyderabad",
      "name" : "Tutorialspoint",
      "seq" : 21
   }
}

Yukarıda 21'in bir tam sayı olduğunu görebilirsiniz.

Boru Hattı Olmadan

Şimdi boru hattını kullanmadan bir belge oluşturuyoruz.

PUT /logs/_doc/2
{
   "seq":"11",
   "name":"Tutorix",
   "Addrs":"Secunderabad"
}
GET /logs/_doc/2

Yukarıdaki kodu çalıştırdığımızda şu sonucu alıyoruz -

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "2",
   "_version" : 1,
   "_seq_no" : 1,
   "_primary_term" : 1,
   "found" : true,
   "_source" : {
      "seq" : "11",
      "name" : "Tutorix",
      "Addrs" : "Secunderabad"
   }
}

Yukarıda 11'in ardışık düzen kullanılmadan bir dizi olduğunu görebilirsiniz.