作为小白一枚,一直不理解既然已经有数据库存储的数据了,为什么还要有搜索引擎这些东西,而且这些搜索引擎和数据库之间是怎样的联系或者协同工作的。最近研究了很多,慢慢的好像理解了其中意思了,所以在此分享,也有可能是我理解错了,欢迎各位大神指正。

ES(ElasticSearch)是一款分布式全文检索框架,底层基于基于Lucene实现。

Elasticsearch是提供持久存储、统计等多项功能的现代搜索引擎。

首先,ES更多是面向搜索的,而database是面向数据存储的,查询其次。

其次,SQL数据库和ES存储,需要根据数据的组成、数据库选择对应的同步插件,使得两存储之间实时同步。

举个例子,ES搜索引擎。

ES与传统数据的区别主要有:

        1.结构名称不同

一个ES集群可以包含多个索引(数据库),每个索引又包含了很多类型(表),类型中包含了很多文档(行),每个文档使用 JSON 格式存储数据,包含了很多字段(列)。

关系型数据库

数据库

ElasticSearch

索引

类型

文档

字段

        2.ES分布式搜索,传统数据库遍历式搜索

ES支持分片和复制,从而方便水平分割和扩展,复制保证了es的高可用与高吞吐。

在ES中,当你创建一个索引(数据库)的时候,你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的索引(数据库),索引可以被放置到集群中的任何节点上。分片优点:

(1).允许你水平分割/扩展你的内容容量

(2).允许你在分片之上进行分布式的、并行的操作,进而提高性能/吞吐量

(3).分片的分布,它的文档怎样聚合回搜索请求,完全由Elasticsearch管理

       3.ES采用倒排索引,传统数据库采用B+树索引

假设一个文档(用id标识)是有许多的单词(用value标识)组成的,每个单词可能同一个文档中重复出现很多次,也可能出现在不同的文档中。

正排索引:从文档角度看其中的单词,表示每个文档都含有哪些单词,以及每个单词出现了多少次(词频)及其出现位置(相对于文档首部的偏移量)。

倒排索引:从单词角度看文档,标识每个单词分别在那些文档中出现(文档ID),以及在各自的文档中每个单词分别出现了多少次(词频)及其出现位置(相对于该文档首部的偏移量)。

简单理解,

正排索引:id ---> value

倒排索引:value ---> id

ES中为所有字段默认都建了倒排索引。

       4.ES没有用户验证和权限控制

       5.ES没有事务的概念,不支持回滚,误删不能恢复

       6.ES免费,完全开源;传统数据库部分免费

因为小弟目前的开发只用到了ES,就大体说了下基本概念,不然我怕好多小伙伴和我似的,最开始跟没头的苍蝇一样,不知道怎么入手。文章也没有深入去讲,只是给各位小伙伴一些抽象的理解,来大体了解搜索引擎到底是个什么东东,也或许小弟理解有错误,还望各位大佬多多指正,你们的指正和补充建议,都是小弟我前进的方向和动力。

后续会慢慢完善ES篇。至于solr,目前还没有接触,只是以前有JAVA组同事使用来着。以后有时间再深入了解吧。

浅谈搜索引擎和传统数据库(ES,solr)相关推荐

  1. 浅谈目前主流NoSql数据库

    浅谈目前主流NoSql数据库,编程学习资料点击免费领取 前言 无意翻资料发现目前好多noSql数据库,但是工作中貌似并没有接触到,很好奇他们的区别,所以就有了这篇文章.(整合了网上许多大佬的文章,如有 ...

  2. .net mysql和php mysql数据库连接_浅谈PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  3. 浅谈搜索引擎——SEO

    浅谈搜索引擎--SEO 浅谈SEO 如何快速提高网站的权值及浏览量 有效方式,专业检测网站的流量 SEO 与SEM的区别 SEO(Search Eneginee Optimization) 搜索引擎优 ...

  4. 浅谈DM达梦数据库体系结构概念

    浅谈DM达梦数据库体系结构概念 DM逻辑结构 DM和Oracle一样也分数据库和实例,两者的概念也基本一致. 但是不同点在于:达梦是单进程.多线程,而oracle是多进程的. DM这种对称服务器构架在 ...

  5. 浅谈搜索引擎工作原理

    做为网页开发者,仅仅会编写代码完成业务功能是远远不够的,你做的网站最后需要搜索引擎这个公共入口来呈现给用户.所以搜索引擎优化是及其重要的,而要了解如何优化自己的网站从而适应搜索引擎,我们需要先了解搜索 ...

  6. 浅谈搜索引擎技术原理与架构

    转载自:https://www.cnblogs.com/faruxue/p/4932009.html 搜索引擎是我们非常熟悉的互联网产品,上网都离不开搜索,毫无疑问,在pc端,是多数流量的入口.大家都 ...

  7. 浅谈搜索引擎百度分词技术

    scottlinn为了让大家更好的理解如何去选择关键字词,特意做了一些分词测试试验,归纳了一些关于搜索引擎百度分词的经验向大家分享.希望可以帮助站长们更深层的理解搜索引擎分词技术,做好自己的网站,获得 ...

  8. 浅谈公安部声纹数据库的建设与应用

    一.什么是声纹识别? 声纹识别,也叫做说话人识别,是一项根据语音波形中反映说话人生理和行为特征的语音参数,来识别语音说话者身份的技术.由于每个人的发声器官(舌.牙齿.喉头.肺.鼻腔)在尺寸和形态方面不 ...

  9. 浅谈搜索引擎排序2020-09-04

    我们站长圈经常聊的话题就是如何把关键词排名提升到前三,往往都是众说纷纭,难以得出标准答案.也有很多圈外的朋友很好奇什么是百度搜索排序,又该如何提升搜索排序? 至于什么是搜索排序我就不做解释了,在这里和 ...

最新文章

  1. 一块GPU如何模拟猴子大脑?
  2. 离开硅谷11年后总结出的4条经验教训
  3. 厦大AI研究院今日揭牌成立:数学系校友陈纯院士领衔
  4. Flutter retrofit:only “package“ and “asset“ schemes supported
  5. 利用SOS分析调试托管代码--(1)
  6. 权重初始化方式对神经网络迭代次数的影响
  7. [Array]Pascal's Triangle II
  8. 深度学习入门之PyTorch学习笔记:卷积神经网络
  9. python基础——Linux系统下的文件目录结构
  10. C++ 学习之旅(2)——链接器Linker
  11. 对于我今后人生受益匪浅的几句话
  12. SQL - server 数据库基础知识
  13. javascript实现的一个信息提示的小功能/
  14. 城市轨道交通运营票务管理论文_城市轨道交通运营企业的票务组织管理
  15. java类和对象的基础(笔记)
  16. java day03【 流程控制语句】
  17. php中多重继承,PHP如何使用接口实现多重继承?(代码示例)
  18. C语言冒泡排序算法详解
  19. 曼昆微观经济学--十大原理
  20. 期货日内交易小经验-开仓篇

热门文章

  1. 神策数据张铎:一文读懂神策私有化部署的架构演进
  2. 宽带中国战网平台CS中一般问题解答
  3. web切图怎么做_web前端人员自行切图教程
  4. java 行政区划获取代码 省/市/县/乡镇/街道/村委会 层级 DivisionAdvUtil 爬虫获取完整的行政区划 代码完整 可运行
  5. 欧拉扬帆 潇湘启航 | 湖南欧拉操作系统生态大会圆满召开
  6. 一个Python猜字小游戏
  7. 0202年刷脸时代,你还在担心“假脸”骗局?
  8. 小米手环6NFc支持Android,小米手环6nfc版使用教程_小米手环6nfc版使用方法
  9. Lacrimosa全集纳米盘下载(22CD1DVD)[APE]
  10. C/C++校园导航图的实现