day1:使用elasticsearch增删改查文档

集群--节点--索引--文档--分片(主/副)
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'

原文地址:https://www.cnblogs.com/zhanghaibin16/p/13887441.html