にっき

Zoom面接done。 回線がクソすぎてとぎれとぎれだった。 色々知ってるなーと思いつつ、数百台〜数千台までオートスケールってのは凄いなと思った。

Read More

Elasticsearch 2.x で複数のドキュメントにUPDATE文のようなもの実行する

公式ドキュメントのこれだった。 Update By Query API なんだけどうまくいかず、結局はクエリと設定の両方の問題やってん。 設定 探した限りでは実行時の設定APIは用意されていなくて、 設定ファイルで変更しないといけないっぽい。 # script.inline: on がscriptアップデートに必要 $ echo “script.inline: on” >> elasticsearch.yml # 公式dockerのES $ cat elasticsearch.yml network.host: 0.0.0.0 script.inline: on クエリ POST /<index>/_update_by_query?conflicts=proceed に対して以下のようなクエリを投げる { “script”: { “inline”: “ctx._source.my_point= 100” }, “query”: { “term”: { “my_point”: 0 } } } これは↓のようなSQLのイメージ UPDATE my_hoge_index SET my_point=100 WHERE my_point=0; curlから。 $ curl -s http://localhost:9200/my_hoge_index/_update_by_query?conflicts=proceed -XPOST -d ‘ { “script”: { “inline”: “ctx._source.my_point= 100”}, “query”: { “term”: { “my_point”: 0 } } } ‘ | jq . { “took”: 1920, “timed_out”: false, “total”: 500, “updated”: 500, “batches”: 1, “version_conflicts”: 0, “noops”: 0, “retries”: 0, “throttled_millis”: 0, “requests_per_second”: “unlimited”, “throttled_until_millis”: 0, “failures”: [] }

Read More