跳至主要內容
Elasticsearch 架构

Elasticsearch 架构

存储流程

ES 存储数据的流程可以从三个角度来阐述:

  • 集群的角度来看,数据写入会先路由到主分片,在主分片上写入成功后,会并发写副本分片,最后响应给客户端。
  • 分片的角度来看,数据到达分片后需要对内容进行格式校验、分词处理然后再索引数据。
  • 节点的角度来看,ES 数据持久化的步骤可归纳为:Refresh、写 Translog、Flush、Merge。

钝悟...大约 13 分钟数据库搜索引擎数据库Elasticsearch数据库搜索引擎数据库Elasticsearch存储索引
Elasticsearch 搜索(上)

Elasticsearch 搜索(上)

搜索简介

Elasticsearch 支持多种搜索:

  • 精确搜索(词项搜索):搜索数值、日期、IP 或字符串的精确值或范围。
  • 全文搜索:搜索非结构化文本数据并查找与查询项最匹配的文档。
  • 向量搜索:存储向量,并使用 ANN 或 KNN 搜索来查找相似的向量,从而支持 语义搜索 等场景。

钝悟...大约 8 分钟数据库搜索引擎数据库Elasticsearch数据库搜索引擎数据库Elasticsearch搜索
《极客时间教程 - Elasticsearch 核心技术与实战》笔记一

《极客时间教程 - Elasticsearch 核心技术与实战》笔记一

第一章:概述

课程介绍(略)

课程综述及学习建议(略)

Elasticsearch 概述及其发展历史

Elasticsearch 是一款基于 Lucene 的开源分布式搜索引擎。


钝悟...大约 17 分钟笔记数据库数据库搜索引擎数据库Elasticsearch
《极客时间教程 - Elasticsearch 核心技术与实战》笔记二

《极客时间教程 - Elasticsearch 核心技术与实战》笔记二

第四章:深入搜索

基于词项和基于全文的搜索

基于词项的查询

Term 是表达语意的最小单位。搜索和利用统计语言模型进行自然语言处理都需要处理 Term

Term 级别查询:Term / Range / Exists / Prefix / Wildcard

在 ES 中,Term 查询,对输入不做分词。会将输入作为一个整体,在倒排索引中查找准确的词项,并且使用相关度计算公式为每个包含该词项的文档进行相关度计算。


钝悟...大约 19 分钟笔记数据库数据库搜索引擎数据库Elasticsearch
《Elasticsearch 实战》笔记

《Elasticsearch 实战》笔记

第 1 章 Elasticsearch 介绍

  • Elasticsearch 是构建在 Apache Lucene 基础之上的开源分布式搜索引擎。
  • Elasticsearch 常见的用法是索引大规模的数据,这样可以运行全文搜索和实时数据统计。
  • Elasticsearch 提供的特性远远超越了全文搜索。例如,可以调优搜索相关性并提供搜索建议。
  • 对于数据的索引和搜索,以及集群配置的管理,都可以使用 HTTP API 的 JSON,并获得 JSON 应答。
  • 可以将 Elasticsearch 当作一个 NoSQL 的数据存储,包括了实时性搜索和分析能力。它是面向文档的,默认情况下就是可扩展的。
  • Elasticsearch 自动将数据划分为分片,在集群中的服务器上做负载均衡。这使得动态添加和移除服务器变得很容易。分片也可以复制,使得集群具有容错性。

钝悟...大约 12 分钟笔记数据库数据库搜索引擎数据库Elasticsearch
《极客时间教程 - MongoDB 高手课》笔记一

《极客时间教程 - MongoDB 高手课》笔记一

第一章:MongoDB 再入门

MongoDB 简介

什么是 MongoDB?

一个以 JSON 为数据模型的文档数据库。

为什么叫文档数据库?

文档来自于“JSON Document”,并非我们一般理解的 PDF,WORD 文档。

谁开发 MongDB?

上市公司 MongoDB Inc. ,总部位于美国纽约。

主要用途

  • 应用数据库,类似于 Oracle, MySQL
  • 海量数据处理,数据平台。

钝悟...大约 24 分钟笔记数据库数据库文档数据库MongoDB
《极客时间教程 - MongoDB 高手课》笔记二

《极客时间教程 - MongoDB 高手课》笔记二

第三章:分片集群与高级运维之道

分片集群机制及原理

MongoDB 常见部署架构

TODO: 补图

为什么要使用分片集群?

——分而治之

分片如何解决?

TODO:补图

分片组件:

  • 路由节点(mongos) - 提供集群单一入口转发应用端请求选择合适数据节点进行读写合并多个数据节点的返回。无状态,建议至少 2 个。
  • 配置节点(config) - 提供集群元数据存储分片数据分布的映射。
  • 数据节点(shard) - 以复制集为单位水平扩展,最大 1024 分片。分片之间数据不重复所有分片在一起才可完整工作

钝悟...大约 10 分钟笔记数据库数据库文档数据库MongoDB
《高性能 MySQL》笔记

《高性能 MySQL》笔记

部分章节内容更偏向于 DBA 的工作,在实际的开发工作中相关性较少,直接略过。

第一章 MySQL 架构与历史

MySQL 逻辑架构

MySQL 逻辑架构分为三层:

  • 连接层 - 连接管理、认证管理
  • 核心服务层 - 缓存、解析、优化、执行
  • 存储引擎层 - 数据实际读写

并发控制

解决并发问题的最常见方式是加锁。

  • 排它锁(exclusive lock) - 也叫写锁(write lock)。锁一次只能被一个线程所持有

  • 共享锁(shared lock) - 也叫读锁(read lock)。锁可被多个线程所持有


钝悟...大约 28 分钟笔记数据库数据库关系型数据库MySQL
《MongoDB 权威指南》笔记一

《MongoDB 权威指南》笔记一

第 1 章 MongoDB 简介

MongoDB 简介

MongoDB 是一个分布式文档数据库,由 C++ 语言编写。

面向文档

面向文档的数据库使用更灵活的“文档”模型取代了“行”的概念。通过嵌入文档和数组,面向文档的方式可以仅用一条记录来表示复杂的层次关系。

MongoDB 中也没有预定义模式(predefined schema):文档键值的类型和大小不是固定的。由于没有固定的模式,因此按需添加或删除字段变得更容易。

综上,MongoDB 支持结构化、半结构化数据模型,可以动态响应结构变化


钝悟...大约 17 分钟笔记数据库数据库文档数据库MongoDB
《MongoDB 权威指南》笔记二

《MongoDB 权威指南》笔记二

第 5 章 索引

索引是用于提升查询效率的一种存储结构。

索引简介

在 MongoDB 中,不使用索引的查询称为集合扫描,这意味要扫描所有数据。

创建索引

db.users.createIndex({"username" : 1})

钝悟...大约 9 分钟笔记数据库数据库文档数据库MongoDB
2
3
4
5
...
10