北京 网站建设咨询顾问公司,伪静态规则wordpress,室内设计怎么网上接单,做网站怎样做学习ElasticSearch之前#xff0c;我们先来了解一下搜索 1 搜索是什么
① 概念#xff1a;用户输入想要的关键词#xff0c;返回含有该关键词的所有信息。
② 场景#xff1a;
1互联网搜索#xff1a;谷歌、百度、各种新闻首页#xff1b;
2 站内搜索#xff… 学习ElasticSearch之前我们先来了解一下搜索 1 搜索是什么
① 概念用户输入想要的关键词返回含有该关键词的所有信息。
② 场景
1互联网搜索谷歌、百度、各种新闻首页
2 站内搜索垂直搜索企业OA查询订单、人员、部门电商网站内部搜索商品淘宝、京东场景。
2 数据库做搜索
当数据量小简单搜索可以使用数据库。
但是电商项目中商品上亿条时查询“笔记本电脑”等关键词时上亿条数据的商品名字段逐行扫描性能跟不上。而且不能分词如搜索“笔记本电脑”只能搜索完全和关键词一样的数据那么数据量小时搜索“笔记本电脑”“电脑”数据要不要给用户。
在当今互联网时代搜索肯定不会使用数据库搜索。数据量太大轻松达到PB级。
3 全文检索
全文检索我们要用到倒排索引
倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值而是由属性值来确定记录的位置因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件简称倒排文件(inverted file)。
Lucene实现了倒排索引的理念所谓Lucene就是一个jar包里面封装了全文检索的引擎、搜索的算法代码。开发时引入lucene的jar包通过api开发搜索相关业务。底层会在磁盘建立索引库。
4 倒排索引
文章编号文章内容1{ElasticSearch简称为ES是一个全文搜索引擎}2{全文搜索引擎比较火的有ElasticSearch还有Solr}3{最近微服务火爆究竟什么是微服务呢}4{常见的微服务组件Nacos、Seata、Dubbo}5{关于关系型数据库和非关系型数据库的讲解}
倒排索引
作为查询条件的我们称为关键字
索引index关键字出现的位置1ElasticSearch1,22全文搜索引擎1,23搜索引擎1,24引擎1,25Solr26微服务3,47Nacos48Seata49Dubbo4
5 数据库中索引的基本概念
所谓的索引其实就是数据目录
通常情况下索引是为了提高查询效率
数据库索引分两大类聚集索引、非聚集索引
聚集索引就是数据库保存数据的物理顺序默认情况下就是主键id所以按id查询数据库中的数据效率非常高
如果想在非主键的列添加索引就是非聚集索引 使用索引需要注意的问题 1.创建的索引会占用硬盘空间 2.创建索引之后对该表进行增删改的操作时会引起索引的更新所以效率会降低 3.对数据库进行批量新增时先删除索引增加数据完毕之后再创建 4.不要对数据库样本少的列添加索引 5.当我们执行查询时where条件后面应该先查询有索引的列 6.我们要明确查询条件索引才会生效 数据库中有索引可以提高查询效率但是模糊查询会使用索引失效
模糊查询语句通常写成这样
SELECT title
FROM item
WHERE title LIKE %手机%;我们使用索引的前提是条件要明确但是模糊查询使用的是前条件模糊查询会使用索引失效
有人经过测试一张千万级别的数据库在数据库进行模糊查询时需要20秒以上的时间
当前互联网项目要求三高的需要下效率太低了不符市场需求
需要对查询进行优化在课程项目中使用的ElasticSearch优化后从同样的数据量的ES中查询相同的数据效率能够提高100倍以上
ElasticSearch主要是为了解决数据库模糊查询性能低下的问题
上一篇文章Quartz的使用-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/143355565下一篇文章 Elasticsearch的功能及概念-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/143556512