栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号