读《深入理解Elasticsearch》点滴-基础概念
- Lucene的概念
- document:以json的形式体现,搜索和搜索的主要载体
- field:document的一个部分
- term(词项):代表文本中的一个词
- token(词条):term在field中的一次出现,包括词项的文本、开始和结束的偏移、词条类型
- inverted index(倒排索引):将词项映射到文档。倒排索引是面向词项,而不是面向文档的。
- segmeng:每个索引由多个段组成,创建后不再修改,文档被删除后,删除信息单独保存在一个文档中,而段本身并没有修改。
- segmengs merge:更少的段提供更快的搜索速度。段合并非常耗费IO。
- inverted index的附属信息
- norm:norm是一种与“每个被索引文档”相关的因子。它存储文档归一化结果,被用于计算查询的相关得分。norm基于索引时的文档加权值(boost)计算得出,与文档一起被索引存储。使用norm可以让lucene在建立索引时考虑不同文档的权重,不过需要一些额外的磁盘空间和内存来索引和存储norm信息。
- term vector(词项向量):针对每个文档的微型倒排索引,词项向量的每个维由词项和出现的频率结对组成,还可以包括词项的位置信息。关键词高亮需要启用词项向量索引。
- doc values:对于切面(faceting)和聚合(aggretation)等操作,需要操作文档,而不是词项,lucene需要把倒排索引再翻转过来构成正排索引来完成“分组、排序、聚合”操作。doc values的存储方式可以基于内存或硬盘。
- 分析数据:字符串转换为词项的过程称为分析(analysis)。分析器=字符映射器+分词器+过滤器
- charactor mapper(字符映射器):用于调用分词器之前的文本预处理过程。如HTML文本的去标签处理。
- tokenizer(分词器):分词器用来将文本切割成词条,词条是携带额外信息的词项,这些额外的信息包括:词项在原始文本中的位置,词项的长度。分词器工作的结果被称为词条流,这个词条流被一个接一个的推送给过滤器。
- filter(过滤器):数额可选,0个或多个,可以移除、修改、创建新的词条。如小写过滤器、ASCII过滤器、同义词过滤器。
- 索取期间和搜索期间需要使用相同的分析器
- lucene查询语言:一个查询(query)通常被分割为“词项+操作符”)
- 词项:一个词,或双引号括起来的一个短语
- 操作符:
- AND(+)
- OR(空操作符)
- NOT(-)
- 如 +lucene -elasticsearch
- 在字段中查询:
- title:(+Elasticsearch +"mastering book")
- 等于 +title:Elestacsearch +title:"master book"
- 词项修饰符:
- wildcard(通配符)。?:匹配任意一个字符;*:匹配多个字符。处于对性能的考虑,通配符不能作为词项的第一个字符出现。
- fuzzy and proximity(模糊查询)。~n。
- writer~2:意味著writer和writers都匹配
- title:"mastering Elasticsearch"~2,则可以匹配mastering book elasticsearch
- ^(加权):对词项加权(boosting),提高该词项的重要程度。(加权的对象有“文档、字段、词项、查询子句)
- [](范围查询):price:[10.00 TO 15.00],表示大于等于10.00,小于等于15.00;范围查询也可以作用于字符串,如name:[Adam TO Adria]
- [}(范围查询,不包含上边界)
- [10.00,*]:有一边不做限制
- 特殊字符:使用\转义
- Elasticsearch的基本概念
- 索引:类比SQL中的数据库
- 文档:json
- 类型:高版本中已取消
- 映射:参数设置
- 节点:一个注解多,多个数据节点
- 集群:无缝集成集群功能,对等架构。主节点并不比其他节点重要;集群是通过多播请求响应的方式发现彼此
- 分片:创建后,分片数量无法改变(高版本中取消部分限制)
- 副本:复制分片(replica)
- ES中的管理节点并不比其他节点重要,实践中不需要知道哪个是管理节点,所有操作都可以发送至任意节点,任意节点都可以发送子查询到其他节点,并合并搜索结果。
读《深入理解Elasticsearch》点滴-基础概念的更多相关文章
- 【elasticsearch】关于elasticSearch的基础概念了解【转载】
转载原文:https://www.cnblogs.com/chenmc/p/9516100.html 该作者本系列文章,写的很详尽 ================================== ...
- 理解 Flutter 的基础概念:Widget
Widget 的本意是组件的意思,熟悉 Web 应用开发的人在后期必定会接触到 Vue.React 等框架,这些框架都有一个核心的概念 -- 组件.组件的目的也很简单,那就是重复率用一段代码,并且能够 ...
- Hadoop源代码点滴-基础概念
大数据特征:volume(数量).variety(多样性).velocity(产生的速度) 大数据特征:多.乱.快.杂 数据的来源:业务数据.日志.管理文档(OCR).互联网.物联网.外购
- 理解 angular2 基础概念和结构 ----angular2系列(二)
前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...
- 白日梦的ES笔记三:万字长文 Elasticsearch基础概念统一扫盲
目录 一.导读 二.彩蛋福利:账号借用 三.ES的Index.Shard及扩容机制 四.ES支持的核心数据类型 4.1.数字类型 4.2.日期类型 4.3.boolean类型 4.4.二进制类型 4. ...
- Elasticsearch教程之基础概念
基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味 ...
- Elasticsearch入门基础(1)
基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着 ...
- JavaScript--我发现,原来你是这样的JS(基础概念--躯壳,不妨从中文角度看js)
介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第二篇(基础概念--躯壳篇),有着部分第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的, ...
- JavaScript--我发现,原来你是这样的JS(基础概念--灵魂篇,一起来学js吧)
介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂 ...
随机推荐
- HDU 1517
题意略. 思路: 我们分别来考虑n取到的各个区间,从而发现其中的规律: [2,9] 明显 Stan 必胜. 但是当n = 9 + 1时,Stan无论如何也不能取胜,并且此时,假设 Stan 取值 x ...
- MSIL实用指南-返回结果
一个方法体执行完指令后,必须要完成调用并返回,这是要使用Ret指令.Ret指令的详细解释是从当前方法返回,并将返回值(如果存在)从被调用方的计算堆栈推送到调用方的计算堆栈上.就是说如果计算堆栈上没有变 ...
- Docker资源管理
一台宿主机可以放多个容器,默认的情况下,Docker 没有对容器进行硬件资源的限制,当容器负载过高时会尽可能的占用宿主机资源,所以有时候我们需要对容器的资源使用设置一个上限,今天我们就来看看如何管理 ...
- ssh三大框架的认识
一.SSH三大框架的概述 ssh为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层 ...
- NLP(十) 主题识别
主题识别 是发现输入文本集合中存在的主题的过程 LDA算法,即狄利克雷分布算法 from nltk.tokenize import RegexpTokenizer from nltk.corpus i ...
- CF EDU 1101D GCD Counting 树形DP + 质因子分解
CF EDU 1101D GCD Counting 题意 有一颗树,每个节点有一个值,问树上最长链的长度,要求链上的每个节点的GCD值大于1. 思路 由于每个数的质因子很少,题目的数据200000&l ...
- CF - 1110 C Meaningless Operations
题目传送门 题解: 首先根据观察,很容易发的是: x != (1<<k) - 1 时候 答案就是, 将x二进制下再最高位后的0都变成1. 然后就是考虑 x == (1<<k) ...
- R:ggplot2数据可视化——进阶(1)
,分为三个部分,此篇为Part1,推荐学习一些基础知识后阅读~ Part 1: Introduction to ggplot2, 覆盖构建简单图表并进行修饰的基础知识 Part 2: Customiz ...
- [ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
昨天,在测试新的数据库时,迁移表遇到了这个问题.现在记录一下解决方案. 1.在配置文件中添加关闭严格模式的配置:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS ...
- m6A甲基化及预测方法工具总结
DNA.RNA和蛋白三个层面的可逆修饰示意图(Fu et al. Nature Reviews Genetics, 2014) DNA和蛋白存在各种修饰,RNA也不例外,目前已知的RNA修饰已经超过上 ...