经常使用的ElasticSearch查询(索引操作)
由于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
※不过,即使不特意创建索引,只要将数据注册,索引会自动创建。
curl -XPUT http://localhost:9200/hoge_index?pretty
CREATE DATABASE hoge_index
■ 索引创建与映射定义
{
"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" }
}
}
}
}
curl -XPUT 'http://localhost:9200/hoge_index?pretty' -d @hoge_mapping.json
■ 删除索引
curl -XDELETE http://localhost:9200/hoge_index?pretty
DROP DATABASE hoge_index
■ 删除全部索引
curl -XDELETE http://localhost:9200/*?pretty
■ 索引目录
curl -XGET http://localhost:9200/_aliases?pretty
SHOW TABLES
■ 檢查索引的存在
curl -IHEAD 'http://localhost:9200/hoge_index'
ret=`curl -s -IHEAD 'http://localhost:9200/hoge_index'`
if [ "`echo $ret | grep '200 OK'`" ]; then
echo "200 OK"
fi
■ 别名
・添加别名
curl -XPOST 'http://localhost:9200/_aliases?pretty' -d '{
"actions" : [
{ "add" : { "index" : "hoge_index", "alias" : "hoge" } }
]
}'
删除别名
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 (エイリアス)