Elasticsearch核心概念
来源:互联网 发布:用c语言求最大公约数 编辑:程序博客网 时间:2024/06/02 00:28
Lucene
Elasticsearch使用Lucene作为其底层的搜索引擎,关于Lucene的介绍,可以参考官方网站。
Lucene关键概念:
- Document:用来索引和搜索的主要数据源,包含一个或者多个Field,而这些Field则包含我们跟Lucene交互的数据。
- Field:Document的一个组成部分,有两个部分组成,name和value。
- Term:不可分割的词语,搜索里面最小单元。
- Token:一个Term呈现方式,包含这个Term的文字,在文档中的起始位置,以及类型。
Lucene使用Inverted index来存储term在document中位置的映射关系。 譬如如下文档:
- Elasticsearch Server 1.0 (document 1)
- Mastring Elasticsearch (document 2)
- Apache Solr 4 Cookbook (document 3)
使用inverted index存储,一个简单地映射关系:
在上面的例子中,我们首先将文档切分成一个一个term,也就是用空格分割,然后映射表里面记录该term总的出现次数以及在哪个document里面。
Input data analysis
Document里面的数据如何生成inverted index?查询语句如何切分成terms并允许搜索?相关的东西我们叫做analysis。
Analysis通过analyzer实现,主要包括tokenizer,token filters以及character mappers。
- Tokenizer:也就是通常说的词法分析,将一个文本切分成tokens。词法分析结束之后,结果我们叫做token stream。
- Token filter:用来在token stream里面处理token,filter是依次运行的。一些filter例子:
- Lowercase filter
- Synonyms filter
- Multiple language stemming filters
- Character mappers: 用于处理不可直接解析的文本,在tokenizer之前使用,譬如对于一个html文件移除相关html的tag。
Scoring and query relevance
Score: 用来表示一个document跟查询语句的匹配程度,score越高,表明越匹配。
Lucene使用**TF/IDF**这套计算得分算法。
Elasticsearch基本概念
Data:
- Index:Elasticsearch用来存储数据的逻辑区域,它类似于关系型数据库中的database 概念。一个index可以在一个或者多个shard上面,同时一个shard也可能会有多个replicas。
- Document:Elasticsearch里面存储的实体数据,类似于关系数据中一个table里面的一行数据。 document由多个field组成,不同的document里面同名的field一定具有相同的类型。document里面field可以重复出现,也就是一个field会有多个值,即multivalued。
- Document type:为了查询需要,一个index可能会有多种document,也就是document type. 它类似于关系型数据库中的 table 概念。但需要注意,不同document里面同名的field一定要是相同类型的。
- Mapping:它类似于关系型数据库中的 schema 定义概念。存储field的相关映射信息,不同document type会有不同的mapping。
下图是 ElasticSearch 和 关系型数据库的一些术语比较。
Server:
- Node: 一个server实例
- Cluster:多个node组成cluster
- Shard:数据分片,一个index可能会有多个shards,不同shards可能在不同nodes
- Replica:shard的备份,有一个primary shard,其余的叫做replica shards
- Gateway:管理cluster状态信息
转自:https://github.com/siddontang/elasticsearch-note/blob/master/base.md#lucene
阅读全文
0 0
- ElasticSearch核心概念
- ES005-Elasticsearch核心概念
- Elasticsearch - 核心概念
- ElasticSearch核心概念
- Elasticsearch 核心概念
- Elasticsearch核心概念
- elasticsearch 核心概念
- ElasticSearch安装和核心概念
- Elasticsearch是什么以及核心概念
- ElasticSearch系列04:核心概念
- elasticsearch和lucene的关系以及elasticsearch的核心概念
- lucene和elasticsearch的前世今生、elasticsearch的核心概念、elasticsearch核心概念 vs. 数据库核心概念(来自学习资料)
- ElasticSearch第2课之核心概念介绍
- Elasticsearch笔记四之配置参数与核心概念
- Elasticsearch简单使用系列--详细介绍ES的核心概念
- Elasticsearch笔记四之配置参数与核心概念
- Elasticsearch概念
- Elasticsearch的核心概念cluster/shards/replicas/recovery/gateway/discovery.zen/transport/settings/mapping等
- mysql启动服务
- PAT--1047. Student List for Course
- IntelliJ IDEA 中 Project 和 Module 的概念及区别
- HDU-1087
- 回调机制的理解
- Elasticsearch核心概念
- 【OpenVswitch源码分析之五】用户空间转发面数据结构与流程
- 利用函数alarm和pause模拟sleep
- CentOS6.5解决中文乱码与设置字符集
- OC-遍历和排序
- Python练手项目(来源于知乎)
- POJ 1011--Sticks
- 逻辑智力题
- 数论的几个重要的定理记一波地址