ElasticSearch(分布式全文搜索引擎)

1.Lucene的优化, 实现了高可用的分布式集群的搜索方案

2.首先,ES的索引库管理支持依然是基于Apache Lucene(TM)的开源搜索引擎。ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

3.ES的特点

a)  分布式的实时文件存储,每个字段都被索引并可被搜索

分布式的实时分析搜索引擎

可以扩展到上百台服务器,处理PB级结构化或非结构化数据

高度集成化的服务,你的应用可以通过简单的 RESTful API、各种语言的客户端甚至命令行与之交互。
ES支持分布式集群

b)  上手Elasticsearch非常容易。它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。它拥有开瓶即饮的效果(安装即可使用),只需很少的学习既可在生产环境中使用。

c)  与ES类似的框架

i.     ES框架自身携带分布式协调管理的功能,但是仅仅支持json格式的数据

ii.     Solr(重量级加框架):利用zookeeper进行分布式管理,支持更多格式的数据,使用时要做许多配置

iii.     Katta基于Lucene
基于 Lucene 的,支持分布式,可扩展,具有容错功能,准实时的搜索方案。优点:开箱即用,可以与 Hadoop
配合实现分布式。具备扩展和容错机制。
缺点:只是搜索方案,建索引部分还是需要自己实现。在搜索功能上,只实现了最基本的需求。成功案例较少,项目的成熟度稍微差一些。

iv.     HadoopContrib

  1. Map/Reduce 模式的,分布式建索引方案,可以跟 Katta 配合使用。优点:分布式建索引,具备可扩展性。缺点:只是建索引方案,不包括搜索实现。工作在批处理模式,对实时搜索的支持不佳。

d)  小結:ElasticSearch简化了全文检索lucene的使用,同时增加了分布式的特性,使得构建大规模分布式全文检索变得非常容易。

  1. ES的安装和使用说明

a)  安装ES:下载压缩包解压,然后运行elasticsearch.bat就行了
浏览器运行:127.0.0.1:9200

b)  ES服务器的三个状态

i.     Green—yellow--red

c)  ES的交互方式

i.     基于restFul 的API交互方式,和所有的客户端交互都通过json格式的数据交互

ii.     Java API交互的两种方式

  1. 节点客户端
    节点客户端以无数据节点(none data
    node)身份加入集群,换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节点上。
  2. 传输客户端
    这个更轻量的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群中的节点。
    两个Java客户端都通过9300端口与集群交互,使用ES传输协议(ES Transport
    Protocol)。集群中的节点之间也通过9300端口进行通信。如果此端口未开放,你的节点将不能组成集群。

注意

Java客户端所在的ES版本必须与集群中其他节点一致,否则,它们可能互相无法识别。

d)  Restful风格的拓展认识

e)  辅助管理工具(kibana)

i.     ① Kibana5.2.2下载地址:https://www.elastic.co/downloads/kibana

ii.     ② 解压并编辑config/kibana.yml,设置elasticsearch.url的值为已启动的ES

iii.     ③ 启动Kibana5 :
bin\kibana.bat

iv.     ④ 默认访问地址:http://localhost:5601

  1. 认识ElasticSearch

a)  概念:和Lucene一样都是用于全文检索,区别就是Lucene是个全文搜索工具包,而ES是一个全文搜索服务器

b)  全文检索:基于索引查询数据的技术,代替了模糊查询,提高了查询的效率

c)  Lucene的缺点:使用复杂,只支持JAVA语言环境,Lucene无法做集群

d)  而ES弥补了Lucene的不足

i.     ElasticSearch简化了全文检索lucene的使用,同时增加了分布式的特性,使得构建大规模分布式全文检索变得非常容易.

ii.     ES本身支持集群,

iii.     ES对Lucene进行了一个封装,原来Lucene创建索引是使用一对代码创建索引,而ES创建索引只用发送一个http请求就好了

  1. 安装ES服务器

a)  下载ES压缩包

b)  解压

c)  启动bin/elasticsearch.bat

d)  测试是否启动: http://localhost:9200

e)  启动kibana时可以看到ES集群的健康状态

  1. ES图形界面客户端安装

1)curl

windows不支持,需要在linux

2)       火狐的POSTER插件界面

3)       kibana

官方推荐

4)前端head比较屌,可以直接看到shard和replica

5)postman

a)  这里选择kibana可视化界面

i.     下载压缩包

ii.     解压安装

iii.     修改config/kibana.yml配置文件: 设置elasticsearch.url的值为已启动的ES的端口路径

iv.     启动kibana

v.     访问localhost:5601

  1. ElasticSearch-Head的安装

a)  解压压缩包

,然后在cmd运行安装命令
npm install,和运行命令npm run start

安装完毕后要连接ES,需要在elasticsearch/config/elasticsearch.yml中进行配置, http.cors.enabled:
true

http.cors.allow-origin: "*",后才能连接到ES服务器

原文地址:https://www.cnblogs.com/8888-lhb/p/11520797.html

时间: 2024-11-05 20:48:16

ElasticSearch(分布式全文搜索引擎)的相关文章

ES(ElasticSearch)分布式全文搜索引擎

1.什么是ES**ES** 全称 **ElasticSearch** 是一种分布式全文搜索引擎,基于Lucene(全文搜索框架)开发而来.Lucene是公认的迄今为止的最好用的搜索引擎库,但是他所提供的API对于我们使用者来说,是非常苦恼的,常要花费大量时间去熟悉学习.ES的出现就很好的解决了这个问题,良好的封装,易用的API,链式书写方式,开瓶即饮.2.ES特点**ES** 虽然是以Lucene核心库开发的,但是却不是以它作为核心,**ES** 的贴点体现在: *分布式实时文件存储,每个字段皆

3.高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建

高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建 如果大家看了我的上一篇<2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离>文章,如果能很好的利用,那么其实已经可以轻松日抗千万级别的访问量了,但是如果业务涉及查询比较多,查询条件比较丰富,又或者我就想要查询的响应更快点,那么在mysql上面去做优化,其实比较辛苦,有没有更好的解决方案呢?答案是肯定的!它就是我们今天的主角,分布式全文搜索引擎elasticsearch. 技巧提示:mysql集群层主要

分布式全文搜索引擎ElasticSearch—超详细

1 ElasticSearch 1.1 ES的概念和特点 ES:全文检索的框架,专门做搜索,支持分布式.集群.封装的Lucene. 特点: 原生的Lucene使用的不足,优化了Lucene的调用方式 高可用的分布式集群,处理PB级别的数据 目的是通过简单的restful API来隐藏Lucene的复杂性,从而使全文检索变得简单,达到“开瓶即饮”的效果 Lucene:全文检索,api比较麻烦,操作全文检索的最底层技术. 核心:创建索引,搜索索引 1.2 ES的对手 Solr和ES的区别: (1)

分布式全文搜索引擎——Elasticsearch

1.安装Elasticsearch a.下载:从官网下载 Elasticsearch,地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch b.启动:解压后,在 bin 目录打开 elasticsearch.bat 启动服务 c.访问:在浏览器中访问 http://127.0.0.1:9200/ 检查是否安装成功 注意:端口9300:Java程序访问的端口:端口9200:浏览器访问的端口 Elasticsearch

分布式全文搜索引擎ES

ES 什么是ES文档操作: 1.ES是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document).然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索.在ES中,你可以对文档(而非成行成列的数据)进行索引.搜索.排序.过滤. 2.ES文档元素: 1._index:索引库,类似于关系型数据库里的“数据库”—它是我们存储和索引关联数据的地方. 2._type:在应用中,我们使用对象表示一些“事物”. 3.id:与 _index  和 _t

全文搜索引擎Elasticsearch初探

前言: 在Web应用或后台数据管理中,随着数据量的倍数增长,搜索引擎特别是全文搜索引擎的应用越来越迫切.基于技术和成本考虑,我们不可能去开发一个搜索引擎以满足我们的需求,庆幸的是业界已有许多优秀的开源搜索引擎可供我们使用,Elasticsearch便是其中之一. 简介: Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库.但是,Lucene只是一个库.想要使用它,你

全文搜索引擎 ElasticSearch 还是 Solr?

最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务一出问题,我们的项目也基本瘫痪,因为所有的依赖查询都无结果数据了.所以考虑开发一个适配层,如果 Solr 搜索出问题,自动切换到新的搜索--ES. 其实可以通过 Solr 集群或者服务容错等设计来解决该问题.但是先不考虑本身设计的合理性,领导需要开发,所以我开始踏上了搭建 ES 服务的道路,从零开始

全文搜索引擎 Elasticsearch 入门

1. 百科 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. 2. 安装 依赖Java8,本文在Linux上运行 下载.解压 $ wget https://artifacts.elastic.co/downloads/ela

全文搜索引擎 Elasticsearch 入门教程

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选. 它可以快速地储存.搜索和分析海量数据.维基百科.Stack Overflow.Github 都采用它. Elastic 的底层是开源库 Lucene.但是,你没法直接用 Lucene,必须自己写代码去调用它的接口.Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用. 本文从零开始,讲解如何使用 Elastic 搭建自己的全文搜索引擎.每一步都