美文网首页
3.15-第一部分总结

3.15-第一部分总结

作者: 落日彼岸 | 来源:发表于2020-03-23 21:11 被阅读0次

第一部分总结与回顾:基本概念

  • 一个ElasticSearch集群可以运行在单节点上,也支持运行在多个服务器上,实现数据和服务的水平扩展

  • 从逻辑角度看,索引是一些且有相似结构的文档的集合

  • 物理角度看,分片是一个Lucene的实例.分片存储了索引的具体数据,分片可以分布在不同的节点之上.副本分片除了提高数据的可靠性,还能一定程度提升集群查询的性能

  • ElasticSearch的文档可以是任意的JSON格式数据

  • 将文档写进ElasticSearch的过程叫做索引(indexing)

  • ElasticSearch提供了REST API和Transport API两种方式,建议使用REST API

第一部分总结与回顾:搜索和Aggregation

  • precision指除了相关的结果,还返回了多少不相关的结果

  • Recall - 衡量有多少相关的结果,实际上并没有返回

  • 精确值包括:数字,日期和某些具体的字符串

  • 全文本:是需要被检索的非结构文本

  • Analysis是将文本转换成倒排索引中的Term的过程

  • ElasticSearch的Analyzer是Char_filter -> Tokenizer -> Token Filter的过程

  • 要善于利用 _analyze API去测试Analyzer

  • ElasticSearch搜索支持URI Search和REST Body两种方式

  • ElasticSearch提供了Bucket / Metric / Pipeline / Matrix 四种方式的聚合

第一部分总结与回顾:文档CRUD与Index Mapping

  • 除了CRUD操作外,ElasticSearch还提供了bulk,mget和msearch等操作.从性能的角度上说,建议使用,以提升性能.但是,单次操作和数据量不要过大,以免引发性能问题

  • 每个索引都有一个Mapping定义.包含文档的字段及类型,字段的Analyzer的相关配置

  • Mapping可以被动态的创建,为了避免一些错误的类型推算或者满足你特定需求,可以显示的定义Mapping

  • Mapping可以被动态的创建,也可以显示定义.你可以在Mapping中定制Analyzer

  • 你可以为字段指定定制化的analyzer,也可以为查询字符串指定search_analyzer

  • Index Template可以定义Mappings 和 Settings,并自动的应用到新创建的索引之上,建议要合理的使用Index Template

  • Dynamic Template 支持在具体的索引上指定规则,为新增加的字段指定相应的Mappings

第一部分自我测试(一)

  1. 判断题: ES支持使用HTTP PUT写入新文档,并通过ElasticSearch生成文档id

  2. 判断题: Update一个文档,需要使用HTTP PUT

  3. 判断题: Index一个已存在的文档,旧的文档会先删除,新的文档再被写入,同时版本号+1

  4. 尝试描述创建一个新的文档到一个不存在的索引中,背后会发生一些什么?

  5. ES 7中的合法的type是什么?

  6. 精确值和全文本的本质区别是什么?

  7. Analyzer由哪几个部分组成?

答:

  1. 错, 需要用POST命令创建

  2. 错, Update文档使用POST, PUT只能用来做Index或Create

  3. 默认情况下, 会创建相应的索引, 并且自己设置Mapping,当然,实际情况还是要看是否有合适的Index Template

  4. _doc

  5. 精确值不会被Analyzer分词,全文本会

  6. 三部分, Character Filter + Tokenizer + Token Filter

第一部分自我测试(二)

  1. 尝试描述match和match_phrase的区别

  2. 如果你希望match_phrase匹配到更多结果,你应该配置查询的中什么参数

  3. 如果Mapping的dynamic设置成"strict",索引一个包含新增字段的文档时会发生什么?

  4. 如果Mapping的dynamic设置成"false",索引一个包含新增字段的文档时会发生什么?

  5. 判断: 可以把一个字段的类型从"integer"改成"long",因为这两个类型是兼容的

  6. 判断: 你可以在Mapping文件中为indexing和searching指定不同的analyzer

  7. 判断: 字段类型为Text的字段,一定可以被全文搜索

答:

  1. Match中的terms之间是or关系,Match Phrase的terms之间是and的关系,并且term之间位置关系也影响搜索结果

  2. slop

  3. 直接报错

  4. 文档被索引,新的字段在_source中可见.但是该字段无法被搜索

  5. 错, 字段类型修改,需要重新reindex

  6. 对, 可以在Mapping中为index和search指定不同的analyzer

  7. 错, 可以通过为text类型的字段指定Not Indexed, 使其无法被搜索

相关文章

  • 3.15-第一部分总结

    第一部分总结与回顾:基本概念 一个ElasticSearch集群可以运行在单节点上,也支持运行在多个服务器上,实现...

  • 《时间管理》读书笔记及个人所思所想

    本文分两部分,第一部分是个人总结,第一部分是读书的思维导图(文末附图) 个人总结 时间管理的核心:用时...

  • 3.15-欲望和情感

    上周末和友人一家去惠阳看房,一直对房子没多大兴趣的我被那里的大小环境吸引了,离深圳不远,却与深圳的房价相差几...

  • 2022年终总结20221231

    今年这是最后一天,开始年终总结。 关于年终总结,主要是分三部分,第一部分是2022年的总结,第二部分是2023年的...

  • 10总结部分

    反思这一个月以来的生活,做了一个多月的梦,都可以出书了,也许心底深处我是焦虑的,只是我并不知道而已,现在的我不得不...

  • iOS部分总结

    iPhone上app名称最多可以显示13个字母/字符,或者6个汉字加一个英文字母/字符修改app名字方法:TARG...

  • 总结部分细节

    1. FragmentPagerAdapter 和FragmentStatePagerAdapter 的区别: F...

  • 笔记 总结(部分)

    写的很乱,后面的几张实在是太乱了就没有发,总结的也不详细(ಥ_ಥ)因为不习惯用手机记笔记所以还是手写了下来

  • python部分总结

    python这部分的学习,我本身是充满信心的,毕竟本身工作当中用到了pandas,但是在学习过程中还是发现了许多不...

  • GCD部分总结

    一、概述 多线程任务管理,基于C语言的底层API,采用闭包形式与外界通讯,代码简洁高效;充分利用多核CPU,自动管...

网友评论

      本文标题:3.15-第一部分总结

      本文链接:https://www.haomeiwen.com/subject/voygyhtx.html