【Elasticsearch】【基础】操作使用
【摘要】 使用环境:kibana - Dev Tools包含了全部基本的es增删改查相关操作,其中还有一些高级检索操作
使用环境:kibana - Dev Tools
包含了全部基本的es增删改查相关操作,其中还有一些高级检索操作
# 1. 查看所有索引
GET /_cat/indices?v
# 2. 创建索引,语法:PUT /索引
PUT /huahua_index_1
# 3. 删除索引,语法:DELETE /索引
DELETE /huahua_index_1
# 4. 新增/更新文档,语法:PUT /索引/类型/文档id
PUT /huahua_index_1/blog/3
{
"blog_name": "huahuaBolg3",
"article_qty": 3,
"age" : 3,
"about":"this only a blog",
"interests": ["java","python","linux"]
}
# 5. 删除文档,语法:DELETE /索引/类型/文档id
DELETE /huahua_index_1/blog/3
# 6. 简单搜索(使用查询字符串参数),查询指定索引和类型下的文档记录(默认返回前10笔记录),语法:GET /索引/类型/_search
GET /huahua_index_1/blog/_search
# 6.1 简单搜索(使用查询字符串参数),查询指定文档ID记录,语法: GET /索引/类型/文档ID
GET /huahua_index_1/blog/1
# 7.轻量搜索(使用查询字符串参数),将查询数据进行字段筛选,语法:GET /索引/类型/_search?q=字段key:字段value
GET /huahua_index_1/blog/_search?q=age:7 # 查询age等于7的所有文档
# 7.1 轻量搜索(使用查询字符串参数),将查询数据进行字段筛选并按字段排序,语法:GET /索引/类型/_search?q=字段key:字段value&sort=字段key:desc/asc
GET /huahua_index_1/blog/_search?q=blog_name:huahuaBolg7&sort=age:desc
# 8. 高级DSL搜索(使用查询body),使用match查询所有文档记录,语法:
# GET /索引/类型/_search
# {
# "query":{
# "match_all": {}
# }
# }
GET /huahua_index_1/blog/_search
{
"query":{
"match_all": {}
}
}
# 8.1 查询结果中指定返回条数
GET /huahua_index_1/blog/_search
{
"query":{
"match_all": {}
},
"size":5
}
# 8.2 分页查询
GET /huahua_index_1/blog/_search
{
"query":{
"match_all": {}
},
"from":5,
"size":1
}
# 8.3 查询结果中返回指定字段
GET /huahua_index_1/blog/_search
{
"query":{
"match_all": {}
},
"_source":["blog_name","age"]
}
# 8.4 关键字查询,使用term
GET /huahua_index_1/blog/_search
{
"query":{
"term": {
"age": {
"value": "22"
}
}
}
}
# 8.4 范围查询,使用range,gt大于,lt小于
GET /huahua_index_1/blog/_search
{
"query":{
"range": {
"age": {
"gt": 6,
"lt": 23
}
}
}
}
# 8.6 前缀查询,使用prefix,查询包含分词为前缀的文档记录
GET /huahua_index_1/blog/_search
{
"query":{
"prefix": {
"about": {
"value": "hua"
}
}
}
}
# 8.7 通配符查询,使用wildcard
GET /huahua_index_1/blog/_search
{
"query":{
"wildcard": {
"blog_name": {
"value": "hua*"
}
}
}
}
# 8.8 模糊查询,使用fuzzy,也是按照分词来查询
GET /huahua_index_1/blog/_search
{
"query":{
"fuzzy": {
"about": {
"value": "huahua"
}
}
}
}
# 8.9 根据指定字段查询,使用multi_match
GET /huahua_index_1/blog/_search
{
"query":{
"multi_match": {
"query": "华",
"fields":["blog_name","about"]
}
}
}
# 9. 高级DSL搜索(使用查询body),使用match/match_phrase将查询数据进行字段筛选(包含精准检索和全文检索),语法:
# GET /索引/类型/_search
# {
# "query":{
# "match/match_phrase": {
# "字段key": "字段value"
# }
# }
# }
# 9.1 精准检索,查询字段age=7的所有文档记录
GET /huahua_index_1/blog/_search
{
"query":{
"match": {
"age": "7"
}
}
}
# 9.2 全文检索,在ES的映射类型中keyword , date ,integer, long , double , boolean or ip这些类型不分词,只有text类型分词。:about字段包含huahua和华等分词的所有文档记录,查询结果按照匹配程度进行排序评分,在_score字段记录评分
GET /huahua_index_1/blog/_search
{
"query":{
"match": {
"about": "huahua 华"
}
}
}
# 9.3 短语检索,查询匹配连续的短语
GET /huahua_index_1/blog/_search
{
"query":{
"match_phrase": {
"about": "huahua is human"
}
}
}
GET /huahua_index_1/blog/_search
{
"query":{
"match_phrase_prefix": {
"about": "huahua is "
}
}
}
# 10. 高级DSL搜索(使用查询body),使用match/match_phrase/highlight将结果中匹配到的关键字高亮
GET /huahua_index_1/blog/_search
{
"query":{
"match_phrase": {
"about": "huahua is human"
}
},
"highlight":{
"fields":{
"about":{}
}
}
}
# 11. 高级DSL搜索(使用查询body),使用bool和fiter将查询数据进行组合筛选,实现复杂筛选,语法:
# GET /索引/类型/_search
# {
# "query":{
# "bool": {
# "must/must_not": {查询条件},
# "filter": {过滤条件}
# }
# }
# }
# 12. 使用bool的must筛选指定的字段名,同时使用filter进行范围筛选,也可以分开使用
GET /huahua_index_1/blog/_search
{
"query":{
"bool": {
"must":{
"match":{
"blog_name":"huahuaBolg7"
}
},
"filter":{
"range":{
"age":{"gt":7}
}
}
}
}
}
# 13. 高级DSL搜索(使用查询body),使用聚合aggs在查询数据中生成复杂的分析统计,像sql中的group by但功能更强大
# 如果聚合的字段被禁止聚合操作请执行下面语句,开启聚合功能,不过会增加内存的消耗
PUT /huahua_index_1/_mapping
{
"properties":{
"interests":{
"type":"text",
"fielddata":true
}
}
}
GET /huahua_index_1/blog/_search
{
"query":{
"match": {
"blog_name": "huahuaBolg7"
}
},
"aggs":{
"all_interests":{
"terms":{
"field": "interests"
},
"aggs":{
"avg_age":{
"avg":{
"field": "age"
}
}
}
}
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)