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.bat(bin/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 : bin\kibana.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

       略

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

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

    高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建 如果大家看了我的上一篇<2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离>文章,如果能很好的 ...

  2. 分布式全文搜索引擎ElasticSearch

    一 什么是 ElasticSearch Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elas ...

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

    1 ElasticSearch 1.1 ES的概念和特点 ES:全文检索的框架,专门做搜索,支持分布式.集群.封装的Lucene. 特点: 原生的Lucene使用的不足,优化了Lucene的调用方式 ...

  4. 全文搜索引擎Elasticsearch入门实践

    全文搜索引擎Elasticsearch入门实践 感谢阮一峰的网络日志全文搜索引擎 Elasticsearch 入门教程 安装 首先需要依赖Java环境.Elasticsearch官网https://w ...

  5. 全文搜索引擎 Elasticsearch 入门

    1. 百科 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作 ...

  6. Spring Boot 全文搜索引擎 ElasticSearch

    参考 全文搜索引擎ElasticSearch 还是Solr? - JaJian - 博客园

  7. 全文搜索引擎 Elasticsearch 安装

    全文搜索引擎 Elasticsearch 安装 学习了:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html 拼音:https://www ...

  8. 全文搜索引擎 ElasticSearch 还是 Solr?

    最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务 ...

  9. 全文搜索引擎 Elasticsearch 入门教程

    全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选. 它可以快速地储存.搜索和分析海量数据.维基百科.Stack Overflow.Gi ...

  10. 全文搜索引擎Elasticsearch详细介绍

    我们生活中的数据总体分为两种:结构化数据 和 非结构化数据. 结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理.指具有固 ...

随机推荐

  1. NOIP 2018 考前须知

    Day0Day0Day0来水一发 Created with Raphaël 2.2.0开始考试浏览题面(3遍),注意数据范围初步判定难度,先易后难15分钟左右想正解实在想吃不出写暴力,NOIP部分分很 ...

  2. 我的ImageIO.write ByteArrayOutputStream为什么这么慢?

    File.createTempFile(prefix, suffix),创建一个临时文件,再使用完之后清理即可.但是遇到如下两个坑: String prefix = "temp"; ...

  3. mariadb(mysql)[详解]

    本文链接:https://blog.csdn.net/root__oo7/article/details/82817501 安装: [root@bogon ~]# yum install mariad ...

  4. ssh集成

    导入pom依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  5. nexus 3.17.0 做为golang 的包管理工具

    nexus 3.17.0 新版本对于go 包管理的支持是基于go mod 的,同时我们也需要一个athens server 然后在nexus 中配置proxy 类型的repo 参考配置 来自官方的配置 ...

  6. Redis-5.0.5集群配置

    版本:redis-5.0.5 参考:http://redis.io/topics/cluster-tutorial. 集群部署交互式命令行工具:https://github.com/eyjian/re ...

  7. 【luoguP2371】 [国家集训队]墨墨的等式

    题目链接 考虑将所有的\(a_1x_1+a_2x_2+--+a_nx_n=B\)对\(a_1\)取模,那么所有可达到的B就分为了\(0\)~\(a_1-1\)类 如果对\(a_1\)取模为\(k\)的 ...

  8. linux性能监控常用命令

    概述 我们在linux下,如果想要监控服务器性能.我们必须掌握以下常用的指标查看命令. ps pstree top free vmstat sar ps ps命令能给出当前系统中进程的快照.下面我们列 ...

  9. 【Qt开发】vs2017+qt5.x编译32位应用

    概述 最近有同学私信我,问如何使用vs2017+qt5.10编译出32位的应用,需要使用msvc2017_x86的插件,然而qt官网并没有提供,只能使用源码编译生成msvc2017_x86插件,使用n ...

  10. 使用Spring容器最简单的代码姿势

    如果仅仅是为了测试简单使用一下Spring的IOC容器,或者研究一下Spring的容器的源码实现,那么在搭建Spring工程的时候,不需要复杂的xml配置.Spring3.0之后提供了Java注解配置 ...