Mehmet AYHAN

Mehmet AYHAN

Yazılım Geliştirici

Elasticsearch type oluşturma, type listeleme, type güncelleme, type silme

Elasticsearch type oluşturma, type listeleme, type güncelleme, type silme

Yayın Tarihi   | 5948 Görüntülenme

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'
{
    "id":2,
    "user_id":1,
    "title": "Elasticsearch Dersi Yenilendi.",
    "content": "elasticsearch",
    "status": "1",
    "slug": "elasticsearch-dersi-yenilendi"
}'
Postman,


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?pretty
Postman,


 
_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.