ElasticSearch面试题及答案 - [ 编程语言 ]

ElasticSearch面试题及答案

Elasticsearch是一个基于Lucene的搜索引擎。 它提供了一个分布式,多租户能力的全文搜索引擎,具有HTTP(超文本传输协议)Web界面和无架构JSON(JavaScript Object Notation)文档。

1. SHARDS是什么?

存在资源限制,如RAM,vCPU等,用于横向扩展,因为应用程序在不同的计算机上使用Elasticsearch的多个实例。索引中的数据可以划分为多个部分,这些部分由Elasticsearch的单独节点或实例管理。每个部分称为Shard。Alasticsearch索引默认有5个分片。详细答案>>

2. REPLICAS是什么?

elasticsearch中的每个分片再次具有两个称为副本的分片副本。它们的目的是容错和高可用性。

详细答案>>

3. 如何在ElasticSearch群集中添加或创建索引?

通过在索引名称之前使用命令PUT,创建索引,如果要添加另一个索引,则在索引名称之前使用命令POST
例如:PUT website
创建名为website的索引

详细答案>>

4. 如何删除Elasticsearch中的索引?

要在Elasticsearch中删除索引,请使用命令DELETE /index_name
例如:DELETE /website

详细答案>>

5. 在Elasticsearch中如何列出群集的所有索引?

基本上,Elasticsearch将根据用户在请求正文中提供的数据自动创建映射。 其批量功能可用于在索引中添加多个JSON对象。
例如:POST website /_bulk

详细答案>>

6. 如何通过Elasticsearch中的ID检索文档?

要在Elasticsearch中检索文档,我们使用GET谓词,后跟_index_type_id
例如:GET /computer/blog/123?=pretty

详细答案>>

7. 如何在Elasticsearch中完成相关性和评分?

Lucene使用布尔模型来查找类似文档,并使用称为实用评分函数的公式来计算相关性。该公式从逆文档/术语 - 文档频率和向量空间模型中复制概念,并添加现代特征,如协调因子,字段长度归一化。分数(q,d)是查询“q”的文档“d”的相关性分数。详细答案>>

8. 在Elasticsearch中有哪些不同的搜索方式?

可以在Elasticsearch中执行以下搜索: 多索引,多类型搜索:所有搜索API都可以应用于所有多个索引,并支持多索引系统。我们可以搜索所有索引中的某些标签以及所有索引和所有类型的所有标签。URI搜索:通过提供请求参数,纯粹使用URI执行搜索请求。请求正文搜索:搜索请求可以由搜索DSL执行,搜索DSL包括正文中的查询DSL。详细答案>>

9. Elasticsearch支持查询类型有哪些?

查询分为两种类型,其中分类有多个查询。 全文查询:匹配查询,匹配短语查询,多匹配查询,匹配短语前缀查询,常用术语查询,查询字符串查询,简单查询字符串查询。术语级查询:术语查询,术语集查询,术语查询,范围查询,前缀查询,通配符查询,正则表达式查询,模糊查询,存在查询,类型查询,ids查询。详细答案>>

10. 基于术语的查询和全文查询有什么区别?

基于术语的查询:术语查询或模糊查询等查询是没有分析阶段的低级查询。术语查询术语Foo在倒排索引中搜索确切的术语并计算IDF/TF相关性分数 对于每个有术语的文档。 全文查询:匹配查询或查询字符串查询等查询是了解字段映射的高级查询。只要查询汇总了完整的项目列表,它就会为每个项执行适当的低级查询, 最后结合他们的结果来产生每个文档的相关性分数。详细答案>>

11. 在Elasticsearch中聚合如何运行?

聚合框架基于搜索查询提供聚合数据。它可以被视为在文档集上构建分析信息的工作单元。具有不同目的和输出的不同类型的聚合。

详细答案>>

12. Elasticsearch数据存储在哪里?

Elasticsearch是一个带有多个目录的分布式文档存储。它可以存储和检索作为JSON文档实时序列化的复杂数据结构。

详细答案>>

13. Elasticsearch能否取代数据库?

是的,Elasticsearch可以用作数据库的替代品,因为Elasticsearch非常强大。它提供多租户,分片和复制,分发和云实时获取,刷新,提交,版本控制和重新索引等功能,使它能够成为数据库的替代品。详细答案>>

14. 如何检查elasticsearch服务器是否正在运行?

通常,Elasticsearch使用9200-9300的端口范围。
因此,要检查它是否在您的服务器上运行,只需键入主页的URL,然后输入端口号。
例如:mysitename.com:9200

详细答案>>

15. Elasticsearch是什么?

Elasticsearch是一个基于Lucene的搜索引擎。它提供了一个分布式,多租户能力的全文搜索引擎,具有HTTP(超文本传输协议)Web界面和无架构JSON(JavaScript Object Notation)文档。它是开发的 在Java中是一个在Apache License下发布的开源。详细答案>>

16. Elasticsearch目前的稳定版本是什么?

截至2018年3月,Elasticsearch的最新稳定版本是6.2.2

详细答案>>

17. 安装Elasticsearch的软件要求有哪些?

由于Elasticsearch是使用Java构建的,因此需要以下软件才能在设备上运行Elasticsearch。

  • Java 8系列的最新版本

    注:建议使用Java版本1.8.0_131。

详细答案>>

18. 你能列出一些使用Elasticsearch的公司吗?

一些使用Elasticsearch以及Logstash和Kibana的公司是: 维基百科Netflix公司埃森哲Stack Overflow富士通TripwireMediumSwat.ioHip chatIFTTT详细答案>>

19. 如何启动elasticsearch服务器?

在终端上运行以下命令以启动Elasticsearch服务器: cd elasticsearch ./bin/elasticsearch curl 'http://localhost:9200/?pretty'命令用于检查ElasticSearch服务器是否正在运行。详细答案>>

20. Elasticsearch是什么,您对Elasticsearch有什么了解?

Elasticsearch是一个分布式,支持多租户的全文本搜索引擎,具有HTTP Web界面和无模式的JSON文档。ElasticSearch是一个开源的RESTful搜索引擎,建立在Apache Lucene之上,并根据Apache许可发布。 它基于Java,可以搜索和索引多种格式的文档文件。 在服务器崩溃的情况下,可以轻松恢复索引。详细答案>>

21. Elasticsearch是如何工作的?

将文档索引到存储库。 在索引操作期间,Elasticsearch将原始数据(例如日志文件或消息文件)转换为内部文档,并将它们存储在类似于JSON对象的基本数据结构中。 只需执行HTTP POST即可将您的文档作为简单的JSON对象传输。详细答案>>

22. Amazon Elasticsearch是什么?

Amazon Elasticsearch Service使您可以轻松地部署,保护,操作和扩展Elasticsearch,以进行日志分析,全文搜索,应用程序监视等。 可以在几分钟内从AWS管理控制台设置和配置PB级的Amazon Elasticsearch Service域。详细答案>>

23. Elasticsearch的功能是什么?

Elasticsearch是用Java开发的,并根据Apache许可的条款作为开源发布。 Elasticsearch提供了一个分布式的,具有多租户功能的全文搜索引擎,该引擎带有HTTP Web界面和无模式的JSON文档。

详细答案>>

24. Kibana和弹性搜寻是什么?

Kibana是Elasticsearch的开源数据可视化插件。 它在Elasticsearch集群上索引的内容之上提供可视化功能。 用户可以在大量数据之上创建条形图,折线图和散点图,或饼图和地图。

详细答案>>

25. Apache Lucene是什么?

Apache Lucene是一个免费的开源信息检索软件库,最初完全用Java编写。

详细答案>>

26. Elasticsearch中的NRT是什么?

在Elasticsearch中,NRT代表近实时搜索平台。 Elasticsearch是近乎实时的搜索平台。 这意味着从索引文档到可搜索到这段时间之间存在少许延迟(通常为一秒钟)。

详细答案>>

27. Elasticsearch中的集群是什么?

群集是一个或多个节点(服务器)的集合,这些节点一起保存您的全部数据,并在所有节点之间提供联合索引和搜索功能。 集群由唯一名称标识,默认情况下为“elasticsearch”。 此名称很重要,因为如果节点被设置为通过其名称加入群集,则该节点只能是群集的一部分。详细答案>>

28. Elasticsearch中的节点(Node)是什么?

节点是一台服务器,它是群集的一部分,用于存储数据,并参与群集的索引和搜索功能。 就像群集一样,节点由名称标识,该名称默认为在启动时分配给该节点的随机通用唯一标识符(UUID)。详细答案>>

29. Elasticsearch中的索引是什么?

索引是具有相似特征的文档的集合。 例如,可以为客户数据创建索引,为产品目录创建另一个索引,为订单数据创建另一个索引。索引由名称标识(必须全为小写),并且对该索引中的文档执行索引,搜索,更新和删除操作时,该名称用于引用索引。详细答案>>

30. Elasticsearch中的文档是什么?

文档是可以索引的基本信息单位。 例如,可以拥有一个针对单个客户的文档,一个针对单个产品的文档,以及另一个针对单个订单的文档。 本文档以JSON(JavaScript对象表示法)表示,这是无处不在的Internet数据交换格式。详细答案>>

31. Elasticsearch中的碎片是什么,请解释这个概念?

索引可能会存储大量数据,这些数据可能超过单个节点的硬件限制。 例如,十亿个文档的单个索引占用了1TB的磁盘空间,可能不适合单个节点的磁盘,或者可能太慢而无法单独满足来自单个节点的搜索请求。 为了解决此问题,Elasticsearch提供了将索引细分为多个碎片的功能。 创建索引时,只需定义所需的分片数量即可。 每个分片本身就是一个功能齐全且独立的“索引”,可以托管在群集中的任何节点上。详细答案>>

32. 在Elasicsearch中进行分片有什么好处?

分片很重要,主要有两个原因:

  • 它允许水平分割/缩放内容量;
  • 它允许跨碎片(可能在多个节点上)分布和并行化操作,从而提高性能/吞吐量;
详细答案>>

33. 什么是副本?说说你的理解?

在随时可能发生故障的网络/云环境中,非常有用,强烈建议您使用故障转移机制,以防碎片/节点因某种原因脱机或消失。为此,Elasticsearch允许您将索引分片的一个或多个副本复制到所谓的副本分片(简称副本)中。详细答案>>

34. Elasticsearch中的副本有什么好处?

复制很重要,主要有两个原因: 如果分片/节点发生故障,它可提供高可用性。 因此,重要的是要注意,副本碎片永远不会与从其复制原始/主要碎片的节点分配在同一节点上。由于可以在所有副本上并行执行搜索,因此它可以扩展搜索量/吞吐量。详细答案>>

35. 安装Elasticsearch所需的最低Java版本是什么?

要在计算机上安装Elasticsearch,至少需要Java 8。

详细答案>>

36. 如何在Elasticsearch中与Cluster交互?

Elasticsearch提供了非常全面且功能强大的REST API,可用于与集群进行交互。

详细答案>>

37. REST API在Elasticsearch中有什么好处?

在Elasticsearch中使用REST API有很多好处,它们是: 检查群集,节点和索引的运行状况,状态和统计信息;管理集群,节点以及索引数据和元数据;对索引执行CRUD(创建,读取,更新和删除)和搜索操作;执行高级搜索操作,例如分页,排序,过滤,脚本,聚合以及许多其他操作;详细答案>>

38. 如何在Elasticsearch中创建索引?

现在,我们创建一个名为“customer”的索引,然后再次列出所有索引: PUT /customer?pretty GET /_cat/indices?v 第一个命令使用PUT动词创建名为“customer”的索引。 我们只需将漂亮的追加到调用的末尾,以告诉它漂亮地打印JSON响应(如果有)。详细答案>>

39. 如何删除Elasticsearch索引?

删除创建过的索引后,在列出所有索引:

DELETE /customer?pretty
GET /_cat/indices?v
详细答案>>

40. 有哪些软件包可用于安装Elasticsearch?

用于安装Elasticsearch的软件包有: zip/tar.gz – zip和tar.gz软件包适合在任何系统上安装,并且是在大多数系统上入门Elasticsearch的最简单选择。deb – deb软件包适用于Debian,Ubuntu和其他基于Debian的系统。rpm – rpm软件包适合在Red Hat,Centos,SLES,OpenSuSE和其他基于RPM的系统上安装。msi – msi软件包适合在至少安装了.NET 4.5框架的Windows 64位系统上安装docker –图像可作...详细答案>>

41. Elasticsearch支持哪些配置管理工具?

Elasticsearch支持以下配置管理工具来帮助进行大型部署:

Puppet – puppet-elasticsearch
Chef – cookbook-elasticsearch
Ansible – ansible-elasticsearch

详细答案>>

42. Elasticsearch中有几种类型的配置文件?

Elasticsearch具有三个配置文件: elasticsearch.yml用于配置Elasticsearch用于配置Elasticsearch JVM设置的jvm.optionslog4j2.properties用于配置Elasticsearch日志记录 这些文件位于config目录中,其默认位置取决于安装是来自归档发行版(tar.gz或zip)还是软件包发行版(Debian或RPM软件包)。详细答案>>

43. Elasticsearch中的X-Pack是什么?

X-Pack是Elastic Stack扩展,它将安全性,警报,监视,报告,机器学习和图形功能捆绑到一个易于安装的程序包中。 要访问此功能,必须在Elasticsearch中安装X-Pack。

详细答案>>

44. 在哪里配置X-Pack的设置?

Elasticsearch中的X-Pack设置 – 可以在elasticsearch.yml,kibana.yml和logstash.yml配置文件中配置X-Pack功能的设置。

详细答案>>

45. Elasticsearch中有哪些重大变化?

在将应用程序从一个版本的Elasticsearch迁移到另一个版本时,您需要注意。 作为基本规则: 次要版本之间的迁移。例如 从6.x到6.y – 可以一次升级一个节点来执行。在连续的主要版本之间进行迁移。例如 5.x到6.x – 需要完全重启集群。非连续主要版本之间的迁移。例如 从2.x到6.x – 不支持。详细答案>>

46. 什么是多文档API?

多重获取API,批量API,按查询删除API,按查询更新API,重新索引API。

详细答案>>

47. Elasticsearch中的路由是什么?

执行搜索时,它将广播到所有索引/索引分片(副本之间的循环)。可以通过提供路由参数来控制要搜索哪些分片。

详细答案>>

48. 什么是聚合?

聚合的框架有助于根据搜索查询提供聚合的数据。 它基于称为聚合的简单构建块,可以进行组合以构建复杂的数据摘要。 聚合可以看作是在一组文档上建立分析信息的工作单元。 执行的上下文定义此文档集是什么(例如,在搜索请求的已执行查询/过滤器的上下文中执行顶级聚合)。详细答案>>

49. Elasticsearch中聚合的不同类型是什么?

有许多不同类型的聚合,每种聚合都有自己的目的和输出。 索引 – 聚集跟踪和计算一组文档的索引的聚合。矩阵 – 一组聚合,可在多个字段上进行操作,并根据从请求的文档字段中提取的值生成矩阵结果。 与索引和存储桶聚合不同,此聚合系列尚不支持脚本。管道 – 聚合其他聚合及其相关索引的输出的聚合。详细答案>>

50. 索引API是什么?

索引API用于管理单个索引,索引设置,别名,映射和索引模板。

详细答案>>

51. Elasticsearch中的cat API是什么?

所有的cat命令都接受查询字符串参数帮助,以查看它们提供的所有标头和信息,并且/_cat命令单独列出了所有可用的命令。

详细答案>>

52. Elasticsearch cat API中有哪些不同的cat命令?

cat API中可用的不同命令是: cat aliases, cat allocation, cat count, cat fielddatacat health, cat indices, cat master, cat nodeattrscat nodes, cat pending tasks, cat plugins, cat recoverycat repositories, cat thread pool, cat shards, cat segmentscat snapshots, cat...详细答案>>

53. Elasticsearch中的查询DSL是什么?

Elasticsearch提供了基于JSON的完整查询DSL(特定于域的语言)来定义查询。 将查询DSL视为查询的AST(抽象语法树),它由两种子句组成: 叶子查询子句 – 叶子查询子句在特定字段中查找特定值,例如:match,term或range查询。 这些查询可以自己使用。复合查询子句 – 复合查询子句包装其他叶查询或复合查询,并用于以逻辑方式组合多个查询(例如bool或dis_max查询),或更改其行为(例如constant_score查询)。详细答案>>

54. 提取节点是什么?

在实际的文档索引发生之前,使用摄取节点对文档进行预处理。 接收节点拦截批量和索引请求,应用转换,然后将文档传递回索引或批量API。

详细答案>>

55. X-Pack API有哪些不同类型?

X-Pack API – X-Pack公开了UI组件使用的REST API,可以直接调用这些REST API来配置和访问X-Pack功能。 信息APIGraph Explore API机器学习API安全API观察者API迁移API详细答案>>

56. X-Pack命令有哪些不同类型?

X-Pack包含可帮助您配置安全性的命令:

  • certgen
  • certutil
  • migrate
  • saml-metadata
  • setup-passwords
  • syskeygen
  • users
详细答案>>

57. Elasticsearch中的Explore API是什么?

Graph Explore API使您能够提取和汇总有关Elasticsearch索引中的文档和术语的信息。

详细答案>>

58. Elasticsearch中的迁移API是什么?

迁移API简化了X-Pack索引从一个版本到另一个版本的升级。

  • 迁移协助API
  • 迁移升级API
  • 弃用信息API
详细答案>>
注: 此试题仅作为相关知识水平测试,不能作为权威试题和答案。非商业转载注明原文链接即可;商业转载需本站授权同意。