Elasticsearch-12.Elasticsearch第一部分总结

Elasticsearch

第一部分总结与回顾:产品与使用场景

  • Elasticsearch是-个开源的分布式搜索与分析引擎,提供了近实时搜索和聚合两大功能

  • Elastic Stack包括Elasticsearch,Kibana, L ogstash, Beats 等一系列产 品。
    Elasticsearch是核心引擎,提供了海量数据存储,搜索和聚合的能力。Beats 是轻量的
    数据采集器,Logstash用来做数据转换,Kibana 则提供了丰富的可视化展现与分析的功
    能。

  • Elastic Stack主要被广泛使用于:搜索,日志管理,安全分析,指标分析,业务分析,
    应用性能监控等多个领域

  • Elastic Stack开源了X- -Pack在内的相关代码。作为商业解决方案,X-Pack的部分功能
    需要收费。Elastic公司从6.8和7.1开始,Security 功能也可以免费使用

  • 相比关系型数据库,Elasticsearch 提供了如模糊查询,搜索条件的算分第等关系型数据
    库所不擅长的功能,但是在事务性等方面,也不如关系型数据库来的强大。因此,在实际
    生产环境中,需要考虑具体业务要求,综合使用

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

  • 一个Elasticsearch集群可以运行在单节点上,也支持运行在多个服务器上,实现数据和服务的水平
    扩展
  • 从逻辑角度看,索引是一些具有相似结构的文档的集合
  • 物理角度看,分片是一个Lucene的实例。分片存储了索引的具体数据,分片可以分布在不同的节点
    之上。副本分片除了提高数据的可靠性,还能一 定程度提升集群查询的性能
  • Elasticsearch的文档可以是任意的JSON格式的数据
  • 将文档写进 Elasticseach的过程叫索引(indexing)
  • Elasticsearch提供了REST API和Transport API两种方式,建议使用REST API

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

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

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

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

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

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

  • 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和 mseach等操作。从性能的角度
    上说,建议使用,以提升性能。但是,单次操作的数据量不要过大,以免引发性能问题

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

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

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

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

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

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

问题

  1. 判断题: ES支持使用HTTPPUT写入新文档,并通过Elasticsearch生成文档ld

错,需要用POST命令创建。

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

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

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

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

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

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

_ doc

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

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

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

三 部分,Character Filter + Tokenizer + Token Filter


  1. 尝 试描述match和match_ _phrase 的区别

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

  1. 如果你希 望match_ phrase 匹配到更多结果,你应该配置查询中什么参数?

slop

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

直接报错

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

文档被索引, 新的字段在_ source 中可见。但是该字段无法被搜索

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

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

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

对。可以在Mapping中为index和search指定不同的analyizer

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值