ElasticSearchは、マニュアル(英語)がしっかりしてるので、そっちを参考にしてください。
マニュアル(本家):https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
とりあえず、理解しやすく、MySQLのSQL文と比較しながら、まとめます。
環境
- CentOS 7.1
- ElasticSearch 5.6.2
※ElasticSearch 6.xでは、curlに「 -H 'Content-Type: application/json'」を付ける必要があります。
目次
- インデックス(マッピング)操作
- ドキュメント(レコード)操作
- データ取得
- スナップショット
- elasticdump(インポート/エクスポート)
インデックス(マッピング)操作
■ インデックス作成
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html
※ただ、わざわざ、インデックスを作らなくても、データを登録すると勝手に作られる。
elasticsearch
curl -XPUT http://localhost:9200/hoge_index?pretty
MySQL
CREATE DATABASE hoge_index
■ インデックス作成&マッピングの定義
hoge_mapping.json
{
"mappings" : {
"hoge_type" : {
"properties" : {
"id" : { "type" : "long", "store" : "yes" },
"hoge_field_1" : { "type" : "string", "store" : "yes", "index" : "analyzed" },
"hoge_field_2" : { "type" : "string", "store" : "yes", "index" : "analyzed" },
"hoge_field_3" : { "type" : "string", "store" : "yes", "index" : "analyzed" }
}
}
}
}
elasticsearch
curl -XPUT 'http://localhost:9200/hoge_index?pretty' -d @hoge_mapping.json
■ インデックスの削除
elasticsearch
curl -XDELETE http://localhost:9200/hoge_index?pretty
MySQL
DROP DATABASE hoge_index
■ 全インデックスの削除
elasticsearch
curl -XDELETE http://localhost:9200/*?pretty
■ インデックスの一覧
elasticsearch
curl -XGET http://localhost:9200/_aliases?pretty
MySQL
SHOW TABLES
■ インデックスの存在チェック
elasticsearch
curl -IHEAD 'http://localhost:9200/hoge_index'
bashでチェックする方法
ret=`curl -s -IHEAD 'http://localhost:9200/hoge_index'`
if [ "`echo $ret | grep '200 OK'`" ]; then
echo "200 OK"
fi
■ エイリアス
・エイリアスの追加
elasticsearch
curl -XPOST 'http://localhost:9200/_aliases?pretty' -d '{
"actions" : [
{ "add" : { "index" : "hoge_index", "alias" : "hoge" } }
]
}'
・エイリアスの削除
elasticsearch
curl -XPOST 'http://localhost:9200/_aliases?pretty' -d '{
"actions" : [
{ "remove" : { "index" : "hoge_index", "alias" : "hoge" } }
]
}'
参考
- elasticsearch-php documents
- http://morizyun.github.io/blog/elasticsearch-server-basic-api/ (mappingについて)
- http://qiita.com/4cteru/items/074d8dc956103c36b7fa (bulkについて)
- https://medium.com/hello-elasticsearch/elasticsearch-9a8743746467 (mappingについて)
- http://qiita.com/kompiro/items/5abeae93dc386ab669bf (mappingについて)
- https://medium.com/hello-elasticsearch/elasticsearch-c8c9c711f40 (エイリアス)