经常使用的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 (エイリアス)

广告
将在 10 秒后关闭
bannerAds