首页 > 编程知识 正文

elasticsearch存储结构,es数据库怎么查询数据

时间:2023-05-03 13:11:02 阅读:33002 作者:1727

elasticsearch概述**ElasticSearch是基于Lucene的搜索服务器。 提供基于rest风格的web界面的分布式多用户功能全文搜索引擎。 **Elasticsearch是用Java开发的,在Apache许可条款下作为开源发布,是当前流行的企业级搜索引擎。

1使用1 elasticSearch场景1,为用户提供关键词查询全文搜索功能。

2、实现企业海量数据处理分析的解决方案。 大数据领域的重要成员,如著名的ELK框架(ElasticSearch,Logstash,Kibana )。

2与其他数据存储区比较

3 elasticsearch的特点3.1天然瓷砖、天然集群

es可以将数据分成多个shard,下图中的P0-P2,多个shard可以构成一个完整的数据,这些shard可以分布在集群中的各个机器节点上。 随着数据的增加,集群可以添加多个分片,多个分片可以放置在多个机器上,达到了负载均衡、向外扩展的目的。

在实际计算中,每个查询任务都发送到一个节点,该节点必须组织和聚合数据,然后将其返回到客户端。 这意味着在简单节点上执行Map计算,在固定节点上执行Reduces,并将最终结果返回给客户端。

3.2天然索引

ES中的所有数据都是默认索引的。 这与mysql正好相反。 缺省情况下,不会对mysql进行索引。 编制索引需要特别说明。 只有在不对ES进行索引时才需要说明。

另一方面,ES使用了倒排索引和Mysql的B Tree索引不同的索引。

传统关系数据库

弊端:

1、传统的关系数据库只能逐字匹配对关键字的查询,性能非常差。

2、匹配方法不合理。 例如,搜索“小密手机”,用like匹配,完全匹配不上。 但是,考虑到用户体验,不仅应该显示完全匹配的记录,还应该显示部分近似匹配的记录,至少应该与“手机”匹配。

反向索引如何处理

全文搜索引擎目前主流的索引技术是倒排索引的方式。

传统的数据存储方法是

记录-单词

索引的保存方法如下

单词-记录

索引结构比较

b树

lucene的倒排索引结构

可以看到,lucene添加了Term Index结构,虽然缓存在内存中,但mysql的B tree不在内存中,因此总体上ES速度很快,但同时也消耗资源(内存、磁盘)。

4 lucene和elasticsearch的关系我们刚才说的分词的处理、倒排索引的构建等等都是这个lucene。 那么,这个lucene可以说是搜索引擎吗?

还不能。 lucene是提供全文类库的核心工具包,实际上需要用完整的服务框架构建的APP应用程序。

例如,lucene就像一个引擎,而搜索引擎软件(ES,Solr )就是汽车。

目前市面上的搜索引擎软件以elasticsearch和solr两种为主流,均基于lucene构建,可以独立部署启动的搜索引擎服务软件。 由于内核相同,除了服务器安装、部署、管理和群集之外,它们在数据操作方面的修改、添加、存储、查询等都非常相似。 它们似乎都是两种支持sql语言的数据库软件。 掌握了其中一方就很容易得到。

从实际企业使用情况看,电子搜索的市场份额正在逐步取代solr,国内百度、京东、新浪均基于电子搜索实现的搜索功能。 在国外,维基百科、千兆网、堆栈溢出等也是基于ES的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。