`

一、分布式 搜索引擎 ElasticSearch 前世今生

 
阅读更多

ElasticSearch 是一个基于Lucene构建的开源的、分布式的、RESTful API 式的搜索服务器,是开源搜索平台的新成员,实时数据分析的神器,具备高可靠性,用于云计算,能够达到实时搜索且稳定,可靠的快速服务。

 

分布式实时搜索引擎ElasticSearch的前世今生

 

Elasticsearch 近几年发展迅猛,可以从以下几点便可明白elasticsearch所受的关注度是很高的。

 

  1. 2012年11月,Elasticsearch 获得1000万美元的融资
  2. 2013年02月,Elasticsearch获得2400万美元的融资
  3. 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思维导图

    分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。...

    分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene).rar

    分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的...

    牛客Java高级工程师 第6章 Elasticsearch,分布式搜索引擎 含视频教程和源码.rar

    牛客Java高级工程师 第6章 Elasticsearch,分布式搜索引擎\牛客Java高级工程师-第六章 Elasticsearch,分布式搜索引擎 .pdf 牛客Java高级工程师 第6章 Elasticsearch,分布式搜索引擎\第六章素材和源码\community-...

    es分布式搜索引擎

    Elasticsearch(简称ES)是一款基于Lucene的开源、实时、分布式全文搜索引擎,它不仅提供了搜索功能,还能进行数据分析和可视化。本篇文章将深入探讨ES分布式搜索引擎的安装过程、工作原理以及其在实际应用中的优势...

    分布式搜索引擎很好的资源

    常见的分布式搜索引擎有Elasticsearch、Solr、Hadoop的Nutch和Tika等。这些系统提供了丰富的API和插件,方便开发者集成和定制化。 总之,分布式搜索引擎是现代大数据时代的关键技术之一,它通过分布式架构实现了对...

    ElasticSearch分布式搜索引擎 v7.17.18.zip

    Elasticsearch是一个开源的、高度可扩展的全文搜索引擎,基于Lucene构建,旨在提供实时、分布式、容错能力强的搜索和数据分析能力。在v7.17.18版本中,Elasticsearch继续优化了性能和稳定性,为开发者和数据分析师...

    elasticsearch-开源分布式搜索引擎Elasticsearch的基本概念与操作详解

    内容概要:本文全面介绍了Elasticsearch的基础知识,涵盖了Elasticsearch的概念、架构、应用场景、安装与配置、基本操作及其常见问题解决方法。具体包括Elasticsearch是什么、核心概念如索引、文档、字段、映射,...

    分布式搜索引擎Elasticsearch开发实战基础篇

    Elasticsearch(简称ES)是一个基于Lucene的开源搜索引擎,它提供了实时、分布式、全文检索的能力。ES具有以下特点: 1. **分布式**: 支持水平扩展,可以通过添加更多节点来提升处理能力和存储容量。 2. **实时性**:...

    分布式搜索引擎 ppt 说明资料

    Elasticsearch是一个开源的分布式搜索引擎,能够快速地从海量数据中找到需要的内容。它是elastic stack(ELK)的核心组件,负责存储、搜索、分析数据。 2. Elasticsearch的发展历史 Elasticsearch的前身是Lucene,...

    ElasticSearch分布式搜索引擎是一个分布式的RESTful风格的搜索和数据分析引擎,能够解决越来越多的用例.rar

    ElasticSearch分布式搜索引擎是一个分布式的RESTful风格的搜索和数据分析引擎,能够解决越来越多的用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 Elasticsearch是一...

    ElasticSearch分布式搜索引擎 v8.2.2

    Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V....

    16_分布式搜索引擎在几十亿数据量级的场景下如何优化查询性能?.zip

    例如,Elasticsearch 使用分片(Sharding)技术将索引分布式存储,每个分片都是一个完整的、可搜索的索引,可以跨多个节点分配。 2. **缓存机制**:对热门查询结果进行缓存,减少对底层数据存储的访问,提升响应...

    ElasticSearch分布式搜索引擎 v6.7.1.zip

    Elasticsearch是一个开源的分布式全文搜索引擎,以其高效、可扩展性以及实时分析能力在IT行业中广泛应用。这个压缩包“ElasticSearch分布式搜索引擎 v6.7.1.zip”包含的是Elasticsearch的源代码和相关文档,对于学习...

    15_分布式搜索引擎写入和查询的工作流程是什么样的?.zip

    以Elasticsearch(ES)为例,它是一个流行的开源全文搜索引擎,以其高效、可扩展和易于使用的特性深受开发者喜爱。本篇将详细介绍分布式搜索引擎,特别是Elasticsearch的写入和查询工作流程,以及与Java高并发API的...

    ElasticSearch分布式搜索引擎在天文大数据检索中的应用研究.pdf

    为了解决这一问题,本文提出了一种基于ElasticSearch分布式搜索引擎的应用方案。通过利用ElasticSearch的River机制,可以有效地对现有的海量FITS数据进行索引构建,从而实现对这些数据的高效检索。此外,还讨论了...

    ElasticSearch分布式搜索引擎在地名地址检索中的应用.pdf

    Elasticsearch分布式搜索引擎是当前搜索引擎技术中的一个热点,尤其在处理大规模、实时的搜索数据方面显示出其独特的优越性。本文档主要讨论Elasticsearch在地名地址检索领域的应用,这种搜索引擎技术正在被广泛应用...

    分布式搜索引擎-学习笔记-3

    在这个学习笔记中,我们将聚焦于 Elasticsearch(ES)这一流行的开源搜索引擎,它基于Lucene构建,且广泛应用于Java开发环境中。Elasticsearch不仅提供全文检索,还支持结构化数据的搜索,能够实时分析,具有高可...

    微服务 SpringCloud :分布式搜索引擎-Elasticsearch

    elasticsearch是一款非常强大的开源搜索引擎,支持的功能非常多 【项目介绍】 1、该项目是个人高分项目源码(文档+源码),已获导师指导认可通过,答辩评审分达到96分。 2、该资源内项目代码都经过测试运行成功,...

    基于scrapy的分布式搜索引擎

    Elasticsearch是一个实时的、分布式的搜索和分析引擎,适合处理大量非结构化数据。通过集成Elasticsearch,我们可以快速地对抓取的数据进行全文检索、近似搜索以及数据分析。 五、Python在搜索引擎中的应用 Python...

Global site tag (gtag.js) - Google Analytics