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