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高级配置之(一)--- 分片分布规则设置 13 分布式搜索elasticsearch高级配置之(二)--- 线程池设置 16 分布式搜索elasticsearch研究--- shard和replica的选择 18 分布式搜索elasticsearch...
es分布式搜索引擎,包括es分布式搜索引擎的傻瓜式安装和原理解释
分布式搜索elasticsearch java API 之(一)--- 与集群交互 2 分布式搜索elasticsearch java API 之(二)--- put Mapping定义索引字段属性 3 分布式搜索elasticsearch java API 之(三)--- 索引数据 6 分布式搜索...
ElasticSearch分布式搜索引擎是一个分布式的RESTful风格的搜索和数据分析引擎,能够解决越来越多的用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 Elasticsearch是一...
Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V....
ElasticSearch分布式搜索引擎 v6.7.1.zip
ElasticSearch分布式搜索引擎 v8.12.2.zip
ElasticSearch分布式搜索引擎 v7.17.18.zip
本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的作用以及ElasticSearch在实际工作中的作用等。
ElasticSearch 是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。
分布式搜索引擎03.pdf
为您提供ElasticSearch分布式搜索引擎下载,Elasticsearch是一个分布式的RESTful风格的搜索和数据分析引擎,能够解决越来越多的用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外...
ES 是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack技术栈的核心。它可以近乎实时的存储,检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 ElasticSearch的底层是开源库Lucene...
分布式搜索引擎02.pdf
分布式搜索引擎01.pdf
基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目源码.zip 基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目源码.zip 基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目源码.zip...
分布式搜索引擎-学习笔记-3