Loading

初识ElasticSearch

基于数据库查询的问题

倒排索引

倒排索引:将文档进行分词,形成词条和id的对应关系即为反向索引。

以唐诗为例,所处包含“前”的诗句

正向索引:由《静夜思》-->窗前明月光--->“前”字

反向索引:“前”字-->窗前明月光-->《静夜思》

反向索引的实现就是对诗句进行分词,分成单个的词,由词推据,即为反向索引

“床前明月光”--> 分词

将一段文本按照一定的规则,拆分为不同的词条(term)

ES存储和查询的原理

index(索引):相当于mysql的库

映射:相当于mysql 的表结构

document(文档):相当于mysql的表中的数据

数据库查询存在的问题:

  1. 性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低

  2. 功能弱:如果以”华为手机“作为条件,查询不出来数据

Es使用倒排索引,对title 进行分词

  1. 使用“手机”作为关键字查询

    生成的倒排索引中,词条会排序,形成一颗树形结构,提升词条的查询速度

  2. 使用“华为手机”作为关键字查询

    华为:1,3

    手机:1,2,3

ES概念详解

•ElasticSearch是一个基于Lucene的搜索服务器

•是一个分布式、高扩展、高实时的搜索与数据分析引擎

•基于RESTful web接口

•Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎

•官网:https://www.elastic.co/

应用场景

•搜索:海量数据的查询

•日志数据分析

•实时数据分析

posted @ 2021-07-20 08:51  1640808365  阅读(57)  评论(0编辑  收藏  举报