本文主要是介绍elasticSearch DLS基础语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
elasticSearch数据库和mysql数据库的差异
mysql ======》 elasticSearch
数据库(database) 在es叫做 (索引数据库) index
表(table) 在es叫做 (类型) type
行(row) 在es叫做 (文档) document
列(column) 在es叫做 (字段)field
表结构 在es叫做 (映射) _mapping
操作之前,要先安装elasticsearch 数据库,再安装kibana,不知道怎么安装? 点我试试
创建数据库
mysql create databse studentinfo
在es操作 PUT /studentinfo
创建表
在studentinfo(数据库)创建表,表的字段:id、name、age、height、remark、isHealth、类型如下
mysql
在es操作
(这里我就不在mysql去创建表了) type:类型,可以是text、long、short、date、integer、object等
index:是否索引,默认为true
store:是否存储,默认为false
analyzer:分词器,这里的ik_max_word
即使用ik分词器
查看表字段
mysql desc table
在es操作 GET studentinfo/_mapping/student
新增数据
mysql insert into table value ('','','')
在es操作 # 插入数据(不指定id,这里的id指的是es的_id,唯一)
# 插入数据(不指定id)
POST studentinfo/student
{"id":"1","name":"张三","age":"15","height":"1.45","isHealth":true,"remark":"中学生"
}
批量新增
mysql INSERT INTO testTable (xx,xx) VALUES ('xx','xx'),('xx','xx'),('xx','xx')
在es操作 #批量新增(注意这里格式必须要格式化一下,kibana 快捷键ctrl + i ,不然会报错)
#批量新增
POST /studentinfo/student/_bulk
{"index":{}}
{"name":"李四","age":"28","height":"1.65","isHealth":true,"remark":"社会打工人"}
{"index":{}}
{"name":"王五","age":"37","height":"1.75","isHealth":true,"remark":"管理人员"}
{"index":{}}
{"name":"赵六","age":"24","height":"1.65","isHealth":true,"remark":"大学毕业时"}
{"index":{}}
{"name":"田七","age":"24","height":"1.65","isHealth":true,"remark":"良好四民"}
根据id查询
mysql select * from table where id = 1
在es操作 GET studentinfo/student/1
根据id修改 (没有就新增)
mysql update table set xxx where id = 1
在es操作 #修改 (没有即新增)
#修改 (没有即新增)
PUT studentinfo/student/1
{"name":"张三指定id修改,这里注意看 _version 乐观锁机制 加1 ","age":"251","height":"2.45","isHealth":false,"remark":"中学生指定id 修改了"
}
根据id删除
mysql delete from table where id = 1
在es操作 DELETE /studentinfo/student/1
根据条件查询再删除
mysql delete from table where id in (select id from table where name like '%张%')
在es操作 #根据条件去删除
#根据条件去删除
POST /studentinfo/_delete_by_query
{"query":{"match": {"name": "张"}}
}
#多字段查询
POST /studentinfo/_search
{"query": {"multi_match": {"query": "四","fields": ["name","remark"]}}
}
#精确查询(一般用于查询数字,时间)
#精确查询(一般用于查询数字,时间)
POST studentinfo/_search
{"query": {"term": {"height": {"value": "1.65"}}}
}
#多个值 精确查询(一般用于查询数字,时间)
#多个值 精确查询(一般用于查询数字,时间)
POST studentinfo/_search
{"query": {"terms": {"height": ["1.75","1.65"]}}
}
#查询指定字段
mysql select id,name,height,xxx from table
在es操作 #查询指定字段
#查询指定字段
POST studentinfo/_search
{"_source": ["name","remark","height"], "query": {"terms": {"height": ["1.75","1.65"]}}
}
#范围查询
mysql select * from table where age>=25 and age <30
在es操作 #范围查询
#范围查询
POST studentinfo/_search
{"query": {"range": {"age": {"gte": 25,"lt": 30}}}
}
#排序 多字段
#排序 多字段
POST studentinfo/_search
{"query": {"match_all": {}},"sort": [{"age": {"order": "asc"}},{"_score": {"order": "asc"}}]
}
#高亮
#高亮
POST studentinfo/_search
{"query": {"match": {"name": "四"}},"highlight": {"pre_tags": "<b color='red'","post_tags": "<b>","fields": {"name": {}}}
}
#分页 分页公式:int start = {pageNum-1}*size
mysql select * from table limit 2,2
在es操作 #分页 分页公式:int start = {pageNum-1}*size
#分页 分页公式:int start = {pageNum-1}*size
POST studentinfo/_search
{"query": {"match_all": {}},"from": 2,"size": 2
}
#地理查询
mysql select * from xx where a between 10.2 and 30.3
在es操作
公式1: (不常用 根据两个点画出矩形,查询这个矩形内的所有东西)
GET /indexName/_search
{"query":{"geo_bounding_box":{"FIELD":{"top_left":{"lat":22.2,"lon":33.3},"bottom_right":{"lat":44.4,"lon":55.5},}}}
}公式2: (常用 以自己为中心,画出5km的半径,然后画一个圆 搜索圆里面的内容 )
GET /indexName/_search
{"query":{"geo_distance":{"FIELD":{"distance":"5km""FIELD":"11.1,22.2"}}}
}
如果小伙伴们有什么疑问,欢迎下面评论。欢迎指正。如还有什么不懂的加我 QQ:517861659
如果没有及时回复,可以点我先问问AI机器人https://chatgpt.byabstudio.com/login?code=202307011314
这篇关于elasticSearch DLS基础语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!