一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。
1、前言
最近工作中要使用elasticsearch7.15.0,身为公司的一块砖,项目需要啥技术咱就得学啥技术。以下为初学时的经验。以下内容均基于kibana操作
2、增
//id由es创建
PUT /索引名称
{
"field" : "value"
}
//id由自己创建
PUT /索引名称/id
{
"field" : "value"
}
当大批量插入数据时,id当由ES创建,会提高写入的效率。
注意:当使用PUT /索引名称/id
时,会根据 id 去对应的索引中查询文档,如果能查到,则执行修改操作;如果查不到,才会新建一条数据。
3、查
3.1 轻量搜索
//根据索引名称查询索引下的全部内容
GET /索引名称/_search
//根据索引名称和文档id查询文档信息
GET /索引名称/id
//检查文档是否存在
HEAD /索引名称/id
//搜索role_id 为 admin 的所有文档
/*query match 用于搜索单个字段,首先会针对查询语句进行解析,主要对查询语句进行分词,分词后查询语句的任何一个词项被匹配,文档就会被搜到,默认情况下相当于对分词后词项进行 or 匹配操作。*/
GET /索引名称/_search
{
"query" : {
"match": {
"role_id" : "admin"
}
}
}
3.2 复杂查询
//查询 role_id 为 admin 且 年龄大于 20 岁的数据 使用 match,filter两种过滤器
GET /索引名称/_search
{
"query" : {
"bool" : {
"must" : {
"match" : {
"role_id" : "admin"
},
"filter" : {
"range" : {
"age" : {
"gt" : "20"
}
}
}
}
}
}
}