zoukankan      html  css  js  c++  java
  • 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 : binkibana.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服务器

  • 相关阅读:
    JVM学习笔记-指向Class类的引用(A Reference to Class Class)
    JVM学习笔记-方法区示例与常量池解析(Method Area Use And Constant Pool Resolution)
    JVM学习笔记-堆(Heap)
    JVM学习笔记-程序计数器(The Program Counter)
    JVM学习笔记-栈(Stack)
    JVM学习笔记-栈帧(The Stack Frame)
    JVM学习笔记-局部变量区(Local Variables)
    html大文件传输源代码
    html大文件传输源码
    html大文件传输插件
  • 原文地址:https://www.cnblogs.com/8888-lhb/p/11520797.html
Copyright © 2011-2022 走看看