Terim bir değer dizisine eklenmenin bir yolu var mı? ÖrneğinElasticsearch - terim nasıl eklenir?
benim belge aşağıdaki gibiyse:
{
"items": ["item1", "item2", "item3"]
}
ben buna "item4" ve "item5" eklemek istiyorsunuz.
2 sorguda yapmalı mıyım? Mevcut değer listesini yüklemek için bir, ve o listeyi güncellemek için? veya bu öğeleri bir sorguda eklememe izin verecek daha zarif bir yol var mı?
Böyle elastic4s ile yapmak çalışıyorum:
, ben harika komut dosyalarını etkinleştirmeniz gerekir ve ben birden çok öğe ile bunu nasıl emin değilim Yukarıdaki kod parçacığını kullanmak içinclient.execute(ElasticDsl.update id id in indexName/documentType script {
script(s"ctx._source.items += tag").params(Map("tag"->"item4"))
})
.
Herhangi bir fikrin var mı?
Basit bir şekilde iki sorgu ile yapabilirsiniz. Ancak, özel komut dosyasını [1] kullanabilirsiniz (http://stackoverflow.com/questions/18028280/elasticsearch-upserting-and-appending-to-array), [2] (http://stackoverflow.com/questions/31142729/bir sorgu ile yapmak için elasticsearch-field-list-array-değilse-bir-var-öğe-ekle). – pkhlop
@pkhlop Teşekkürler. Birden fazla ürüne ne dersiniz? bunu nasıl yapabilirim? – Tomer