当前位置:首页 > 技术文档 > 正文内容

Cenots上elasticsearch安装与使用

admin7年前 (2018-06-12)技术文档1773
  1. 安装java环境

    懒人模式:yum install java*

    简单配置下:

    vim /etc/profile

    尾部加上:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

    保存退出后使用命令更新配置

source /etc/profile

    2.安装elasticsearch

由于ES不在yum的本地源,所以我们需要添加ES的yum配置。

     下载并安装ES的yum公钥

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

    配置ES的yum源

vim /etc/yum.repos.d/elasticsearch.repo

    输入下面的内容:


[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenabled=1

二、yum安装ES

    更新yum的缓存


yum makecache

    安装ES

yum install elasticsearch

三、测试ES

1、配置和启动ES服务器进程

/sbin/chkconfig --add elasticsearch
systemctl start elasticsearch

2、查看状态(可能遇到启动失败,如果遇到内存不足情况,弄点swap虚拟内存凑一下)

systemctl status elasticsearch

3、运行测试

curl -X GET localhost:9200

返回的json结果如下:

{
    "name": "Mister One",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "HGBnQTTDTpKlCJnMSXyHBg",
    "version": {
        "number": "2.4.6",
        "build_hash": "5376dca9f70f3abef96a77f4bb22720ace8240fd",
        "build_timestamp": "2017-07-18T12:17:44Z",
        "build_snapshot": false,
        "lucene_version": "5.5.4"
    },
    "tagline": "You Know, for Search"
}

四、通过IP访问ES的配置

四、通过IP访问ES的配置

 

1、打开/etc/elasticsearch/elasticsearch.yml

vim /etc/elasticsearch/elasticsearch.yml

   


 55行的network.host,把后面改为0.0.0.0或者虚拟机ip地址,这样就可以在window系统用浏览器通过访问虚拟机的ip,正确访问效果如下

 

image.png

安装elasticsearch-head插件,用于监控

 cd /usr/share/elasticsearch/bin

执行:

 ./plugin install mobz/elasticsearch-head

安装完成后,即可通过浏览器访问:

http://192.168.32.128:9200/_plugin/head/

image.png

    php使用案例:

<?php 
require_once('vendor/autoload.php');
use Elasticsearch\ClientBuilder;


function get_conn(){
	$host = 'localhost';
	$dbname = 'mraz';
	$user = 'root';
	$passwd = '111111';


	$conn = new PDO("mysql:dbname=$dbname;host=$host",$user,$passwd);
	return $conn;
}


function create_index(){
	//Elastic search php client




	$client = Elasticsearch\ClientBuilder::create()->setHosts(['192.168.32.128'])->build();
	$sql    = "SELECT * FROM emp";
	$conn   = get_conn();
	$stmt   = $conn->query($sql);
	$rtn    = $stmt->fetchAll();


	//delete index which already created
	$params = array();
	$params['index'] = 'emp_index';
	$client->indices()->delete($params);
	
	//create index on log_date,src_ip,dest_ip
	$rtnCount = count($rtn);
	for($i=0;$i<$rtnCount;$i++){
		$params = array();
		$params['body'] = array(
			'id'       => $rtn[$i]['id'],
			'fdName'   => $rtn[$i]['fdName'],
			'fdAge'    => $rtn[$i]['fdAge'],
			'fdStatus' => $rtn[$i]['fdStatus']
		);
		$params['index'] = 'emp_index';
		$params['type']  = 'emp_type';
		
		//Document will be indexed to log_index/log_type/autogenerate_id		
		$client->index($params);
	}
	echo 'create index done!';
}


function search(){
	//Elastic search php client
	$client = Elasticsearch\ClientBuilder::create()->build();
	$params = array();
	$params['index'] = 'emp_index';
	$params['type'] = 'emp_type';
	$params['body']['query']['match']['fdStatus'] = '1';
	$params['body']['sort'] = array('fdAge'=>array('order'=>'desc'));
	$params['size'] = 3;  
   	$params['from'] = 1;  
	$rtn = $client->search($params);
	var_dump($rtn);
}


set_time_limit(0);
// create_index();
search();
?>


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:https://yuyunhe.cn/index.php/post/264.html

分享给朋友:

“Cenots上elasticsearch安装与使用” 的相关文章

dz第三方模块添加方法

dz第三方模块添加方法

使用dz做网站的朋友有时候会用到第三方模块专题,这就会遇到一个模块通信的问题,可是弄了半天就是“数据无法识别,请返回”, 也够雷人的,ok,这你就给大家分享下本人的一点经验,以供大家参考!dz第三方模块添加方法...

thinkphp获取URL参数

一般情况下URL中的参数就是通过GET方法获取,但是由于PATHINFO的特 殊性,URL地址最终需要被解析才能转换成GET参数,ThinkPHP对URL是按照一定的规则进行解析的,除非你使用了URL路由规则,如果你对 URL做了特别的定制,但是又不想使用URL路由,那么可以使用框架提供的URL...

图文解说Navicat使用ssh方式连接远程MySql服务器

图文解说Navicat使用ssh方式连接远程MySql服务器

如何使用Navicat 8.0 for MySQL连接公司服务器的数据库,但我也是第一次接触这个软件,搞了半天也没连上,在网上找了很多解决的办法,其中就有使用ssh方式连接的,但写的不够详细,因此还是费了一番功夫,自己搞定的,不敢独享,特记录下来 与大家分享。首先,在Navicat的连接设置里选择S...

PHP利用Curl模拟登录并获取数据例子

PHP利用Curl模拟登录并获取数据例子

几乎所有的程序员来模仿用户登录或抓取数据都会使用到curl函数,下面我来给各位介绍利用curl函数实现登录并抓取数据,希望下面例子对各位有帮助。PHP的curl()在抓取网页的效率方面是比较高的,而且支持多线程,而file_get_contents()效率就要稍低些,当然,使用curl时需要开启下c...

php二维数组转换为一维数组的几种方法

在开发过程中,我们经常需要将二维数组转为一维数组,个人总结了2种方法,分享给大家如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array(  array(    'id'=>'45',    'name'=>'...

ThinkPHP实现多数据库连接的解决方法

这篇文章主要介绍了ThinkPHP实现多数据库连接的解决方法,需要的朋友可以参考下ThinkPHP实现连接多个数据的时候,如果数据库在同一个服务器里的话只需要这样定义模型:?123class MembersModel extends Model{protected $trueTableName =...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。