上一篇已经安装Elasticsearch的两个节点 和 Kibana现在进行简单的操作
简单理解对应为关系型数据库的 数据库 表 一行记录
如果在postMan中操作需要根据上图的方式来进行操作
分片shard是es分布式系统的高可用方案 es会将一份数据进行分片自己理解为分解数据房租不同的机器上(默认为5份可以配置) 备份shard默认为1也就是每个分片都有一个备份,如果其中的一个分片宕机的话将由备份进行其他的请求操作实现高可用 , 相同的分片不能和相对于的备份存储在一台机器当中。
PUT /people 创建一个 人 的索引
POST /people/man/ 为索引添加数据 类型会自动创建
{
"name":"redis",
"school":"qinghua",
"introduce":"我是我是我jianqiao",
"age":28,
"birthday":"1996-06-22",
"score":479
}
现在修改数据 有两个rabbitmq修改为scala
POST /people/man/AWs_LjUOYHh6lG16ttAd/_update
{
"doc": {
"name":"scala"
}
}
kibana还是挺方便的可以自动补全
文档删除
删除索引可以在head中操作也可以脚本
------------------------------------------------------------查询是es的比较强的一个点----------------------------------------------------------------------------
GET _search
{
"query": {
"match_all": {}
}
} 查询所有
-----------------------------
GET _search
{
"query":{
"match_all":{
}
},
"from":1,
"size":3
} 添加分页 from从第几个开始size几个
--------------------------
GET _search
{
"query":{
"match_all":{
}
},
"sort":[
{
"age":{
"order":"desc"
}
}
],
"_source":[
"age"
]
} 根据年龄排序 _source显示相关的字段即可 查看更方便
-------------------------
GET _search
{
"query":{
"match":{
"name":"elasticSearch入门 "
}
}
} es会将elasticSearch入门 进行拆分为elasticSearch和入门 进行匹配只要匹配其中一个都会进行返回
---------------------
GET _search
{
"query":{
"match_phrase":{
"name":"rabbitmq"
}
}
} 这个是完整匹配必须一模一样的才进行返回如 rabbitmq rabbitmq A 但是rabbitAmq不行
-------------------------------------------------
GET _search
{
"query":{
"terms":{
"name":[
"php",
"ajax"
]
}
}
} 查询名字是php 和ajax的doc 完全匹配
GET _search
{
"query":{
"term":{
"score":"479"
}
}
}一个terms和term
------------------------------------------------------
GET _search
{
范围查询400-500分数的doc 可以比较时间now表示当前时间
-----------------------------------------------------
GET _search
{
"size":0,
"aggs":{
"group_haha":{
"terms":{
"field":"age"
}
}
}
} 聚合查询查询相同年级的人数有多少个
GET _search
{
"size":0,
"aggs":{
"group_haha":{
"terms":{
"field":"age"
}
},
"group_hehe":{
"terms":{
"field":"score"
}
}
}
}可以进行多个聚合同时返回
-------------------------
GET _search
{
"size":0,
"aggs":{
"group_stats":{
"stats":{
"field":"score"
}
}
}
} 可以进行计算返回最大最小平均总和也可以直接查询最小 将关键字stats、改为min或max
--------------------------
GET _search
{
"query":{
"multi_match":{
"query":"java",
"fields":[
"introduce",
"name"
]
}
}
} multi_match名称和介绍包含java就符合条件
------------------------
GET _search
{
"query":{
"query_string":{
"fields":[
"introduce"
],
"query":"java and jianqiao"
}
}
}
GET _search
{
"query":{
"query_string":{
"query":"(java and jianqiao) OR scala"
}
}
}
语法查询感觉这个比较强大可以使用关键字 and 和or fields可以去除可以多个,去除之后查询整条doc
-----------------------------
GET _search
{
"query":{
"bool":{
"filter":{
"term":{
"age":"19"
}
}
}
}
} 过滤查询只查看年龄是19岁的doc term 和terms都可以
--------------------------------------
GET _search
{
"query":{
"bool":{
"should":[
{
"match":{
"name":"php"
}
},
{
"match":{
"age":"18"
}
}
]
}
}
} bool should应当满足条件满足其中一个就可以 或
-------------------------------------------------------
GET _search
{
"query":{
"bool":{
"must":[
{
"match":{
"name":"php"
}
},
{
"match":{
"age":"18"
}
}
]
}
}
} 两个条件都要满足 与的关系
--------------------------------
GET _search
{
"query":{
"bool":{
"must_not":[
{
"term":{
"name":"php"
}
}
]
}
}
} 不显示不看名称是php的doc
版本为5.2.0不版本可能有差异,都是自学文章欢迎错误指正
原文:https://www.cnblogs.com/jiahaoJAVA/p/10996745.html