集群--节点--索引--文档--分片(主/副)
cluster, node, index, document,shards及replica
查看当前index的主副分片配置:
curl -XGET http://localhost:9200/apollo/_settings?pretty
默认创建 5个主分片,一个副分片,主分片数一旦创建,即固定无法更改
创建索引并插入一个文档:
curl -XPOST 'http://localhost:10290/twitter/_doc/1?pretty' -H 'Content-type: application/json' -d '{ "user": "GB", "uid": 1, "city": "Shenzhen", "province": "Guangdong", "country": "China" }'
查询:
curl -XGET 'http://localhost:10290/twitter/_doc/1?pretty' -H 'Content-type: application/json'
直接得到文档的source信息:
curl -XGET 'http://localhost:10290/twitter/_doc/1/_source?pretty' -H 'Content-type: application/json'
直接获得source的部分字段:
curl -XGET 'http://localhost:10290/twitter/_doc/1?_source=user,uid,city&pretty' -H 'Content-type: application/json'
修改文档:
这里的1指的是 id 为 1 的文档
curl -XPUT 'http://localhost:10290/twitter/_doc/1?pretty' -H 'Content-type: application/json' -d '{ "user": "GB", "uid": 1, "city": "北京", "province": "北京", "country": "中国", "location":{ "lat":"29.084661", "lon":"111.335210" } }'
{ "user": "GB", "uid": 1, "city": "北京", "province": "北京", "country": "中国", "location": { "lat": "29.084661", "lon": "111.335210" } }
使用PUT的这个方法,每次修改一个文档时,我们需要把文档的每一项都要写出来。这对于有些情况来说,并不方便,所以:
_update尝试未成功,不知为何
搜索并对搜索结果修改:
curl -XPOST 'http://localhost:10290/twitter/_update_by_query?pretty' -H 'Content-type: application/json' -d '{"query":{"match":{"city":"北京"}}, "script":{"source":"ctx._source["province"]=params["province"]", "lang":"painless", "params":{"province":"河北省"}}}'
{ "query": { "match": { "city": "北京" } }, "script": { "source": "ctx._source["province"]=params["province"]", "lang": "painless", "params": { "province": "河北省" } } }
删除一个文档:
2 为文档 id
curl -XDELETE 'http://localhost:10290/twitter/_doc/2?pretty'
根据查询条件删除一个文档:
curl -XPOST 'http://localhost:10290/twitter/_delete_by_query?pretty' -H 'Content-type: application/json' -d '{"query":{"match":{"city":"Shenzhen"}}}'
删除一个index:
DELETE twitter
curl -XDELETE 'http://localhost:10290/twitter?pretty'
bulk命令尝试不成功
关闭索引:
关闭索引后无法查询
curl -XPOST 'http://localhost:10290/twitter/_close?pretty'
打开索引:
curl -XPOST 'http://localhost:10290/twitter/_open?pretty'