读《深入理解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版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂 ...
随机推荐
- unity之单例模式
Unity中常见的四种单例 点击进入
- [Python] socket实现TFTP上传和下载
一.说明 本文主要基于socket实现TFTP文件上传与下载. 测试环境:Win10/Python3.5/tftpd64. tftpd下载:根据自己的环境选择下载,地址 :http://tftpd32 ...
- Python编程习惯
- Android-友盟第三方登录与分享
### 前言 最近项目中又一次需要集成友盟的三方登录与分享,之前没有记录过,所以这次来写一下... ### 准备工作 1.注册友盟账号创建应用,获取key:申请地址http://www.umeng.c ...
- js 数组方法的作用,各方法是否改变原有的数组
不会改变原来数组的有: concat()---连接两个或更多的数组,并返回结果. every()---检测数组元素的每个元素是否都符合条件. some()---检测数组元素中是否有元素符合指定条件. ...
- PythonI/O进阶学习笔记_3.2面向对象编程_python的封装
前言: 本篇相关内容分为3篇多态.继承.封装,这篇为第三篇 封装. 本篇内容围绕 python基础教程这段: 在面向对象编程中,术语对象大致意味着一系列数据(属性)以及一套访问和操作这些数据的方法.使 ...
- 【Offer】[26] 【树的子结构】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入两棵二叉树A和B,判断B是不是A的子结构.图中右边的树是左边的子结构  思路分析 先对树A进行遍历,找到与树B的根结点值相同的节点 ...
- Leetcode:合并两个有序链表
class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null) { return ...
- git-基础命令使用
1. 创建版本库 什么是版本库你?版本库有名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被git管理起来,每个文件的修改.删除.git都能跟踪,以便 ...
- 055 Python第三方库安装
目录 一.概述 二.看见更大的Python世界 2.1 Python社区 2.1.1 PyPI 2.1.2 实例:开发与区块链相关的程序 2.2 安装Python第三方库 三.第三方库的pip安装方法 ...