zoukankan      html  css  js  c++  java
  • 分布式全文搜索引擎(ElasticSearch)

    1、 ElasticSearch介绍(简称ES)

      ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案。

      首先,ES的索引库管理支持依然是基于Apache Lucene(TM)的开源搜索引擎。

      ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

      Lucene直接通过java API调用,而ES把这些API调用过程进行了的封装为简单RESTful请求,让我们调用起来更加简单.

      不过,ES的核心不在于Lucene,其特点更多的体现为:

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

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

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

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

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

     

       Lucene和ES的联系和区别项目中为啥使用ES而不用Lucene

        联系:ElasticSearch封装了Lucene,让使用变得更简单,在高可用上面做得更好。

        区别:ElasticSearch除了拥有Lucene所有优点以外,还拥有自己优点.

           可用性:支持集群,没有单点故障

           扩展性:支持集群扩展

         在集群环境使用:

        ElasticSearch:搜索引擎服务器,所有项目都统一访问索引服务器,可以支持在集群环境使用.

        Lucene :搜索引擎工具包,必须集成到项目中使用,而在集群环境下,多个服务器都有自己Lucene文件,所以不统一. 不支持在集群环境使用

         支持多种语言:ElasticSearch支持很多语言,Lucene支持java。

         简单性:ElasticSearch简单,都是http请求;而Lucene比较复杂,都要调用API执行一大堆操作

     

      一般lucene在中小型项目中使用(但是也能使用es),而ES在大型项目中使用.因为ES支持在集群环境使用,并且自身也支持集群.

     

    2、ES的组成&交互方式

      ES由:服务端、客户端、RestfulAPI组成。

      交互方式(基于Restful API):  

        ES和所有客户端的交互都是使用JSON格式的数据。

        其他所有程序语言都可以使用RESTful API,通过9200端口的与ES进行通信,在开发测试阶段,你可以使用你喜欢的WEB客户端, curl命令以及火狐的POSTER插件方式和ES通信。

     

    3、ES的安装 

      ES服务只依赖于JDK,推荐使用JDK1.7+。

      ① 下载ES安装包

      官方下载地址:https://www.elastic.co/downloads/elasticsearch

      本文以在window环境下,ES 5.2.2版本为例,下载对应的ZIP文件。

      ②安装

          由于是绿色版本,解压缩就能安装.

      ③ 运行ES

        改一下jvm.options,然后在在bin目录下运行elasticsearch.batbin/elasticsearch.bat)。

     

      ④ 验证

      访问:http://localhost:9200/

     

      看到上图信息,恭喜你,你的ES集群已经启动并且正常运行。

     

    4、ES的客户端  

      ES客户端可以分为图形界面客户端代码客户端

      图形界面客户端有多个,要选择一个合适的。使用选择好的图形界面客户端

    和代码客户端使用restfulapi操作es服务端。

     4.1 图形界面客户端 9200 

       ① Curl命令方式:

      默认windows下不支持curl命令。

     

      ②火狐的POSTER插件界面:

      类似于Firebug,在火狐的“扩展”中搜索“POSTER”,并安装扩展工具。

      使用POSTER模拟请求的效果

      

      ③辅助管理工具Kibana5

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

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

        ③ 启动Kibana5 : binkibana.bat

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

        Discover:可视化查询分析器

        Visualize:统计分析图表

        Dashboard:自定义主面板(添加图表)

        Timelion:Timelion是一个kibana时间序列展示组件(暂时不用)

        Dev Tools :Console(同CURL/POSTER,操作ES代码工具,代码提示,很方便)

        Management:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。

     

       4.2 Java代码客户端 9300

           略

  • 相关阅读:
    VS2010不能引用System.Data.OracleClient解决方法(转)
    stdafx.h的作用(转载)
    生成缩略图
    java 泛型 入门
    itext库产生word文档示例(.doc)
    json(在JSP中) 应用实例
    C/C++ 指针应用 常见问题
    Java RTTI 和 反射机制
    Hibernate DAO类三个函数:merge() attachDirty() attachClean()
    HTTPSession 简介
  • 原文地址:https://www.cnblogs.com/wanghj-15/p/11307950.html
Copyright © 2011-2022 走看看