es = Elasticsearch::Client.new ({ url: 'http://localhost:9200' }) es.update ({ index: 'user', type: 'users', id: '.....', body: {name: "test"} })
と id の位置にドキュメントの _id の文字列を入れて呼んでみたのですが
エラーは起きないもののデータの変更もされません
結果はこんな感じです
{"_index"=>"user", "_type"=>"users", "_id"=>"...", "_version"=>9, "result"=>"noop", "_shards"=>{"total"=>0, "successful"=>0, "failed"=>0}}
id が一致するものの body 部分のフィールドだけ更新してくれるものかと思っていたんですが違うのでしょうか
elasticsearch-rail update
で検索しても使い方がほとんど引っかからず
https://qiita.com/t-sato/items/eb13962bebae2ebbbff1
この記事で
client.update( { index: index_name, type: document_type, id: self.id, body: { doc: attributes } }.merge(options) )
という感じで使っていたので真似してみたのですが attributes の中身がどうなってるかよくわかりません
どこかにドキュメントがあったりしないでしょうか
追記
https://www.elastic.co/guide/jp/elasticsearch/reference/current/gs-update-docs.html
本家のドキュメントだと ID は数字の1となっているのですが
users の _id に入っているのは長い16進数の文字列になっています
マッピングを作ったのは自分ではないのでこれが何なのかよくわかっていないのですが
ID というのは _id とは別のものなのでしょうか
ドキュメントの ID を調べるにはどうすればいいのでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。