Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是适用于数据采集、充实、存储、分析和可视化的一组开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

一、Elasticsearch是什么

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

二 Elasticsearch能干什么

  • 提供快速查询

    试想一下,当你打开一个博客网站,搜索一篇博客的时候,等待了一分钟才有搜索结果,那将会是一个极差的体验。可想而知,这个博客网站肯定没有使用搜索引擎处理搜索的请求,而是使用了传统的关系型数据库查询,在庞大的数据面前,关系型数据库的查询就显得力不从心,相当耗时。Elasticsearch在这个时候可以帮上忙,使用博客数据建立索引库,依赖倒排索引的优势,为用户快速的呈现搜索的相关结果。

  • 确保结果的相关性

接下来有一个难题: 如何将真正描述选举的帖子排序在前呢?有了 Elasticsearch,就可以使 用几个算法来计算相关性的得分( relevancy score ),然后根据分数来将结果逐个排序 。

默认情况下,计算文档相关性得分的算法是TF-IDF(term frequency-inverse document frequency),词频逆文档频率。我们将在后面讨论这个概念。除了选择算法,Elasticsearch还提供了很多其他内置的功能来计算概相关性得分,以满足定制需求。

  • 超越精确匹配
  1. 处理错误的拼写

当我们在使用搜索时,会出现英文拼写错误,中文错别字等情况时有发生。我们可以通过配置让Elasticsearch容忍一些错误,而不仅仅只是查找精确匹配。如我们输入“book”的时候由于手误输入了“bok”,如果搜索引擎能够意识到这一错误并且在搜索时帮我们修正这个错误,那么搜索会更快让人满意。

  1. 支持变体

这个特性在英文单位搜索时,比较重要,我们搜索一个博客关键词包含“bicycle”的文章,同样可以和“bicylist”或“cycling”的查询匹配上。并且Elasticsearch还有可以将搜索到的关键词加粗上色来凸显。

3.使用统计信息

当用户不太清楚具体要搜索什么的时候,可以通过几种方式来协助他们 。一种方法是聚集统计数据。 聚集是在搜索结果里得到一些统计数据,如每个分类有多少议题、每个分 类中“赞”和“分享”的平均数量。 假想一下,进入博客时,用户会在右侧看见最近流行的议题。 其中之一是自行车。 对其感兴趣的读者会点击这个标题,进一步缩小范围。 然后, 可能还有另外 的聚集方式 ,将自行车相关的帖子分为“ 自行车鉴赏”“自行车大事件”等。

  1. 给予自动提示

当用户开始输入时,你可以帮助他们发现主流的查询和结果。 还可以通过自动提示技术预测 他们所要输入的内容,就像 Web 上很多搜索引擎做的那样。 你同样可以展示主流的结果,通过 特殊的查询类型来匹配前缀、通配符或正则表达式。

三、Elasticsearch的特点

(1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司
(2)Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat)
(3)对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂
(4)数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的一个补充,提供了数据库所不能提供的很多功能

Elasticsearch 简介入门相关推荐

  1. ELK之ElasticSearch快速入门

    ElasticSearch快速入门 一.简介 二.下载 三.启动 4.基本概念 5. 一.简介 官网:https://www.elastic.co/ ElasticSearch是Elastic Sta ...

  2. Elasticsearch 简介

    Elasticsearch 是一款稳定高效的分布式搜索和分析引擎,它的底层基于 Lucene,并提供了友好的 RESTful API 来对数据进行操作,还有比较重要的一点是, Elasticsearc ...

  3. Go Elasticsearch 快速入门

    文章目录 1.入门简介 2.基本概念 3.客户端库 4.创建客户端 5.index 增删改查 6.增加 7.删除 8.修改 9.查询 10.小结 参考文献 1.入门简介 Elasticsearch 简 ...

  4. ElasticSearch 从入门到入土

    ElasticSearch 简介 搜索引擎 搜索引擎(Search Engine)是指根据一定的策略.运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相 ...

  5. elasticsearch 客户端工具_1分钟系列-Elasticsearch 简介与单机版安装

    Elasticsearch 简介 Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本.数字.地理空间.结构化和非结构化数据.Elasticsearch 在 A ...

  6. Elasticsearch 基础入门

    原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...

  7. ElasticSearch第一讲:ElasticSearch从入门到精通

    ElasticSearch第一讲:ElasticSearch从入门到精通 业内目前来说事实上的一个标准,就是分布式搜索引擎一般大家都用elasticsearch.本文是ElasticSearch第一讲 ...

  8. Elasticsearch从入门到精通

    1.Elasticsearch简介 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功 ...

  9. 【ES】Elasticsearch 简介

      大数据开发经常用到 Elasticesearch,今天做一下介绍. 1.Elasticsearch 简介 Elaticsearch,简称为 ES, 是一个开源的高扩展的分布式全文检索引擎,特点: ...

最新文章

  1. 比CRUD多一点儿(三):UPDATE、DELETE语句
  2. for循环执行次数_VB考试笔记之循环控制结构部分
  3. linux驱动导出文件属性,将Linux配置文件和设置备份到USB闪存驱动器的方法
  4. zookeeper和etcd有状态服务部署
  5. hdu 4560 拆点最大流 ***
  6. ORA-15096: lost disk write detected的解决与修复
  7. maven nexus myeclipse 学习
  8. 失去健康代表失去一切
  9. 微软word 2019取消交叉引用
  10. zabbix通过sendmail进行邮箱警报
  11. 源码分析 --- MapReduce如何确定任务的SplitSize、Splits、Map、Reduce
  12. OpenCV学习笔记--下载和安装
  13. 【Halcon】插值算法通俗讲解
  14. 一张图概括编程语言发展史
  15. 有苦有乐的算法 --- 基数排序
  16. R语言ggplot2 |绘制高颜值森林图
  17. 解决linux 2.5G网卡驱动问题
  18. Symbian S60第三版手机最基本常见问题及解决方案
  19. 详解分布式系统核心概念——CAP、CP和AP
  20. 如何求解麦克斯韦方程组的平面波解?

热门文章

  1. C语言 void 指针 - C语言零基础入门教程
  2. Xml转换成html表格代码,如何用C++代码将XML文件转换为HTML表格?
  3. c web mysql数据库_C连接Mysql数据库代码
  4. [Leetcode456]132模式 - 单调栈
  5. C语言一维数组实现杨辉三角,一维数组实现杨辉三角
  6. python decimal 转 float_python教程之二python数学运算
  7. php 失去 焦点 另一个表单猎取值,同一表单如何根据某一个文本框的值 改变另一个文本框的值...
  8. linux设备分层优点,Linux设备驱动的分层设计思想
  9. html 正则表达式验证金额,js金额校验,js正则表达式,包含正负,小数点后两位...
  10. linux 中断 进程,linux中断分上下部分原因