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中的管理节点并不比其他节点重要,实践中不需要知道哪个是管理节点,所有操作都可以发送至任意节点,任意节点都可以发送子查询到其他节点,并合并搜索结果。

最新文章

  1. CSS3透明属性opacity
  2. vlan协议及端口类型
  3. python核心编程学习记录之映射和集合类型
  4. DrawTools(画图工具)原始版本
  5. 保存恢复临时信-Android 中使用onSaveInstanceState和onRestoreInstanceState
  6. iphone开发,模拟器生成文件路径
  7. js实现获取短信验证码倒计时
  8. 图数据库orientDB(1-1)SQL基本操作
  9. 一文快速了解MaxCompute
  10. HTTP各个status code是什么意思【已解决】
  11. python defaultdict模块
  12. VC++网络安全编程范例(11)-SSL高级加密网络通信(转)
  13. poj 1088 (dfs+记忆化) 滑雪
  14. (转)Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
  15. lucene.net 3.0.3、结合盘古分词进行搜索的小例子(分页功能)
  16. 数组插件----linq.js
  17. MFC中编辑框Edit Control添加“变量”后
  18. “全栈2019”Java异常第二十章:自定义异常详解
  19. August 02nd 2017 Week 31st Wednesday
  20. Windows里配置Apache2.2+PHP5.3+mod_fcgid运行高效的FastCGI模式

热门文章

  1. [Mysql] GroupBy 分组,按天、周、月
  2. 在SpringMVC中,jsp和后台互相传值
  3. 分清<url-pattern>/</url-pattern>与<url-pattern>/*</url-pattern>的不同
  4. java设计模式4.适配器模式、装饰器模式
  5. python修改内存,(修改植物大战僵尸)
  6. codeforces 509 E. Pretty Song(前缀和+前缀和的前缀和)
  7. 【Offer】[28] 【对称的二叉树】
  8. CentSO7.6下部署Maridb Galera Cluster 实践记录(二)
  9. java 中for循环中断的办法
  10. 062 Python必备库-从Web解析到网络空间