《极客时间教程 - Elasticsearch 核心技术与实战》笔记一
第一章:概述
课程介绍(略)
课程综述及学习建议(略)
Elasticsearch 概述及其发展历史
Elasticsearch 是一款基于 Lucene 的开源分布式搜索引擎。
Elasticsearch 是一款基于 Lucene 的开源分布式搜索引擎。
Term 是表达语意的最小单位。搜索和利用统计语言模型进行自然语言处理都需要处理 Term
Term 级别查询:Term / Range / Exists / Prefix / Wildcard
在 ES 中,Term 查询,对输入不做分词。会将输入作为一个整体,在倒排索引中查找准确的词项,并且使用相关度计算公式为每个包含该词项的文档进行相关度计算。
什么是 MongoDB?
一个以 JSON 为数据模型的文档数据库。
为什么叫文档数据库?
文档来自于“JSON Document”,并非我们一般理解的 PDF,WORD 文档。
谁开发 MongDB?
上市公司 MongoDB Inc. ,总部位于美国纽约。
主要用途
TODO: 补图
为什么要使用分片集群?
——分而治之
分片如何解决?
TODO:补图
分片组件:
部分章节内容更偏向于 DBA 的工作,在实际的开发工作中相关性较少,直接略过。
MySQL 逻辑架构分为三层:
解决并发问题的最常见方式是加锁。
排它锁(exclusive lock) - 也叫写锁(write lock)。锁一次只能被一个线程所持有。
共享锁(shared lock) - 也叫读锁(read lock)。锁可被多个线程所持有。
MongoDB 是一个分布式文档数据库,由 C++ 语言编写。
面向文档的数据库使用更灵活的“文档”模型取代了“行”的概念。通过嵌入文档和数组,面向文档的方式可以仅用一条记录来表示复杂的层次关系。
MongoDB 中也没有预定义模式(predefined schema):文档键值的类型和大小不是固定的。由于没有固定的模式,因此按需添加或删除字段变得更容易。
综上,MongoDB 支持结构化、半结构化数据模型,可以动态响应结构变化。
索引是用于提升查询效率的一种存储结构。
在 MongoDB 中,不使用索引的查询称为集合扫描,这意味要扫描所有数据。
创建索引
db.users.createIndex({"username" : 1})
关系型数据库是指采用了关系模型来组织数据的数据库。关系模型是一种数据模型,它表示数据之间的联系,包括一对一、一对多和多对多的关系。在关系型数据库中,数据以表格的形式存储,每个表格称为一个“关系”,每个关系由行(记录或元组)和列(字段或属性)组成。
常见的关系型数据库有:MySQL、Oracle、PostgreSQL、MariaDB、SQL Server、SQLite 等。
SQL 是 Structured Query Language(结构 化查询语言)的缩写。SQL 是一种专门用来与数据库沟通的语言。