Elasticsearch学习四部曲之三:官网教程学习引导篇

Elasticsearch学习四部曲之三:官网教程学习引导篇

注意:本文所有的查询仅仅是ES一小部分功能的举例,ES的查询方式有很多,无法每个都做出示例写上,更多的查询,建议读者参考官网教程,本文仅对读者在阅读官网文档之前做一步引入,方便读者更快的理解官网教程的一些描述, 以及为后续整合springboot时一些API的快速理解

官网教程链接Elasticsearch: 权威指南

官方教程文档( Elasticsearch: 权威指南 )

学习本章的注意事项

学习本章不需要记住每一步操作的请求json格式以及一些关键字这些, 仅有个大概印象即可, 在后续的工作中, 如果有需要哪个功能, 去官网查阅即可

索引、映射、文档的入门操作

创建索引

不含映射的索引

在这里插入图片描述

包含映射的索引

在这里插入图片描述

创建/添加映射

在已创建的索引上创建映射信息

在这里插入图片描述

查询映射

注意: 根据查询的结果, 我们可以看出, 查询结果和创建的json基本是一致的, 所以在创建时, 也是可以设置更多信息的

在这里插入图片描述

创建文档

在这里插入图片描述

结果查看

在这里插入图片描述

更新文档

在这里插入图片描述

查询文档

在这里插入图片描述

删除文档

在这里插入图片描述

练习数据准备

创建search_demo索引

在这里插入图片描述

{
    "settings":{
        "index":{
            "number_of_shards": 3,
            "number_of_replicas": 0
        }
    },
    "mappings":{
        "properties":{
            "id":{
                "type": "integer",
                "index": true
            },
            "age":{
                "type": "integer",
                "index": true
            },
            "username":{
                "type":"keyword",
                "index":true
            },
            "nickname":{
                "type":"text",
                "index":true,
                "analyzer":"ik_max_word"
            },
            "score":{
                "type":"float",
                "index":true
            },
            "desc":{
                "type":"text",
                "index": true,
                "analyzer":"ik_max_word"
            }
        }
    }
}

插入准备的数据

在这里插入图片描述

{
    "id": 1,
    "age": 15,
    "username": "张三",
    "nickname":"飞翔的企鹅",
    "socre":68.5,
    "desc":"擅长数据库,消息中间件"
}
{
    "id": 2,
    "age": 16,
    "username": "李四",
    "nickname":"飞翔的我爱罗",
    "socre":68.5,
    "desc":"擅长数据库,定时任务,微服务;热爱java"
}
{
    "id": 3,
    "age": 12,
    "username": "王五",
    "nickname":"自由飞翔",
    "socre":77.4,
    "desc":"热爱java, 不喜欢go语言"
}
{
    "id": 4,
    "age": 22,
    "username": "赵六",
    "nickname":"三个臭皮匠",
    "socre":88.3,
    "desc":"不喜欢java, 热爱数理化"
}
{
    "id": 5,
    "age": 28,
    "username": "田六",
    "nickname":"臭皮匠之父",
    "socre":79.8,
    "desc":"热爱数理化,热爱运动"
}

查看数据结果

在这里插入图片描述

到此数据准备完成

数据查询练习

match分词匹配查询

在这里插入图片描述

match_all查询所有

在这里插入图片描述

_souce指定查询字段

在这里插入图片描述

简单查询小结

query关键字内的主类分析

match对查询条件的词,进行分词后,在es库中进行查询
match_all查询所有, 一般内部没条件
term对查询条件的词, 不进行分词, 直接在es库中查询, 相当于keyword

在这里插入图片描述

在这里插入图片描述

其实除了这些, es提供的参数查询还有很多, 具体可以参考官网, 这里不再列举过多了

官网的一小部分, 读者可根据官网案例, 在本文的数据基础上进行练习

在这里插入图片描述

过滤器查询

该处举例为后置过滤器

未过滤以前

在这里插入图片描述

过滤之后

在这里插入图片描述

本文过滤器举例在官网教程此处

在这里插入图片描述

排序

在这里插入图片描述

高亮

在这里插入图片描述

分页
普通分页

在这里插入图片描述

普通分页上限调整

上限默认为10000条,超出上限查询会报错

在这里插入图片描述

调整上限值

在这里插入图片描述

普通分页原理

es根据from和size分页, 并非和mysql类似,如下图所示: 假如获取7000-8000中的1000条数据,es会从每个shard中读取8000条数据,再进行汇总(24000条数据),然后再从汇总后的结果中取1000条数据,相当于23000条数据完全没有意义

在这里插入图片描述

所以,该分页产生的一个问题就是:深度分页性能的问题,但es也提供了一种滚动分页,解决了深度分页的性能问题

滚动分页(scroll)

在这里插入图片描述

在这里插入图片描述

批量查询mget

在这里插入图片描述

在这里插入图片描述

本文的示例就到此为止了, 更多请查阅官网

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值