1. Lucene的概念
    • document:以json的形式体现,搜索和搜索的主要载体
    • field:document的一个部分
    • term(词项):代表文本中的一个词
    • token(词条):term在field中的一次出现,包括词项的文本、开始和结束的偏移、词条类型
  2. inverted index(倒排索引):将词项映射到文档。倒排索引是面向词项,而不是面向文档的。
  3. segmeng:每个索引由多个段组成,创建后不再修改,文档被删除后,删除信息单独保存在一个文档中,而段本身并没有修改。
  4. segmengs merge:更少的段提供更快的搜索速度。段合并非常耗费IO。
  5. inverted index的附属信息
    • norm:norm是一种与“每个被索引文档”相关的因子。它存储文档归一化结果,被用于计算查询的相关得分。norm基于索引时的文档加权值(boost)计算得出,与文档一起被索引存储。使用norm可以让lucene在建立索引时考虑不同文档的权重,不过需要一些额外的磁盘空间和内存来索引和存储norm信息。
    • term vector(词项向量):针对每个文档的微型倒排索引,词项向量的每个维由词项和出现的频率结对组成,还可以包括词项的位置信息。关键词高亮需要启用词项向量索引。
    • doc values:对于切面(faceting)和聚合(aggretation)等操作,需要操作文档,而不是词项,lucene需要把倒排索引再翻转过来构成正排索引来完成“分组、排序、聚合”操作。doc values的存储方式可以基于内存或硬盘。
  6. 分析数据:字符串转换为词项的过程称为分析(analysis)。分析器=字符映射器+分词器+过滤器
    • charactor mapper(字符映射器):用于调用分词器之前的文本预处理过程。如HTML文本的去标签处理。
    • tokenizer(分词器):分词器用来将文本切割成词条,词条是携带额外信息的词项,这些额外的信息包括:词项在原始文本中的位置,词项的长度。分词器工作的结果被称为词条流,这个词条流被一个接一个的推送给过滤器。
    • filter(过滤器):数额可选,0个或多个,可以移除、修改、创建新的词条。如小写过滤器、ASCII过滤器、同义词过滤器。
  7. 索取期间和搜索期间需要使用相同的分析器
  8. lucene查询语言:一个查询(query)通常被分割为“词项+操作符”)
    • 词项:一个词,或双引号括起来的一个短语
    • 操作符:
      • AND(+)
      • OR(空操作符)
      • NOT(-)
    • 如   +lucene -elasticsearch
  9. 在字段中查询:
    • title:(+Elasticsearch +"mastering  book")
    • 等于 +title:Elestacsearch +title:"master book"
  10. 词项修饰符:
    • 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,*]:有一边不做限制
  11. 特殊字符:使用\转义
  12. Elasticsearch的基本概念
    • 索引:类比SQL中的数据库
    • 文档:json
    • 类型:高版本中已取消
    • 映射:参数设置
    • 节点:一个注解多,多个数据节点
    • 集群:无缝集成集群功能,对等架构。主节点并不比其他节点重要;集群是通过多播请求响应的方式发现彼此
    • 分片:创建后,分片数量无法改变(高版本中取消部分限制)
    • 副本:复制分片(replica)
  13. ES中的管理节点并不比其他节点重要,实践中不需要知道哪个是管理节点,所有操作都可以发送至任意节点,任意节点都可以发送子查询到其他节点,并合并搜索结果。

读《深入理解Elasticsearch》点滴-基础概念的更多相关文章

  1. 【elasticsearch】关于elasticSearch的基础概念了解【转载】

    转载原文:https://www.cnblogs.com/chenmc/p/9516100.html 该作者本系列文章,写的很详尽 ================================== ...

  2. 理解 Flutter 的基础概念:Widget

    Widget 的本意是组件的意思,熟悉 Web 应用开发的人在后期必定会接触到 Vue.React 等框架,这些框架都有一个核心的概念 -- 组件.组件的目的也很简单,那就是重复率用一段代码,并且能够 ...

  3. Hadoop源代码点滴-基础概念

    大数据特征:volume(数量).variety(多样性).velocity(产生的速度) 大数据特征:多.乱.快.杂 数据的来源:业务数据.日志.管理文档(OCR).互联网.物联网.外购

  4. 理解 angular2 基础概念和结构 ----angular2系列(二)

    前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...

  5. 白日梦的ES笔记三:万字长文 Elasticsearch基础概念统一扫盲

    目录 一.导读 二.彩蛋福利:账号借用 三.ES的Index.Shard及扩容机制 四.ES支持的核心数据类型 4.1.数字类型 4.2.日期类型 4.3.boolean类型 4.4.二进制类型 4. ...

  6. Elasticsearch教程之基础概念

    基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台.这意味 ...

  7. Elasticsearch入门基础(1)

    基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT)         Elasticsearch是一个接近实时的搜索平台.这意味着 ...

  8. JavaScript--我发现,原来你是这样的JS(基础概念--躯壳,不妨从中文角度看js)

    介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第二篇(基础概念--躯壳篇),有着部分第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的, ...

  9. JavaScript--我发现,原来你是这样的JS(基础概念--灵魂篇,一起来学js吧)

    介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂 ...

随机推荐

  1. 一键部署 Spring Boot 到远程 Docker 容器,就是这么秀!

    不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 Tomcat 容器中运行?不过据松哥了解,容器化部署应该是目前的主流方案. 不同于传 ...

  2. 六大设计原则(C#)

    为什么要有设计原则,我觉得一张图片就可以解释这一切 一.单一职责原则(SRP) 对于一个类而言,应该只有一个发生变化的原因.(单一职责不仅仅是指类) 如果一个模块需要修改,它肯定是有原因的,除此原因之 ...

  3. 使用Springboot Cache做简单缓存

    使用Springboot Cache做简单缓存 1.简单介绍 ​ 当我们需要展示数据的时候,后台会根据需要从服务器中获取数据,但是频繁的请求数据库会对服务造成压力,于是我们引入了缓存这个概念. ​ 当 ...

  4. volatile、Synchronized实现变量可见性的原理,volatile使用注意事项

    变量不可见的两个原因 Java每个线程工作都有一个工作空间,需要的变量都是从主存中加载进来的.Java内存模型如下(JMM): 线程访问一个共享的变量时,都需要先从主存中加载一个副本到自己的工作内存中 ...

  5. mybatis 源码分析(八)ResultSetHandler 详解

    本篇博客就是 myabtis 系列的最后一篇了,还剩 ResultSetHandler 没有分析:作为整个 mybatis 最复杂最繁琐的部分,我不打算按步骤一次详解,因为里面的主要内容就是围绕 re ...

  6. .net中DES加密算法研究

    /// <summary> /// DES加密算法 /// </summary> /// <param name="toEncrypt">要加密 ...

  7. gym/102091

    https://codeforces.com/gym/102091 2018-2019 ACM-ICPC, Asia Nakhon Pathom Regional Contest A Flying S ...

  8. HDU4614Vases and Flowers 二分+线段树;

    参考:https://blog.csdn.net/ophunter_lcm/article/details/9879495   题意: 有n个花瓶,有两种操作,1.从a开始放b朵花,有花的花瓶跳过,2 ...

  9. 牛客暑假多校第二场 K carpet

    题意:给你一个n*m的矩阵 ,每个位置都有一个字符并且都有一个值,现在需要找到一个p*q的子矩阵, 原来的矩阵可以由现在这个矩阵无限复制然后截取其中的一部分得到,并且要求 子矩阵里最大的值 * (p+ ...

  10. CodeForces 804C Ice cream coloring

    Ice cream coloring 题解: 这个题目中最关键的一句话是, 把任意一种类型的冰激凌所在的所有节点拿下来之后,这些节点是一个连通图(树). 所以就不会存在多个set+起来之后是一个新的完 ...