29 Mart 2023 Çarşamba

Elasticsearch index,document ve mapping oluşturma

http://localhost:5601/app/dev_tools#/console


Create : ders isminde bir index ve buna ait bir document oluşturuyoruz.

PUT ders/_doc/1
{
  "ders_adi":"Css",
  "ders_suresi":60
}

.

Get: 1 nolu documetin bilgilerii getirir.

GET ders/_doc/1


Update:

POST ders/_update/1
{
  "doc":{"ders_suresi":45}  
}

Mapping: Schema oluşturmamız sağlar.

Elasticsearch schema-free bir yapıda iken neden her doküman bir type’a ait ve her type shcema gibi bir mapping içerir?

Elasticsearch schema-free’dir çünkü hiç bir şemaya sıkı sıkıya uymak durumunda değil ve tüm alanları içermek zorunda değildir.Üstüne üstlük documenetlar schemada olmayan bir alan da içerebilirler. Mapping ise o ana kadar indexlenmiş datalardaki en geniş property kapsamını tanımlar ve yeni bir alan geldiğinde elasticsearch otomatik olarak yeni alanı mappinge ekler. Bunu yaparken kendisi alanın tipini belirleyip daha doğrusu tahmin edip o şekilde ekler. Örneğin, değer 7 ise bunu long olarak varsayar. Ancak bu bazı durumlarda sıkıntı çıkarır.  Aslında alan string ise ve ilerleyen zamanda “hello world” eklemeye kalkarsanız fail olur. Bu sebeple productiondaki en safe yol mappingi indexlemeden önce belirlemek olacaktır.
PUT /ders
{
  "mappings": {
    "properties": {
        "ders_adi":{"type": "text"},
        "ders_suresi":{"type": "integer"},
        "eğitmen":{
          "properties": {
            "adi":{"type":"text"},
            "soyadi":{"type":"text"},
            "yasi":{"type":"integer"}           
          }
        }
    }
  }
}

oluşturduğumuz mappinge ulaşmak için 

GET ders/_mapping

mapping içerisindeki belli bir propertye ulaşmak için

GGET ders/_mapping/field/eğitmen.yasi

Delete İndex

DELETE /ders

Hiç yorum yok:

Yorum Gönder