es和mongdb对比

本文参考博客: 【文档数据库】ES和MongoDB的对比

ES和MongoDB都能存储海量文档,都支持文档的搜索,很多功能上都是高度重合的,那为什么会出现如此相似的两个东西?他们各自的应用场景有什么不同?我其实也有这样的疑问,当时在字节的一个项目也是把视频id从es存储迁移到mongodb上存储。ES的核心是冲着全文检索去的,MongoDB的核心是冲着文档存储去的。
全文搜索和文档存储在某种程度上可以被视为对立的或至少是有着不同优化方向的技术,也就是说二者是不能相互兼顾的,只能二选一。
全文搜索的特点:全文搜索的核心在于能够快速有效地检索出包含特定词汇或词组的文档。为此,搜索引擎(如 Elasticsearch)建立复杂的索引来存储每个词汇的出现位置、频率等信息。
这些索引通常需要快速访问,因此搜索引擎可能会牺牲一些存储效率来提高读取速度。文档存储的特点:文档存储(如 MongoDB)主要关注于存储和查询结构化或半结构化数据。文档数据库的索引通常不是为了全文搜索设计的,而是为了快速查找特定字段或数据结构。优化方向的差异:全文搜索引擎的设计重点在于最大化检索效率,特别是在处理大量文本数据时的搜索性能。
文档数据库则更侧重于数据的灵活性、存储效率和结构化查询的性能。其实我们就已经知道了ES和MongoDB最核心的区别了:
es拥有更细粒度的查询能力,也就是能对全文进行各种检索,但在文档的存储上要差一点。
MongoDB在文档的存储上更优秀,适合存储海量文档,但是只支持简单的文档搜索,而不是全文检索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

04-Vue:ref获取页面节点--很简单

目录 前言在Vue中,通过 ref 属性获取DOM元素使用 ref 属性获取整个子组件(父组件调用子组件的方法) 前言 我们接着上一篇文章 03-02-Vue组件之间的传值 来讲。 下一篇文章 05-Vue路由 在Vue中,通过 ref 属性获取DOM元素 我们当然…

装机必备——Bandizip7.33安装教程

装机必备——Bandizip7.33安装教程 软件下载 软件名称:Bandizip7.33 软件语言:简体中文 软件大小:8.42M 系统要求:Windows7或更高, 64位操作系统 硬件要求:CPU2GHz ,RAM4G或更高 下载通道①迅…

#学习方法#笔记

飞鸟写作是一个非常便捷的论文写作工具,不仅可以帮助用户高效地完成论文写作,还可以提供查重降重的功能,帮助用户确保论文的原创性。那么,飞鸟写作到底可靠吗?答案是肯定的。 首先,飞鸟写作提供的查重降重…

JS逆向之企名科技

文章目录 初步分析定位js编写完整代码参考文献初步分析 目标网址:企名科技 抓包分析,发现是post请求 请求代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- import requestsheaders = {Connection:

【LeetCode面试经典150题】226. 翻转二叉树

一、题目 226. 翻转二叉树 - 力扣(LeetCode)给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 二、思路 其实就是个二叉树遍历问题,只不过不是单纯的遍历,而是在遍历的同时进行元素的交换&a…

利用ChatGPT辅助数学建模竞赛:理清思路、解题技巧与实战经验

导言 数学建模竞赛是许多学生在学术领域追求卓越的重要途径之一。然而,竞赛题目的复杂性常常让人望而生畏。在这样的情况下,利用人工智能工具,如ChatGPT,可以极大地辅助我们快速理清思路、解题技巧与实战经验。本文将探讨如何利用ChatGPT在数学建模竞赛中取得更好的成绩,…

Android应用开发之AndroidManifest.xml

一.AndroidManifest.xml介绍 1.定义 AndroidManifest官方解释是应用清单(manifest意思是货单),每个应用的根目录中都必须包含一个,并且文件名必须一模一样。 它是Android程序的全局配置文件,是每个 android程序中必须…

韭菜收割项目

最近在玩股票,被人当成韭菜收割了一顿。高点追涨,第二天直接跌停。以为是低点,想抄底,结果别人直接抄家,血亏!!! 作为一个程序员,还是好好敲代码赚钱好了,一步一步。想不劳而获是不可能的。 我写…

[智能AI摄像头]使用docker搭建RV1126开发环境

创建ubuntu docker 创建dockerfile # 设置基础镜像为Ubuntu 18.04FROM ubuntu:20.04# 设置作者信息MAINTAINER warren "2016426377qq.com"# 设置环境变量,用于非交互式安装ENV DEBIAN_FRONTENDnoninteractive# 备份源列表文件RUN cp -a /etc/apt/source…

视频号小店脱颖而出,一跃成为电商黑马!马化腾要实现电商梦了?

大家好,我是喷火龙。 视频号这个名字在电商的圈子里是经常被提起的,特别是从今年开始,很多之前的电商项目不行,加上传统电商平台开始走下坡路,于是很多电商人都把视频号小店作为一个新的突破口。 因为视频号小店足够…

.NET技术成长路线架构图

.NET技术成长路线架构图 1. 入门基础 编程语言:C# 基础知识(变量、数据类型、控制结构、面向对象编程)开发环境:Visual Studio 安装与配置基础框架:.NET Framework 或 .NET Core/.NET 5 的基本概念 2. 进阶技能 We…

MySQL 数据备份实战

文章目录 前言简介一、数据备份导出SQL文件第一步:登录MySQL第二步:选中数据库第三步:数据导出SQL文件 二、还原SQL文件第一步:登录MySQL第二步:创建数据库第三步:选中数据库第三步:终端命令行语…

担心安全性?银行卡四要素检测API帮你搞定

聚合小课堂,每天一个API 不知道家里是不是还有坚持不用电子支付的显眼包长辈 一问就是怕支付平台“漏财”。 但是,你还别说, 你怕商家坑你 商家也怕被你逗着玩 要是不幸遇上一个牛鬼蛇神 盗刷、欺诈,财货两空 那才是,叫…

代码随想录算法训练营第四十二天 | 62.不同路径、63. 不同路径 II

62.不同路径 代码随想录 视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili 解题思路 1.dp[i][j]表示从00走到ij有多少种方式 2. ij可以由i-1,j往右走一步,或者i,j-1往想下走…

精通Java:高级面试问题精粹与解答(一)

Java 高级面试问题及答案 1. 如何在Java中实现多线程? 答案: 在Java中实现多线程有几种方式: 继承Thread类:创建一个类继承自Thread类,并重写其run()方法。实现Runnable接口:创建一个类实现Runnable接口…

修改ui 组件 表格划过效果

问题描述 Ant Design Vue 中table 表格 取消划过效果,正常使用类找到效果并修改后 会出现闪白的情况。 .ant-table-cell-row-hover:hover:not(.ant-table-expanded-row) > td{background-color: green !important; }原因分析: 代码运行自上而下并因…

1791.找出星形图的中心节点

刷算法题: 第一遍:1.看5分钟,没思路看题解 2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

电脑中msvcp100.dll丢失了怎么办?总结7种靠谱的解决方法

msvcp100.dll 文件是 Microsoft Visual C 2010 Redistributable 的一部分,这是一个重要的动态链接库(DLL)文件,用于存储许多程序共同使用的代码和资源。它是执行 C 编写的应用程序所必需的,尤其是那些使用 Visual C 20…

全局配置Maven

如果开着项目,就file->close project 如果创建有问题可以转到这篇rIDEA2024创建maven项目-CSDN博客https://blog.csdn.net/weixin_45588505/article/details/139271562?spm1001.2014.3001.5502

Layui 项目打开左侧菜单空白解决方案

home/index.html 页面中 替换 navigation 为 menu