Loading

常见 Elasticsearch 面试题整合汇总包含答案

常见 Elasticsearch 面试题整合汇总包含答案

全部面试题答案,更新日期:12月30日,直接下载吧!

下载链接:高清500+份面试题资料及电子书,累计 10000+ 页大厂面试题 PDF

Elasticsearch

题1:解释一下 X-Pack for Elasticsearch 的功能和重要性吗?

X-Pack是与Elasticsearch一起安装的扩展程序。

X-Pack的各种功能包括安全性(基于角色的访问,特权/权限,角色和用户安全性),监视,报告,警报等。

题2:token filter 过滤器在 Elasticsearch 中如何工作?

针对tokenizers处理后的字符流进行再加工,比如:转小写、删除(删除停用词)、新增(添加同义词)等。

题3:如何解决 Elasticsearch 集群的脑裂问题?

ES集群脑裂是指Elasticsearch集群中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master的情况。

当集群master候选数量不小于3个时,可以通过设置最少投票通过数量(discovery.zen.minimum_master_nodes)超过所有候选节点一半以上来解决脑裂问题;

当候选数量为两个时,只能修改为唯一的一个master候选,其他作为data节点,避免脑裂问题。

题4:如何使用 Elasticsearch Tokenizer?

Tokenizer接收字符流(如果包含了字符过滤,则接收过滤后的字符流;否则,接收原始字符流),将其分词。

同时记录分词后的顺序或位置(position),以及开始值(start_offset)和偏移值(end_offset-start_offset)。

题5:列出与 Elasticsearch 有关的主要可用字段数据类型?

1、字符串数据类型,包括支持全文检索的text类型 和 精准匹配的keyword类型。

2、数值数据类型,例如字节、短整数、长整数、浮点数、双精度数、half_float、scaled_float。

3、日期类型,日期纳秒Date nanoseconds,布尔值,二进制(Base64编码的字符串)等。

4、范围(整数范围integer_range,长范围long_range,双精度范围double_range,浮动范围float_range,日期范围 date_range)。

5、包含对象的复杂数据类型,nested、Object。

6、GEO地理位置相关类型。

7、特定类型如:数组(数组中的值应具有相同的数据类型)。

题6:你可以列出 Elasticsearch 各种类型的分析器吗?

Elasticsearch Analyzer的类型为内置分析器和自定义分析器。

Standard Analyzer: 标准分析器是默认分词器,如果未指定,则使用该分词器。

它基于Unicode文本分割算法,适用于大多数语言。

Whitespace Analyzer: 基于空格字符切词。

Stop Analyzer: 在simple Analyzer的基础上,移除停用词。

Keyword Analyzer: 不切词,将输入的整个串一起返回。

自定义分词器的模板: 自定义分词器的在Mapping的Setting部分设置:

PUT my_custom_index
{
 "settings":{
  "analysis":{
  "char_filter":{},
  "tokenizer":{},
  "filter":{},
  "analyzer":{}
  }
 }
}

其中参数含义如下:

“char_filter”:{},——对应字符过滤部分;

“tokenizer”:{},——对应文本切分为分词部分;

“filter”:{},——对应分词后再过滤部分;

“analyzer”:{}——对应分词器组成部分,其中会包含:1. 2. 3。

题7:在索引中更新 Mapping 的语法?

PUT test_001/_mapping
{
  "properties": {
    "title":{
      "type":"keyword"
    }
  }
}

题8:Elasticsearch 中内置分词器有哪些?

面向字的分词器(Word Oriented Tokenizers)

Standard Tokenizer、Letter Tokenizer、Lowercase Tokenizer、Whitespace Tokenizer、UAX URL Email Tokenizer、Classic Tokenizer、Thai Tokenizer。

部分字分词器(Partial Word Tokenizers)

N-Gram Tokenizer、Edge N-Gram Tokenizer

结构化文本分词器(Structured Text Tokenizers)

Keyword Tokenizer、Pattern Tokenizer、Simple Pattern Tokenizer、Char Group Tokenizer、Simple Pattern Split Tokenizer、Path Tokenizer

题9:ElasticSearch 中 term 和 match 有什么区别?

term:代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词解析,直接对搜索词进行查找。

match:代表模糊匹配,通常用于对text类型字段的查询,会对进行查询的文本先进行分词操作,然后按分词匹配查找。

term主要用于精确查询,通常用于对keyword和有精确值的字段进行查询,而match则主要用于模糊搜索。

term精确搜索相较match模糊查询而言,效率较高。

题10:Elasticsearch 中按 ID 检索文档的语法是什么?

GET test_001/_doc/1

大厂面试题

大厂面试题

大厂面试题

posted @ 2023-02-10 16:50  RuoVea  阅读(81)  评论(0编辑  收藏  举报