ElasticSearch 是一个基于Lucene构建的开源的、分布式的、RESTful API 式的搜索服务器,是开源搜索平台的新成员,实时数据分析的神器,具备高可靠性,用于云计算,能够达到实时搜索且稳定,可靠的快速服务。
Elasticsearch 近几年发展迅猛,可以从以下几点便可明白elasticsearch所受的关注度是很高的。
- 2012年11月,Elasticsearch 获得1000万美元的融资
- 2013年02月,Elasticsearch获得2400万美元的融资
- 2013年初,GitHub摈弃了 Solr,投向了ElasticSearch的怀抱,来做PB级的搜索
Elasticsearch的优点
实时分布式搜索和分析引擎
Elasticsearch是一个非常赞的实时分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架,但是Lucene只是一个框架,要充分利用它的功能,你需要很高学习成本,因为Lucene确实非常复杂。而Elasticsearch使用Lucene作为内部引擎,在其基础上封装了功能强大的RESTful API,让你不需要了解背后复杂的逻辑,即可完成搜索。
elasticsearch 的数据模型
elasticsearch 的数据模型属于模式自由以及数据库是面向文档的,elasticsearch 的模型基于 JSON, 通过JSON,可以非常简单的表示半结构化的数据,大多数编程语言都会优先支持JSON数据的解析。
模式映射(Schema Mapping)
elasticsearch 是无模式的,你随便往里面扔一个JSON格式的文档,然后ES就可以自动的进行索引。 输入的内容如果是数字或者是时间类型,ES也自动的检测出来,并做相应的处理。
索引文档中的字段是可以设置BOOST值来影响打分,另外还可以使用不同的分析器(Analyzer)用来控制怎么分词,比如有些字段是需要进行分词的,但是有些则不一定,如此等等。elasticsearch允许你完全控制这些规则,最终将一个JSON文档映射到搜索引擎里面。并且可以按索引(Index)和按类型(Type)2种级别来进行设置。
例如:
//创建索引
$ curl -XPUT http://localhost:9200/qixing318
//创建Mapping
$ curl -XPUT http://localhost:9200/qixing318/user/_mapping -d '{
"properties" : {
"name" : { "type" : "string" }
}
}'
获取数据(GETting Some Data)
每个索引的文档都必须要有一个唯一标识(在类型级别),在很多时候这是非常有用的,比如想去更新或者删除某一个索引文档,或者只是想拿一条索引数据来看一看。
那么只需用告诉elasticsearch,并指定文档的索引、类型、和id就可以拿回实际的索引文档了(该索引文档就是你创建索引的时候的生成的JSON格式的文档)。
下面用一个示例告诉大家,在Elasticsearch里是如何创建索引的:
$ curl -XPUT http://localhost:9200/qixing318/article/2 -d '{
"user": "kimchy",
"post_date": "2009-11-15T14:12:12",
"message": "You know, for Search"
}'
解释下上面的请求URL地址分为3个部分,它们分别是:
http://localhost:9200 | (Host) 启动的elasticsearch服务主机地址,监听端口为9200 |
qixing318 | (Index) 创建索引的名称是qixing318,当然你可以根据自己的需求自行设置索引名称 |
article | (Type) 类型 |
2 | (ID) 对象id号,比如你插入mysql时的主健ID值 |
索引创建好了,接下来就可以去获取了
$ curl -XGET http://localhost:9200/qixing318/article/2
获取索引是qixing318、类型是article、id为2的文档数据,如果数据存在则返回相应的数据,如果不存在则返回 miss,是不是很简单。
文档出自:http://www.qixing318.com/article/distributed-search-engine-elasticsearch-incarnations.html
相关推荐
分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。...
分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的...
牛客Java高级工程师 第6章 Elasticsearch,分布式搜索引擎\牛客Java高级工程师-第六章 Elasticsearch,分布式搜索引擎 .pdf 牛客Java高级工程师 第6章 Elasticsearch,分布式搜索引擎\第六章素材和源码\community-...
Elasticsearch(简称ES)是一款基于Lucene的开源、实时、分布式全文搜索引擎,它不仅提供了搜索功能,还能进行数据分析和可视化。本篇文章将深入探讨ES分布式搜索引擎的安装过程、工作原理以及其在实际应用中的优势...
常见的分布式搜索引擎有Elasticsearch、Solr、Hadoop的Nutch和Tika等。这些系统提供了丰富的API和插件,方便开发者集成和定制化。 总之,分布式搜索引擎是现代大数据时代的关键技术之一,它通过分布式架构实现了对...
Elasticsearch是一个开源的、高度可扩展的全文搜索引擎,基于Lucene构建,旨在提供实时、分布式、容错能力强的搜索和数据分析能力。在v7.17.18版本中,Elasticsearch继续优化了性能和稳定性,为开发者和数据分析师...
内容概要:本文全面介绍了Elasticsearch的基础知识,涵盖了Elasticsearch的概念、架构、应用场景、安装与配置、基本操作及其常见问题解决方法。具体包括Elasticsearch是什么、核心概念如索引、文档、字段、映射,...
Elasticsearch(简称ES)是一个基于Lucene的开源搜索引擎,它提供了实时、分布式、全文检索的能力。ES具有以下特点: 1. **分布式**: 支持水平扩展,可以通过添加更多节点来提升处理能力和存储容量。 2. **实时性**:...
Elasticsearch是一个开源的分布式搜索引擎,能够快速地从海量数据中找到需要的内容。它是elastic stack(ELK)的核心组件,负责存储、搜索、分析数据。 2. Elasticsearch的发展历史 Elasticsearch的前身是Lucene,...
ElasticSearch分布式搜索引擎是一个分布式的RESTful风格的搜索和数据分析引擎,能够解决越来越多的用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 Elasticsearch是一...
Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V....
例如,Elasticsearch 使用分片(Sharding)技术将索引分布式存储,每个分片都是一个完整的、可搜索的索引,可以跨多个节点分配。 2. **缓存机制**:对热门查询结果进行缓存,减少对底层数据存储的访问,提升响应...
Elasticsearch是一个开源的分布式全文搜索引擎,以其高效、可扩展性以及实时分析能力在IT行业中广泛应用。这个压缩包“ElasticSearch分布式搜索引擎 v6.7.1.zip”包含的是Elasticsearch的源代码和相关文档,对于学习...
以Elasticsearch(ES)为例,它是一个流行的开源全文搜索引擎,以其高效、可扩展和易于使用的特性深受开发者喜爱。本篇将详细介绍分布式搜索引擎,特别是Elasticsearch的写入和查询工作流程,以及与Java高并发API的...
为了解决这一问题,本文提出了一种基于ElasticSearch分布式搜索引擎的应用方案。通过利用ElasticSearch的River机制,可以有效地对现有的海量FITS数据进行索引构建,从而实现对这些数据的高效检索。此外,还讨论了...
Elasticsearch分布式搜索引擎是当前搜索引擎技术中的一个热点,尤其在处理大规模、实时的搜索数据方面显示出其独特的优越性。本文档主要讨论Elasticsearch在地名地址检索领域的应用,这种搜索引擎技术正在被广泛应用...
在这个学习笔记中,我们将聚焦于 Elasticsearch(ES)这一流行的开源搜索引擎,它基于Lucene构建,且广泛应用于Java开发环境中。Elasticsearch不仅提供全文检索,还支持结构化数据的搜索,能够实时分析,具有高可...
elasticsearch是一款非常强大的开源搜索引擎,支持的功能非常多 【项目介绍】 1、该项目是个人高分项目源码(文档+源码),已获导师指导认可通过,答辩评审分达到96分。 2、该资源内项目代码都经过测试运行成功,...
Elasticsearch是一个实时的、分布式的搜索和分析引擎,适合处理大量非结构化数据。通过集成Elasticsearch,我们可以快速地对抓取的数据进行全文检索、近似搜索以及数据分析。 五、Python在搜索引擎中的应用 Python...