# ElasticSearch从入门到大牛

本文档详细介绍了ElasticSearch的使用,从介绍为何选择ElasticSearch替代Lucene,到安装、配置、数据管理和Java API的使用。内容涵盖ES的使用者、与Solr的对比、安装步骤、Kibana辅助工具的配置,以及文档的增删改查、分词与映射、查询过滤等关键知识点,旨在帮助读者快速掌握ElasticSearch并应用于实际项目。
摘要由CSDN通过智能技术生成

ElasticSearch从入门到大牛

#一. ElasticSearch介绍
为什么要使用ElasticSearch ?在全文搜索领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库,想要使用它,那么就必须使用Java来作为开发语言并将其直接集成到你的应用中,然而Lucene的配置及使用非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。 在实际项目中,我们建立一个网站或应用程序,并要添加搜索功能,令我困难的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON/XML通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并在需要扩容时方便地扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案;那么我们的 ElasticSearch就因此诞生了。
ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案,其第一个版本于2010年2月出现在GitHub上并迅速成为最受欢迎的项目之一。
首先,ES的索引库管理支持依然是基于Apache Lucene™的开源搜索引擎。 ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 但是,ES的核心不在于Lucene,其特点更多的体现为:分布式的实时文件存储,每个字段都被索引并可被搜索;分布式的实时分析搜索引擎;可以扩展到上百台服务器,处理PB级结构化或非结构化数据;高度集成化的服务,你的应用可以通过简单的 RESTful API、各种语言的客户端甚至命令行与之交互。 上手Elasticsearch非常容易。它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。它拥有开瓶即饮的效果(安装即可使用),只需很少的学习既可在生产环境中使用。

2.1.ES的使用者及类似框架

1.github 1300亿代码查询
2.地图 5000w 地理信息
3.婚恋网 2亿中国人找对象
4.京东商城

3.1类似框架

1.Solr(重量级对手)
Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。
2.Solr和ES比较:
Solr 利用 Zookeeper 进行分布式管理,支持更多格式的数据(HTML/PDF/CSV),官方提供的功能更多在传统的搜索应用中表现好于 ES,但实时搜索效率低。
ES自身带有分布式协调管理功能,但仅支持json文件格式,本身更注重于核心功能,高级功能多有第三方插件提供,在处理实时搜索应用时效率明显高于 ES。
3. Katta
基于 Lucene 的,支持分布式,可扩展,具有容错功能,准实时的搜索方案。
优点:开箱即用,可以与 Hadoop 配合实现分布式。具备扩展和容错机制。
缺点:只是搜索方案,建索引部分还是需要自己实现。在搜索功能上,只实现了最基本的需求。成功案例较少,项目的成熟度稍微差一些。
4. HadoopContrib
Map/Reduce 模式的,分布式建索引方案,可以跟 Katta 配合使用。
优点:分布式建索引,具备可扩展性。
缺点:只是建索引方案,不包括搜索实现。工作在批处理模式,对实时搜索的支持不佳。
总之:就是ElasticSearch简化了全文检索lucene的使用,同时增加了分布式的特性,使得构建大规模分布式全文检索变得非常容易。

二.ES安装及使用

2.1包含的内容
ES的安装比较简单,只需要官方下载ES的运行包,然后启动ES服务即可。
ES的使用主要是通过能够发起HTTP请求的终端来接入,比如Poster插件、CURL、kibana5等。
2.2下载es
下载地址:https://www.elastic.co/downloads/elasticsearch
下载好了只需要解压出来,只需要运行elasticsearch.bat即可;
能够访问:http://localhost:9200/ 就成功。
2.3ES交互方式
ES和所有客户端的交互都是使用JSON格式的数据;
都是基于RESETful API。
Re

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值