Bu dersimizde elasticsearch type oluşturma, typeleri listeleme, type güncelleme, type silme konularından bahsedeceğim.
İlk olarak elasticsearch’ü başlatalım. Eğer kurulu değilse önceki yazımda bahsettiğim yazıya buradan göz atabilirsiniz. Yapacağım işlemleri postman ve komut isteminden yapacağım. Postman uygulamasını veya komut istemini çalıştıralım.
Elasticsearch Type Ekleme
Ekleme işlemi için POST methoduyla localhost:9200/index/type olarak göndermek gerekir.
Örneğimizde, index: blog, type:post olarak gönderiyoruz. Eğer blog adında index imiz yok ise bu işlem ile index imizde otomatik olarak oluşturulur.
Komut isteminde,
curl -XPOST http://localhost:9200/blog/post?pretty -d'
{
"id":1,
"user_id":1,
"title": "Elasticsearch Dersi",
"content": "elasticsearch",
"status": "1",
"slug": "elasticsearch-dersi"
}'
Postman,

“create”:true değeri dönüyorsa ekleme işleminiz başarıyla gerçekleşti.

Eklediğimiz yeni kaydı listeliyelim.
Elasticsearch Type Listeleme
Listeleme işlemini GET methoduyla localhost:9200/index/type/_search url yapısıyla arama yaparak tüm kayıtlarımızı listeyebiliriz.
Komut işteminde,
curl -XGET http://localhost:9200/blog/post/_search?pretty=true
Postman,
Güncelleme işlemi _id’e göre yapılır. O yüzden bizim _id’i de kendimiz
girmemiz gerekir. Bunun için sadece url parametresine id değerini
eklememiz gerekir.
Komut isteminde,
curl –XPOST http://localhost:9200/blog/post/2?pretty -d'
{
"id":2,
"user_id":1,
"title": "Elasticsearch Dersi",
"content": "elasticsearch",
"status": "1",
"slug": "elasticsearch-dersi "
}'
Postman,
Sonuç,
Görüldüğü ekleme işlemimiz başarıyla gerçekleşti.
Elasticsearch Type Güncelleme
Güncelleme işlemini ise PUT methoduyla localhost:9200/index/type/id url parametresi ile yapılır.
Komut isteminde,
curl –XPUT http://localhost:9200/blog/post/2?pretty -d'Postman,
{
"id":2,
"user_id":1,
"title": "Elasticsearch Dersi Yenilendi.",
"content": "elasticsearch",
"status": "1",
"slug": "elasticsearch-dersi-yenilendi"
}'
Sonuç,
“result”: updated ile güncelleme yapıldığını, “created”:false ile yeni bir eklemenin yapılmadığını görebiliyoruz.
Aslında elasticsearch de put işlemi ekleme işlemi de yapar. Çalışma mantığı updateAndCreate yani eğer kayıt varsa güncelle, kayıt yoksa ekleme işlemi yap demektir. Gönderdiğiniz id değerini bulamazsa yeni bir kayıt olarak ekleyecektir.
Kayıtlarımızı tekrar listeliyelim.
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1,
"hits": [
{
"_index": "blog",
"_type": "post",
"_id": "AV-6Qmf0ZDgc4rQDUClS",
"_score": 1,
"_source": {
"id": 1,
"user_id": 1,
"title": "Elasticsearch Dersi",
"content": "elasticsearch",
"status": "1",
"slug": "elasticsearch-dersi"
}
},
{
"_index": "blog",
"_type": "post",
"_id": "2",
"_score": 1,
"_source": {
"id": 2,
"user_id": 1,
"title": "Elasticsearch Dersi Yenilendi.",
"content": "elasticsearch",
"status": "1",
"slug": "elasticsearch-dersi-yenilendi"
}
}
]
}
}
2. kaydımızın güncellendiği görebiliriz.
Elasticsearch Type Silme
Silme işleminde ise Delete methoduyla localhost:9200/index/type/id url ile id parametresiyle gönderdiğimiz kaydı silebiliriz.
Komut istemi,
curl -XDELETE localhost:9200/blog/post/2?prettyPostman,
_id si 2 olan kaydı başarıyla sildik.
Çoklu Kayıt Ekleme (Bulk)
Örnek veri olarak elasticsearch kendi hazırlamış olduğu veriyi ekleyeceğim. Link: https://raw.githubusercontent.com/elastic/elasticsearch/master/docs/src/test/resources/accounts.json
Dosyamızı indirelim
POST methoduyla http://localhost:9200/index/type/_bulk --data-binary @dosyamiz.json
Komut istemi, öncelikle dosyayı indirdiğimiz konuma gidelim.
curl -XPOST http://localhost:9200/blog/user/_bulk --data-binary @accounts.json
Postman,
Sonuç,
Kayıtlarımız başarıyla eklendi. Eğer json içerinde _index, _type değerleri girilmiş bir json hazırlarsanız url parametreniz http://localhost:9200/_bulk ---data-binary @dosyamiz.json şekinde olacaktır.
Bir sonraki elasticsearch dersimizde arama işlerimlerinden bahsedeceğim. Oluşturduğumuz bu kayıtlar üzerinden örnekler yaparak devam edeceğim.