| method | url | 描述 |
|---|---|---|
| PUT | localhost:9200/索引/类型/文档id | 创建文档(随机ID) |
| POST | localhost:9200/索引/类型 | 创建文档(指定ID) |
| POST | localhost:9200/索引/类型/文档id/_update | 修改文档 |
| DELETE | localhost:9200/索引/类型/文档id | 删除文档 |
| GET | localhost:9200/索引/类型/文档id | 通过文档id查询稳定 |
| POST | localhost:9200/索引/类型/_search | 查询所有数据 |
查询所有支持的cat指令
GET _cat
查询结果
# 显示每个节点分片数量、占用空间
/_cat/allocation
#显示索引分片信息
/_cat/shards
/_cat/shards/{index}
#显示master节点信息
/_cat/master
#显示node节点信息
/_cat/nodes
/_cat/tasks
#索引信息
/_cat/indices
/_cat/indices/{index}
#查看 索引占用内存情况
/_cat/segments
/_cat/segments/{index}
# 集群或者索引文档数量
/_cat/count
/_cat/count/{index}
#显示正在进行和先前完成的索引碎片恢复的视图
/_cat/recovery
/_cat/recovery/{index}
#查看集群健康状况
/_cat/health
#显示正在等待的任务
/_cat/pending_tasks
# 索引别名
/_cat/aliases
/_cat/aliases/{alias}
#查看线程池
/_cat/thread_pool
/_cat/thread_pool/{thread_pools}
# 插件列表
/_cat/plugins
# 返回集群中每个数据节点上的字段数据缓存当前使用的堆内存量 。
/_cat/fielddata
/_cat/fielddata/{fields}
# 获取node属性信息
/_cat/nodeattrs
#返回集群的快照存储库。
/_cat/repositories
#返回有关存储在一个或多个存储库中的快照的信息。
/_cat/snapshots/{repository}
#显示模板信息
/_cat/templates
/_cat/ml/anomaly_detectors
/_cat/ml/anomaly_detectors/{job_id}
/_cat/ml/trained_models
/_cat/ml/trained_models/{model_id}
/_cat/ml/datafeeds
/_cat/ml/datafeeds/{datafeed_id}
/_cat/ml/data_frame/analytics
/_cat/ml/data_frame/analytics/{id}
/_cat/transforms
/_cat/transforms/{transform_id}
二、索引指令相关
一.新增索引
1、指定ID创建索引
如果指定ID创建索引,需要携带请求体
PUT 索引名称/类型名称(7版本可以创建为_doc)/索引ID
{
#请求体
}
2、自动生成ID创建索引
不需要携带请求体
PUT 索引名称2、删除索引
DELETE 索引名称3、查询索引
查询索引信息
GET 索引名称
查询所有索引信息带上表头并且进行美化
GET _cat/indices?v&pretty4、关闭索引
如果关闭了一个索引,就无法通过ES来读取和写入其中的数据,直到再次打开它。
POST 索引名称/_close5、打开索引
POST /索引名称/_open三、增
新增使用PUT和POST都是可以的,区别在于PUT需要指定ID,而POST不需要。
PUT是作用在集合之上,而PUT是作用在对应的资源之上。
PUT/POST 索引名称/_doc/文档ID
{
#请求体
}
2、不指定ID新增
POST 索引名称/_doc
{
#请求体
}
四、删
DELETE 索引名称/_doc/文档ID五、改
PUT会将新的json值完全替换掉旧的;而POST方式只会更新相同字段的值,其他数据不会改变,新提交的字段若不存在则增加。
一.不覆盖原数据POST /索引名称/_doc/文档ID/_update
{
#请求体
}
二.覆盖原数据
PUT修改会覆盖元数据,如果历史数据是三个字段,新增的是两个字段,没有写的那个字段会消失,这个不好用。
PUT /索引名称_doc/文档ID
{
#请求体
}
六、查
查询比较复杂
1、简单查询 2.查询所有数据GET 索引名称/_search2.查询所有数据
GET 索引名称/_mapping2、精确查询term
erm是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇
1.termaddress中必须有完整的zhejiang
POST lib3/user/_search
{
"query":{
"term":{
"address":"zhejiang"
}
}
}
2.terms多值
term只能查询一个词,terms可以查询多个词。
POST lib3/user/_search
{
"query":{
"terms":{
"interests":["youyong","changpao"]
}
}
}
3.term多个字段
3、匹配查询
1.match
2.match_all
3.multi_match
4.multi_phrase
5.Wildcard Query通配符查询
*表示任意字符,?表示任意单个字符
POST lib3/user/_search
{
"query": {
"wildcard": {
"name": "zhang*"
}
}
}
6.Prefix Query前缀查询
查找包含带有指定前缀
POST lib3/user/_search
{
"query": {
"prefix": {
"name": "zhang"
}
}
}
7.Exsit Query非空查询
POST lib3/user/_search
{
"query": {
"exists": {
"field": "name"
}
}
}
8.ids多ID查询
POST lib3/user/_search
{
"query": {
"ids": {
"values": [1, 2]
}
}
}
3、bool查询
1.must
返回的文档必须满足must子句的条件,并且参与计算分值
2.should返回的文档可能满足should子句的条件。在一个Bool查询中,如果没有must或者filter,有一个或者多个should子句,那么只要满足一个就可以返回。minimum_should_match参数定义了至少满足几个子句。
3.must_not返回的文档必须不满足must_not定义的条件。
4.filter过滤查询返回的文档必须满足filter子句的条件。但是不会像Must一样参与计算分值
4、功能查询 1.分页查询 (1)浅分页from:0从第几个开始 size:6总数是多少个,默认是10个
在这里插入代码片2.高亮查询



