Elasticsearch5 centos 中文搜索搭建

来源:互联网 发布:怎么入侵网站数据库 编辑:程序博客网 时间:2024/05/22 01:31
Elasticsearch是一个实时分布式搜索和分析引擎,简称es。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用。最近在参与了一个即时通信项目,目前日均聊天对话为5w通,假设每通对话最少20句对话,则日均产生数据为100w条记录。如此大的数据量,如何实现聊天记录的模糊搜索呢?聊天记录是备案到mysql数据表的,当然直接查询数据库,也是可以的,但是性能方面就是一个超大的瓶颈,考虑到性能的问题,以及搜索效率,于是对solr、es进行了调用,最后考虑到es的开发效率已经使用简单,采用了es用于搜索,把mysql数据表备案的聊天数据通过定时任务同步到es。
好,废话不多说,下面开始linux下搭建es。我先前项目中用的是es2.3,现在来看,es都更新到了5.*版本了。所以下面搭建的是es5.3
1、elasticsearch5是基于jdk 1.8的,先安装jdk1.8
安装JDK8
# yum search jdk.....vip-jdk6.x86_64 : vip.comvip-jdk7.x86_64 : vip.comvip-jdk8.x86_64 : vip.com# yum install vip-jdk8.x86_64 
配置JAVA_HOME
export JAVA_HOME='/apps/svr/jdk1.8.0_11'export PATH=$PATH:$JAVA_HOME/bin
2、首先下载elasticsearch安装包,现在已经更新到5.*版本,和之前的2.*版本差别很大。
5.0以上版本的ES跟之前的版本最大的不同之处就是多了很多环境的校验,比如jdk,max-files等等
设置内核参数
vi /etc/sysctl.conf
# 增加下面的内容
fs.file-max=65536
vm.max_map_count=262144
设置资源参数
vi /etc/security/limits.conf
# 修改
*soft nofile 32768
*hard nofile 65536
修改进程数
ulimit -u 2048

3.安装好es之后,修改配置文件 /etc/elasticsearch/elasticsearch.yml, 修改 cluster.name,  node.name 和 network.host三项即可。

# 换个集群的名字,免得跟别人的集群混在一起cluster.name:es-5.0-test# 换个节点名字node.name:node-101# 修改一下ES的监听地址,这样别的机器也可以访问network.host: 0.0.0.0# 默认的就好http.port: 9200#增加新的参数,这样head插件可以访问eshttp.cors.enabled:truehttp.cors.allow-origin: "*"
备注:
  1. cluster.name指定一个集群名字,必须相同
  2. node.name 可以设置为hostname
  3. network.host 是允许访问的IP,可以设为host的IP,如果是0.0.0.0则允许所有IP访问
  4. 默认HTTP Restful端口是9200, Java客户端协议端口是9300
安装完elasticsearch,启动
进入bin目录,执行 ./elasticsearch &(服务后运行),启动之后,可以通过在浏览器通过所在服务器地址,端口9200访问
4、elasticsearch-head插件安装
elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由HTML5编写的独立网页程序,你可以通过插件把它集成到es,是一个es可视化工具
es2.*版本是直接在elasticsearch的plugins目录直接下载安装elasticsearch-head,启动elasticsearch的时候直接启动即可。
1.elasticsearch/bin/plugin -install mobz/elasticsearch-head
2.运行es
3.打开http://localhost:9200/_plugin/head/
但是es5.0之后,_head插件的安装有较大的改变,不能直接在plugin目录安装
目前elasticsearch5的head插件依赖nodejs
从github上下载elasticsearch-head,注意不要放在elasticsearch的plugins目录,否则启动会报错。
任意目录新建一个目录head,从github上下载elasticsearch-head插件安装包
gitclone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head 以下操作在此目录下
1、先全局安装nodejs
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gztar -zvxf node-v0.10.26.tar.gzmake && make installnode -v
2、安装npmnpm install
3、安装grunt
npm install grunt-cli -gnpm install grunt --save-dev
最后修改elasticsearch-head中的 _site/app.js文件中的


最后依赖node启动插件,执行命令
grunt server & 
&可是服务后台运行
最后在浏览器通过服务器地址:9100就可以访问了,从下图可以看到插件监控的是刚才对应安装的占用端口9200的es服务。后续的关于es的介绍将在后续文章介绍。




0 0
原创粉丝点击