Elasticsearch安装

一、简介

ES(ElasticSearch)是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene

官网: https://www.elastic.co/cn/downloads/

版本选择:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

文档说明:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/index.html

二、下载

(1)创建用户以及密码

因为ElasticSearch只允许普通用户启动

创建可以登陆shell/ssh的普通用户命令

useradd zzqes -s /bin/bash
passwd zzqes

输入2次密码后就可以用对应账户登陆了

(2)切换用户

(3)下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

三、安装

(1)解压

tar -zxvf elasticsearch-6.2.4.tar.gz

(2)修改jvm.options文件

 vim /home/zzqes/elasticsearch-6.2.4/config/jvm.options 

服务器内存比较小。不修改,报如下错误:

(3)修改elasticsearch.yml文件

vim /home/zzqes/elasticsearch-6.2.4/config/elasticsearch.yml

(4)修改 vi /etc/sysctl.conf

切换root用户修改

 vi /etc/sysctl.conf

新增配置内容:

vm.max_map_count=262144

执行命令生效

sysctl -p 


 

(5)修改 limits.conf文件

切换root账号修改

vim /etc/security/limits.conf

修改内容如下:

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

四、启动

后台启动

./bin/elasticsearch -d

访问

五、安装nodejs

elasticsearch-head是一个用来浏览、与Elastic Search簇进行交互的web前端展示插件。 elasticsearch-head是一个用来监控Elastic Search状态的客户端插件。

elasticsearch主要有以下主要操作 

1)簇浏览,显示簇的拓扑并允许你执行索引(index)和节点层面的操作。 

2)查询接口,允许你查询簇并以原始json格式或表格的形式显示检索结果。

3)显示簇状态,有许多快速访问的tabs用来显示簇的状态。 

4)支持Restful API接口,包含了许多选项产生感兴趣的结果,包括: 

第一,请求方式:get,put,post,delete; json请求数据,节点node, 路径path。

第二,JSON验证器。 

第三,定时请求的能力。 

第四,用javascript表达式传输结果的能力。 

第五,统计一段时间的结果或该段时间结果比对的能力

(1)下载依赖nodejs

官网:https://nodejs.org/en/

版本集:https://nodejs.org/dist/

 wget https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.xz

(2)解压

mkdir -p /opt/apps
tar -xf node-v9.9.0-linux-x64.tar.xz -C /opt/apps/

(3)配置环境变量

 vim /etc/profile

在profile文件最后新增如下内容:

export NODE_HOME=/opt/apps/node-v9.9.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH

说明:

/opt/apps/node-v9.9.0-linux-x64这个是nodejs解压目录

刷新配置

source /etc/profile

(4)查询node版本,同时查看是否安装成功

node -v 

六、安装head插件

(1)下载

 wget https://github.com/mobz/elasticsearch-head/archive/master.zip

(2)解压

 unzip master.zip

(3)移动目录

mv  elasticsearch-head-master /opt/apps/

(4)安装

使用淘宝的镜像库进行下载,速度很快 ,不设置淘宝镜像也行:可以使用npm install

npm install -g cnpm --registry=https://registry.npm.taobao.org

进入head插件解压目录,执行安装命令

cnpm install 

(5)运行

npm start

访问:此时未连接,需要配置才能连接

(6)修改Gruntfile.js文件配置

vim Gruntfile.js

(7)修改app.js文件

修改IP地址,连接elasticsearch

vim /opt/apps/elasticsearch-head-master/_site/app.js 

(8)修改elasticsearch.yml文件

head插件访问es时,在elasticsearch中要启用CORS,否则浏览器将拒绝跨域。

elasticsearch.yml配置文件新增内容:

http.cors.enabled: true
http.cors.allow-origin: "*"

(9)访问插件

(10)创建索引实例

(11)新增索引

说明

user:相当于关系型数据库中的database

student:相当于关系型数据库中的table

PUT:新增索引

GET:查询

POST:修改

DELETE:删除

(12)查询索引

单条数据查询  http://<ip>:<port>/<索引>/<类型>/<文档id>

查询索引user类型为student下的所有数据

(13)修改索引

 

(14)删除索引

 

七、Kibana安装

官网:https://www.elastic.co/cn/downloads/

kibana 插件提供了Marvel监控的UI界面。 kibana是一个与elasticsearch一起工作的开源的分析和可视化的平台。使用kibana可以查询、查看并与存储在elasticsearch索引的数据进行交互操作。使用kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。 kibana使得理解大容量的数据变得非常容易。它非常简单,基于浏览器的接口使我们能够快速的创建和分享显示elasticsearch查询结果实时变化的仪表盘

(1)下载

https://www.elastic.co/guide/en/kibana/current/targz.html

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.0-linux-x86_64.tar.gz
shasum -a 512 kibana-7.2.0-linux-x86_64.tar.gz 
tar -xzf kibana-7.2.0-linux-x86_64.tar.gz
cd kibana-7.2.0-linux-x86_64

(2)进入解压目录,修改kibana.yml配置

详细配置地址:https://www.elastic.co/guide/en/kibana/5.6/settings.html

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://39.97.176.160:9200"
kibana.index: ".kibana"

(3)启动

./bin/kibana

(4)访问

http://39.97.176.160:5601

可以看到这里有个红色的错误:“Unable to fetch mapping. Do you have indices matching the pattern?”,这个是因为在elasticsearch中还没有任何有关logstash-*格式相关的数据,所以这里才提示报错,可以暂时忽略

(5)操作

query DSL(domain specified language) 域定义语言,使用Kibana进行复杂查询测试。

es提供了一套api,叫做cat api,可以查看es中各种各样的数据

快速检查集群的健康状况

GET /_cat/health?v

快速查看集群中有哪些索引

GET /_cat/indices?v

新增

PUT /test_index/test_type/1
{"name":"lisi","sex":"女"}

查询

DELETE /test_index   #删除索引

查询索引全部

POST /test_index/text_type/_search
{

"query":

{ "match_all": {} }

}

按照字段排序

POST /test_index/text_type/_search
{ "query" :

{ "match" : { "name" : "li" } },

"sort": [ { "price": "desc" } ]

}

分页查询

GET /ecommerce/product/_search

{

 "query": { "match_all": {}

},

"from": 1,

"size": 1

}

query filter

搜索商品名称包含yagao,而且售价大于25元的商品

GET /ecommerce/product/_search

{ "query" : { "bool" : { "must" : { "match" : { "name" : "yagao" } },

"filter" : { "range" : { "price" : { "gt" : 25 } } }

} }

}

full-text search(全文检索)

GET /ecommerce/product/_search

{ "query" : { "match" : { "producer" : "yagao producer" } } }

phrase search(短语搜索)

跟全文检索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回 phrase search,要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才可以算匹配,才能作为结果返回

GET /ecommerce/product/_search

{ "query" : { "match_phrase" : { "producer" : "yagao producer" } } }

highlight search(高亮搜索结果)

GET /ecommerce/product/_search

 { "query" : { "match" : { "producer" : "producer" } }, "highlight": { "fields" : { "producer" : {} } } }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2014Team

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值