大家好,感谢邀请,今天来为大家分享一下elasticsearch服务器的问题,以及和如何查看elasticsearch版本的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

一、Elasticsearch是什么

Elasticsearch是一个分布式文档存储。Elasticsearch存储的是序列化为JSON文档的复杂数据结构,而不是以列行数据的形式存储信息。当集群中有多个Elasticsearch节点时,存储的文档分布在整个集群中,可以立即从任何节点访问。

当存储文档时,它几乎是实时的——在1秒内就可以被索引和完全搜索。Elasticsearch使用了一种名为反向索引的数据结构,它支持非常快速的全文搜索。反向索引列出任何文档中出现的每个惟一单词,并标识每个单词出现的所有文档。

可以将索引看作是文档的优化集合,每个文档是字段的集合,这些字段是包含数据的键值对。默认情况下,Elasticsearch对每个字段中的所有数据进行索引,每个索引字段都有一个专用的、优化的数据结构。例如,文本字段存储在倒排索引中,数字和地理字段存储在BKD树中。使用每个字段的数据结构来组装和返回搜索结果的能力是Elasticsearch如此快速的原因

Elasticsearch还具有无模式的能力,这意味着可以对文档进行索引,而不必显式地指定如何处理文档中可能出现的每个不同字段。当动态映射被启用时,Elasticsearch会自动检测并向索引添加新的字段。这种默认行为使得创建索引和浏览数据变得很容易——只要开始创建索引文档,Elasticsearch就会检测布尔值、浮点值和整数值、日期和字符串,并将它们映射到合适的Elasticsearch数据类型。

但是,最终,您比Elasticsearch更了解您的数据以及您想如何使用它。您可以定义规则来控制动态映射,并显式地定义映射来完全控制字段的存储和索引方式。

elasticsearch服务器 如何查看elasticsearch版本

定义您自己的映射使您能够:

为不同的目的以不同的方式为同一个字段建立索引通常是很有用的。例如,您可能希望将字符串字段索引为全文搜索的文本字段和用于排序或聚合数据的关键字字段。或者,您可以选择使用多个语言分析器来处理包含用户输入的字符串字段的内容

在索引期间应用于全文字段的分析链也在搜索时使用。当查询全文字段时,在索引中查找术语之前,查询文本会进行相同的分析。

虽然您可以使用Elasticsearch作为文档存储和检索文档及其元数据,但它的真正强大之处在于能够轻松访问构建在Apache Lucene搜索引擎库上的全套搜索功能。

Elasticsearch提供了一个简单、一致的REST API,用于管理集群、索引和搜索数据。出于测试目的,您可以从命令行或通过Kibana中的Developer Console轻松地提交请求。在应用程序中,您可以使用Elasticsearch客户端来选择语言:J*a、J*aScript、Go、. 、PHP、Perl、Python或Ruby。

Elasticsearch REST api支持结构化查询、全文查询和结合这两种查询的复杂查询。结构化查询类似于您可以在SQL中构造的查询类型。例如,您可以在雇员索引中搜索*别和年龄字段,并根据hire_date字段对匹配项进行排序。全文查询查找与查询字符串匹配的所有文档,并根据相关度(它们与搜索词的匹配程度)返回它们。

除了搜索单个术语外,您还可以执行短语搜索、相似度搜索和前缀搜索,并获得自动补全建议。

是否有想要搜索的地理空间数据或其他数字数据?Elasticsearch在优化的数据结构中对非文本数据进行索引,支持高*能的地理和数字查询。

您可以使用Elasticsearch的全面的json风格的查询语言(query DSL)访问所有这些搜索功能。您还可以构造SQL风格的查询来在Elasticsearch内部本地搜索和聚合数据,JDBC和ODBC驱动程序允许许多第三方应用程序通过SQL与Elasticsearch交互。

Elasticsearch聚合使您能够构建复杂的数据总结,并洞察关键指标、模式和趋势。不只是寻找众所周知的“大海捞针”,聚合使您能够回答这样的问题:

您还可以使用聚合来回答更微妙的问题,例如

因为聚合利用了用于搜索的相同数据结构,所以它们也非常快。这使您能够实时分析和可视化数据。您的报告和仪表板会随着数据的更改而更新,因此您可以根据最新的信息采取行动。

What’s more, aggregations operate alongside search requests. You can search documents, filter results, and perform analytics at the same time, on the same data, in a single request. And because aggregations are calculated in the context of a particular search, you’re not just displaying a count of all size 70 needles, you’re displaying a count of the size 70 needles that match your users' search criteria—for example, all size 70 non-stick embroidery needles

Elasticsearch始终可用,并可根据您的需求进行扩展。它通过自然分配来做到这一点。您可以将服务器(节点)添加到集群中以增加容量,Elasticsearch会自动将您的数据和查询负载分布到所有可用的节点上。Elasticsearch不需要彻底检查应用程序,它知道如何平衡多节点集群以提供规模化和高可用*。节点越多越快乐

这是如何工作的呢?实际上,Elasticsearch索引只是一个或多个物理碎片的逻辑分组,其中每个碎片实际上是一个自包含的索引。通过将索引中的文档分布到多个分片上,并将这些分片分布到多个节点上,Elasticsearch可以确保冗余,既可以防止硬件故障,又可以随着节点添加到集群中而增加查询容量。随着集群的增长(或收缩),Elasticsearch会自动迁移碎片来重新平衡集群

有两种类型的分片:基本分片和复制分片。索引中的每个文档都属于一个主分片。复制分片是主分片的副本。副本提供数据的冗余副本,以防止硬件故障,并增加服务读取请求(如搜索或检索文档)的容量。

索引中主分片的数量在索引创建时是固定的,但是复制分片的数量可以在不中断索引或查询操作的情况下随时改变。

关于分片大小和为索引配置的主分片数量,有许多*能方面的考虑和权衡。碎片越多,维护这些索引的开销就越大。碎片的大小越大,当Elasticsearch需要重新平衡集群时,移动碎片所需的时间就越长。

查询大量的小分片可以使每个分片的处理速度更快,但是查询越多意味着开销越大,因此查询少量的大分片可能会更快。总之,这要看情况。

为您的用例确定最佳配置的最佳方法是通过使用您自己的数据和查询进行测试。

出于*能原因,集群内的节点需要位于同一个网络上。在不同数据中心的节点之间平衡集群中的分片花费的时间太长了。但是高可用*架构要求您避免把所有鸡蛋放在一个篮子里。当一个位置发生重大故障时,另一个位置的服务器需要能够接管。无缝。答案吗?Cross-cluster复制(CCR)。

CCR提供了一种从主集群自动同步索引到可作为热备份的辅助远程集群的方法。如果主集群故障,辅助集群可以接管。您还可以使用CCR创建辅助集群,以服务于与用户地理位置相近的读请求。

跨集群复制是主备复制。主集群上的索引是活动领导索引,并处理所有写请求。复制到次要集群的索引是只读的追随者。

与任何企业系统一样,您需要工具来保护、管理和监视您的Elasticsearch集群。安全、监控和管理特*集成到Elasticsearch中,使您能够使用Kibana作为管理集群的控制中心。数据汇总和索引生命周期管理等特*可以帮助您随着时间的推移智能地管理数据

二、如何查看elasticsearch版本

1、一般情况下如果es服务正常启动,可以通过接口的方式获取elasticsearch版本信息:

curl

上述命令可以得到elasticsearch的服务状态和其他信息包括版本号。

2、如果elasticsearch没有启动,则可以找到es的lib包来确认版本号,使用以下命令

lllib|grep'elasticsearch-\d\.\d\.\d\.jar'

可以得到如elasticsearch-1.7.4.jar类似的结果,1.7.4即为其版本号。

扩展资料

Elasticsearch的优点介绍:

Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。

Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。

Elasticsearch使用Lucene,它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。另一个特*称为“网关”,处理索引的长期持久*;例如,在服务器崩溃的情况下,可以从网关恢复索引。

参考资料:百度百科-elasticsearch

三、Elasticsearch的架构是什么样的

Elasticsearch是由Shay Banon发起的一个开源搜索服务器项目,2010年2月发布。迄今,该项目已发展成为搜索和数据分析解决方案领域的主要一员,广泛应用于声名卓著或鲜为人知的搜索应用程序。此外,由于其分布式*质和实时功能,许多人把它作为文档数据库。

Elasticsearch架构简单介绍如下。

索引

索引(index)是Elasticsearch对逻辑数据的逻辑存储,所以它可以分为更小的部分。你可以把索引看成关系型数据库的表。然而,索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。如果你知道MongoDB,可以把Elasticsearch的索引看成MongoDB里的一个集合。如果你熟悉CouchDB,可以把索引看成CouchDB数据库索引。Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片(shard),每个分片可以有多个副本(replica)。

文档

存储在Elasticsearch中的主要实体叫文档(document)。用关系型数据库来类比的话,一个文档相当于数据库表中的一行记录。当比较Elasticsearch中的文档和MongoDB中的文档,你会发现两者都可以有不同的结构,但Elasticsearch的文档中,相同字段必须有相同类型。这意味着,所有包含title字段的文档,title字段类型都必须一样,比如string。

文档由多个字段组成,每个字段可能多次出现在一个文档里,这样的字段叫多值字段(multivalued)。每个字段有类型,如文本、数值、日期等。字段类型也可以是复杂类型,一个字段包含其他子文档或者数组。字段类型在Elasticsearch中很重要,因为它给出了各种操作(如分析或排序)如何被执行的信息。幸好,这可以自动确定,然而,我们仍然建议使用映射。与关系型数据库不同,文档不需要有固定的结构,每个文档可以有不同的字段,此外,在程序开发期间,不必确定有哪些字段。当然,可以用模式强行规定文档结构。从客户端的角度看,文档是一个JSON对象(关于JSON格式的更多内容,参见)。每个文档存储在一个索引中并有一个Elasticsearch自动生成的唯一标识符和文档类型。文档需要有对应文档类型的唯一标识符,这意味着在一个索引中,两个不同类型的文档可以有相同的唯一标识符。

文档类型

在Elasticsearch中,一个索引对象可以存储很多不同用途的对象。例如,一个*客应用程序可以保存文章和评论。文档类型让我们轻易地区分单个索引中的不同对象。每个文档可以有不同的结构,但在实际部署中,将文件按类型区分对数据操作有很大帮助。当然,需要记住一个限制,不同的文档类型不能为相同的属*设置不同的类型。例如,在同一索引中的所有文档类型中,一个叫title的字段必须具有相同的类型。

映射

在有关全文搜索基础知识部分,我们提到了分析的过程:为建索引和搜索准备输入文本。文档中的每个字段都必须根据不同类型做相应的分析。举例来说,对数值字段和从网页抓取的文本字段有不同的分析,比如前者的数字不应该按字母顺序排序,后者的第一步是忽略HTML标签,因为它们是无用的信息噪音。Elasticsearch在映射中存储有关字段的信息。每一个文档类型都有自己的映射,即使我们没有明确定义。

现在,我们已经知道Elasticsearch把数据存储在一个或多个索引上,每个索引包含各种类型的文档。我们也知道了每个文档有很多字段,映射定义了Elasticsearch如何对待这些字段。但还有更多,从一开始,Elasticsearch就被设计为能处理数以亿计的文档和每秒数以百计的搜索请求的分布式解决方案。这归功于几个重要的概念,我们现在将更详细地描述。

节点和集群

Elasticsearch可以作为一个独立的单个搜索服务器。不过,为了能够处理大型数据集,实现容错和高可用*,Elasticsearch可以运行在许多互相合作的服务器上。这些服务器称为集群(cluster),形成集群的每个服务器称为节点(node)。

分片

当有大量的文档时,由于内存的限制、硬盘能力、处理能力不足、无法足够快地响应客户端请求等,一个节点可能不够。在这种情况下,数据可以分为较小的称为分片(shard)的部分(其中每个分片都是一个独立的Apache Lucene索引)。每个分片可以放在不同的服务器上,因此,数据可以在集群的节点中传播。当你查询的索引分布在多个分片上时,Elasticsearch会把查询发送给每个相关的分片,并将结果合并在一起,而应用程序并不知道分片的存在。此外,多个分片可以加快索引。

副本

为了提高查询吞吐量或实现高可用*,可以使用分片副本。副本(replica)只是一个分片的精确复制,每个分片可以有零个或多个副本。换句话说,Elasticsearch可以有许多相同的分片,其中之一被自动选择去更改索引操作。这种特殊的分片称为主分片(primary shard),其余称为副本分片(replica shard)。在主分片丢失时,例如该分片数据所在服务器不可用,集群将副本提升为新的主分片。