Elasticsearch教程-从入门到精通
各位运维同行朋友们,大家好,非常高兴能有这么个机会与大家一起交流一些技术问题。此前的各位分享达人们在技术领域或管理领域均有十分精彩的分享,他们带给我们的是多个领域中研究或实践的最前沿知识。这使我本人获益良多,首先要郑重感谢他们。
开始之前,本人首先做一下自我介绍。
马永亮,马哥Linux运维培训创始人,已直接培养Linux运维工程师一千多人,他们绝大多数从事Linux运维和相关管理岗位,就业公司包括但不限于阿里、腾讯、百度、京东、网易、新浪、搜狐、大众点评、饿了么等。课程的间接受益者数万人。
这些一线的运维或运维开发工程师不断地将知识、经验或应用趋势等反馈给我们,也因此,我们的课程体系也发展为了快速迭代和演进的模式。另外,不断地通过各种渠道指导他们解决实践中的问题的经验也成为课堂中案例的组成部分。
比如今天的分享,沿用我们的一贯方式,初衷是为那些不甚了解、即将或刚用到ELK stack的朋友们提供一个可落地的思路和实践方法。而ELK达人们还请多批评指正。
下面进入正题。今天的分享共分为如下几个组成部分。不过,如果时间上来不及,可能只会聊前两个而不及其余。
1、搜索引擎组件介绍;
2、ElasticSearch工作原理、查询及常用插件;
3、日志收集器Logstash及常见的同类工具;
4、可视化工具Kibina;
5、使用案例及优化思路;
一、关于搜索引擎
各位知道,搜索程序一般由索引链及搜索组件组成。
索引链功能的实现需要按照几个独立的步骤依次完成:检索原始内容、根据原始内容来创建对应的文档、对创建的文档进行索引。
搜索组件用于接收用户的查询请求并返回相应结果,一般由用户接口、构建可编程查询语句的方法、查询语句执行引擎及结果展示组件组成。
如图所示。
索引是一种数据结构,它允许对存储在其中的单词进行快速随机访问。当需要从大量文本中快速检索文本目标时,必须首先将文本内容转换成能够进行快速搜索的格式,以建立针对文本的索引数据结构,此即为索引过程。
获取的原始内容需要转换成专用部件(文档)才能供搜索引擎使用。
对于建立文档的过程来说有一个常见操作:向单个的文档和域中插入加权值,以便在搜索结果中对其进行排序。权值可在索引操作前静态生成,也可在搜索期间才动态生成。权值决定了其搜索相关度。
在索引步骤中,文档将被加入到索引列表。事实上,Lucene为此仅提供了一个非常简单的API,而后自行内生地完成了此步骤的所有功能。
UI(User Interface)是搜索引擎的重要组成部分,用户通过搜索引擎界面进行搜索交互时,他们会提交一个搜索请求,该请求需要先转换成合适的查询对象格式,以便搜索引擎能执行查询。
户提交的搜索请求通常以HTML表单或Ajax请求的形式由浏览器提交到搜索引擎服务器,因此,需要事先由查询解析器一类的组件将这个请求转换成搜索引擎使用的查询对象格式。
查询获得匹配查询语句并排好序的文档结果集后,需要用直观、经济的方式为用户展现结果。UI也需要为后续的搜索或操作提供清晰的向导,如完善搜索结果、寻找与匹配结果相似的文档、进入下一页面等。
都是文字,大家可能看的眼花。参考一幅从互联网上获取的图片吧。
如前所述,ElasticSearch在底层利用Lucene完成其索引功能,因此其许多基本概念源于Lucene。
ES集群可由多个节点组成,各Shard分布式地存储于这些节点上。
ES可自动在节点间按需要移动shard,例如增加节点或节点故障时。简而言之,分片实现了集群的分布式存储,而副本实现了其分布式处理及冗余功能。
curl -X<VERB> '<PROTOCOL>://<HOST>/<PATH>?<QUERY_STRING>' -d '<BODY>'VERB:HTTP协议的请求方法,常用的有GET、POST、PUT、HEAD以及DELETE;PROTOCOL:协议类型,http或https;HOST:ES集群中的任一主机的主机名;PORT:ES服务监听的端口,默认为9200;QUERY_STRING:查询参数,例如?pretty表示使用易读的JSON格式输出;BODY:JSON格式的请求主体;
~]$ curl 'http://localhost:9200/?pretty'
另外,ES集群的CRUD操作也非常容易进行,朋友们参考官方文档即可。
需要注意的是,文档中每个域的值可能会存储为特定类型,而非字符串类型,因此,_all域的索引方式与特域的索引方式未必完全相同。
下面,我们聊一个麻烦一点的问题,ES的精确值、full-text及倒排索引。
好了,朋友们,今天的分享就先到这里吧。感谢大家的时间。这些内容是我用来讲课的讲义精练出的内容,用于微信的方式分享可能显得过于啰嗦,请大家将就着看啦。
转载于:https://blog.51cto.com/mageedu/1714522
Elasticsearch教程-从入门到精通相关推荐
- Elasticsearch教程-从入门到精通-ES索引迁移
一.关于搜索引擎 各位知道,搜索程序一般由索引链及搜索组件组成. 索引链功能的实现需要按照几个独立的步骤依次完成:检索原始内容.根据原始内容来创建对应的文档.对创建的文档进行索引. 搜索组件用于接收用 ...
- Android Studio2.0 教程从入门到精通Windows版
系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Android Studi ...
- jquery validate 中文教程【入门到精通】
jquery validate 中文教程[入门到精通] jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求 ...
- Android Studio教程从入门到精通
最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Andro ...
- 视频教程-最新完整react教程从入门到精通包教包会-ReactJS
最新完整react教程从入门到精通包教包会 10年以上开发经验,曾经是八维教育实训主任,千峰教育高级HTML5前端讲师,尚品中国创始人.现任程序思维创始人.曾和大厂.国企等大型企业合作开发项目.百余客 ...
- Android Studio2.0 教程从入门到精通MAC版 - 安装篇
来自:http://www.open-open.com/lib/view/open1466430392743.html 前言 这个教程你将学会如何使用Android Studio2.0开发Androi ...
- 汇编语言程序教程:从入门到精通!
汇编语言程序教程:从入门到精通! 作者:zzmdl0297140 来源:不祥 发布时间:2006-2-13 下午 10:54:59 发布人:941xz <script language=& ...
- fcpx教程从入门到精通「1」初步认识Final Cut Pro
这次给大家带来fcpx教程从入门到精通的教程,是非常适合小白学习的fcpx教程.本期内容讲解初步认识Final Cut Pro. 新建资源库 我们第一次打开,是这样的界面,所以我们需要新建一个资源库, ...
- JavaScript教程——从入门到精通-石川-专题视频课程
JavaScript教程--从入门到精通-55872人已学习 课程介绍 JavaScript教程--从入门到精通 课程收益 JavaScript教程--从入门到精通 讲师介绍 ...
最新文章
- 对时域连续信号用matlab离散,数字信号处理上机实验一 离散时间信号的时域分析...
- linux文件和目录管理指令,Linux 命令(文件和目录管理 - cat)
- 鸿蒙系统r如何升级,高歌猛进,鸿蒙系统升级机型再次确认,花粉:终等到!...
- PWM调光方法在LED亮度调节中的应用
- 如何设置CentOS 7获取动态及静态IP地址
- 打不开/dev/vmmon:断裂管道_湖北加工管道式自卸除铁器厂家询价咨询_国凯环保设备...
- R语音:解决cor.test报错的 'y'必需是数值矢量
- JavaScript同步和异步
- 数字信号的增益matlab,如何控制多频带滤波器通带增益?
- 客户端软件的结构思考(一)
- UEFI开发之应用开发
- 全国青少年软件编程等级考试内容,知识点思维导图(Scratch编程三级)
- 毕业后5年,我终于变成了月薪13000的软件测试工程师
- 整理了46个python人工智能库,详细介绍(含资源),建议收藏
- mysql时区作用_一文解决MySQL时区相关问题
- 科技、家电巨头混战AIoT:谁是未来十年的新入口?
- [HTML]入门小知识,列表?框架?表格?来吧。纯手工制作,满满都是智慧
- C++牛顿迭代法解非线性方程
- 浅谈 C/S 和 B/S 架构
- Matlab中将数据写入文本文件
热门文章
- 华为上半年手机销量_十月京东手机销量!华为mate40火爆,苹果11近百万销量
- oracle 体系结构及内存管理 13_事务
- Mac环境下mysql安装以及登录
- Intellij Idea 导入多个maven项目展示在左侧栏Maven Projects
- ansible模块command、shell、raw、script
- 查看Android API文档的正确方式
- 每天一个JavaScript实例-获取元素当前高度
- day3-函数参数及调用
- debian8下给postgresql9.5编译配置pgpool-II-3.5
- 优秀教程:创建基于 Ajax 的文件拖放上传功能