提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
-- elasticsearch基础
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容
例如:
elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域:
官方网站:https://www.elastic.co/products/logstash#
而elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。
Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:https://lucene.apache.org/
2004年Shay Banon基于Lucene开发了Compass
2010年Shay Banon 重写了Compass,取名为Elasticsearch。
目前的最新版本是7.12.1 相比于lucene elasticsearch具有以下优势 支持分布式 可以水平扩展 提供了Restful接口 可以被任何语言使用
目前比较知名的搜索引擎技术排名:
虽然在早期,Apache Solr是最主要的搜索引擎技术,但随着发展elasticsearch已经渐渐超越了Solr,独占鳌头:
什么是elasticsearch?
什么是elastic stack(ELK)?
什么是Lucene?
倒排索引的概念是基于MySQL这样的正向索引而言的。
那么什么是正向索引呢?
传送门: 一位大神的博客 有兴趣的可以传送
https://blog.csdn.net/qq_38923792/article/details/104027587
如果是根据id查询,那么直接走索引,查询速度非常快。
但如果是基于title做模糊查询,只能是逐行扫描数据,流程如下:
1)用户搜索数据,条件是title符合"%手机%"
2)逐行获取数据,比如id为1的数据
3)判断数据中的title是否符合用户搜索条件
4)如果符合则放入结果集,不符合则丢弃。回到步骤1
逐行扫描,也就是全表扫描,随着数据量增加,其查询效率也会越来越低。当数据量达到数百万时,就是一场灾难。
倒排索引中有两个非常重要的概念:
创建倒排索引是对正向索引的一种特殊处理,流程如下:
1)用户输入条件"华为手机"进行搜索。
2)对用户输入内容分词,得到词条:华为、手机。
3)拿着词条在倒排索引中查找,可以得到包含词条的文档id:1、2、3。
4)拿着文档id到正向索引中查找具体文档。
如图:
虽然要先查询倒排索引,再查询倒排索引,但是无论是词条、还是文档id都建立了索引,查询速度非常快!无需全表扫描。
那么为什么一个叫做正向索引,一个叫做倒排索引呢?
这样就是恰好反过来了 是不是可神奇!
那么两者方式的优缺点是什么呢?
正向索引:
倒排索引:
优点:
根据词条搜索、模糊搜索时,速度非常快
缺点:
只能给词条创建索引,而不是字段
无法根据字段做排序
elasticsearch中有很多独有的概念,与mysql中略有差别,但也有相似之处。
elasticsearch是面向文档(Document)存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在elasticsearch中:
而Json文档中往往包含很多的字段(Field),类似于数据库中的列。
索引(Index),就是相同类型的文档的集合。
例如:
数据库的表会有约束信息,用来定义表的结构、字段的名称、类型等信息。因此,索引库中就有映射(mapping),是索引中文档的字段约束信息,类似表的结构约束。
我们统一的把mysql与elasticsearch的概念做一下对比:
是不是说,我们学习了elasticsearch就不再需要mysql了呢?
并不是如此,两者各自有自己的擅长支出:
因此在企业中,往往是两者结合使用:
超级超级详细安装步骤 小白也能能上手!!!
传送门:https://blog.csdn.net/weixin_45592479/article/details/127292578?spm=1001.2014.3001.5501
超级超级详细安装步骤 小白也能能上手!!!
传送门:https://blog.csdn.net/weixin_45592479/article/details/127292578?spm=1001.2014.3001.5501
分词器的作用是什么?
IK分词器有几种模式?
IK分词器如何拓展词条?如何停用词条?
稍微有一点点的难度 对于我来说 可能有不足的地方 欢迎大家批评指正! 继续加油!!!