Centos安装elasticsearch,php连接使用
一.下载安装JAVA
下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
# 如果用`wget`方式下载解压时会出现错误`gzip: stdin: not in gzip format`
# 这里建议在浏览器里下载后传到服务器上,去Oracle官网下载过jdk的童鞋应该都知道,
# 下载之前需要同意Oracle的安装协议,不然不能下载,但是用wget的方式,默认是不同意,
# 虽然能下载下来,但是下载下来的文件会有问题,所以在Linux上解压一直失败。
tar -xzvf jdk-13.0.1_linux-x64_bin.tar.gz
vim /etc/profile
export JAVA_HOME=/www/soft/java/jdk-13.0.1
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
# ln -s /www/soft/java/jdk-13.0.1/bin/java /usr/bin/java
java -version
二.下载安装ElasticSearch
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gz
tar -xzvf elasticsearch-7.4.2-linux-x86_64.tar.gz
# elasticsearch不能用root用户运行,要先创建用户
groupadd www
useradd -g www www
chown -R www:www *
su www
cd /www/soft/elasticsearch/elasticsearch-7.4.2
sh bin/elasticsearch -d
ps -ef | grep elastic
curl http://127.0.0.1:9200
# 出现如下数据,说明elasticsearch已经搭建好了
{
"name" : "hckj998",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "vDHMfXLhR_aha7EOeClebg",
"version" : {
"number" : "7.4.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
"build_date" : "2019-10-28T20:40:44.881551Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
三.设置开机启动
cd /www/soft/elasticsearch/elasticsearch-7.4.2
#在bin目录下新建start.sh
vim start.sh
#!/bin/bash
cd /www/soft/elasticsearch/elasticsearch-7.4.2
su www -c "sh bin/elasticsearch -d"
#在bin目录下新建stop.sh
vim stop.sh
#!/bin/bash
ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}' | xargs kill -9
vim /etc/rc.d/rc.local
#在/etc/rc.d/rc.local尾部添加一行
/www/soft/elasticsearch/elasticsearch-7.4.2/start.sh
#修改权限
chmod +x /etc/rc.d/rc.local
#查看rc.local服务的状态
systemctl list-units --type=service
#如果改服务显示failed,则需要开启该服务
systemctl status rc-local.service
#如果上面的命令这里出现Active: failed (Result: exit-code)
#则说明启动脚本有问题,根据错误提示,修改start.sh脚本就行
#最后开启服务器
systemctl enable rc-local.service
四.安装ik中文分词
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
cd /www/soft/elasticsearch
elasticsearch-7.4.2/bin/elasticsearch-plugin install -b file:///www/soft/elasticsearch/elasticsearch-analysis-ik-7.4.2.zip
五.验证
#创建索引
curl -X PUT http://127.0.0.1:9200/test_index?pretty -v -H "Content-Type: application/json" -d '
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"_source": {
"enabled": true
},
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "text",
"analyzer": "ik_max_word"
},
"image": {
"type": "text"
},
"author": {
"type": "text",
"analyzer": "ik_max_word"
},
"words": {
"type": "integer"
},
"description": {
"type": "text",
"analyzer": "ik_max_word"
},
"type_name": {
"type": "text"
}
}
}
}
'
#查看所有索引
curl -XGET http://localhost:9200/_aliases?pretty
curl -XGET '127.0.0.1:9200/_cat/indices?pretty'
#查看索引定义
curl -XGET "http://127.0.0.1:9200/test_index?pretty"
#查看索引mapping
curl -XGET "http://127.0.0.1:9200/test_index/_mapping?pretty"
#删除索引
curl -XDELETE "http://127.0.0.1:9200/test_index?pretty"
#获取文档数量
curl -XPOST "http://127.0.0.1:9200/poetry/_doc/count" -H "Content-Type: application/json" -d '
{
"query": {
"match_all": {}
}
}'
#查询所有文档
curl -XGET "http://127.0.0.1:9200/poetry/_search" -v -H "Content-Type: application/json" -d '
{
"query": {
"match_all": {}
}
}'
#删除所有文档
curl -XPOST "http://127.0.0.1:9200/student/_delete_by_query?pretty" -v -H "Content-Type: application/json" -d '
{
"query": {
"match_all": {}
}
}'
#删除索引
curl -XDELETE "http://127.0.0.1:9200/student?pretty"
#查询id为10的文档
curl -XGET "http://127.0.0.1:9200/poetry/_doc/10"
.....剩余的操作请参考官网文档:
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/indices.html
六.php使用
安装elasticsearch库, composer地址: https://packagist.org/packages/elasticsearch/elasticsearch
composer require elasticsearch/elasticsearch
php使用官方文档: https://www.elastic.co/guide/cn/elasticsearch/php/current/_quickstart.html
简单的封装
<?php
namespace app\util\elsearch;
use Elasticsearch\Common\Exceptions\Missing404Exception;
use Elasticsearch\ClientBuilder;
/**
* Class ELSearch
* 封装ELSearch增删改查操作
* @package app\util\elsearch
*/
class ELSearch
{
//获取ELSearch客户端对象
public static function client() {
return $client = ClientBuilder::create()
->setHosts(config('util.elastic_search_host'))
->build();
}
//删除某一个文档
public static function delDoc($index, $id) {
$params = [
'index' => $index,
'type' => '_doc',
'id' => $id
];
$response = self::client()->delete($params);
return $response;
}
//删除索引下的所有文档
public static function delAllDoc($index) {
$params = [
'index' => $index,
'type' => '_doc',
'body' => [
'query' => [
'bool' => [
'must_not' => ['term' => [ 'id' => -1000 ]],
]
]
]
];
$response = self::client()->deleteByQuery($params);
return $response;
}
//获取文档
public static function getDoc($index, $id) {
$params = [
'index' => $index,
'type' => '_doc',
'id' => $id
];
try {
$response = self::client()->get($params);
return $response['_source'];
} catch (Missing404Exception $e) {
return null;
}
}
//更新文档
public static function updateDoc($index, $id, $data) {
$params = [
'index' => $index,
'type' => '_doc',
'id' => $id,
'body' => [
'doc' => $data
]
];
return self::client()->update($params);
}
//添加文档
public static function addDoc($index, $id, $data) {
$params = [
'index' => $index,
'type' => '_doc',
'id' => $id,
'body' => $data
];
$response = self::client()->index($params);
return $response;
}
//删除索引
public static function delIndex($index) {
//先删除索引下所有的文档
self::delAllDoc($index);
//再删除索引
$params = ['index' => $index];
$response = self::client()->indices()->delete($params);
return $response;
}
//创建索引
public static function newIndex($index, $fields) {
$params = [
'index' => $index,
'body' => [
'settings' => [
'number_of_shards' => 1,
'number_of_replicas' => 0
],
'mappings' => [
'_source' => [
'enabled' => true
],
'properties' => $fields
]
]
];
$response = self::client()->indices()->create($params);
return $response;
}
}
Centos安装elasticsearch,php连接使用的更多相关文章
- CENTOS安装ElasticSearch(转)
From: https://my.oschina.net/topeagle/blog/591451?fromerr=mzOr2qzZ CENTOS安装ElasticSearch ElasticSear ...
- CENTOS安装ElasticSearch
原文链接:https://my.oschina.net/topeagle/blog/591451?fromerr=mzOr2qzZ CENTOS安装ElasticSearch ElasticSearc ...
- Centos安装elasticsearch教程
elasticsearch安装是ytkah在做laravel电商站内搜索要实现的,通过自己的搜索和学习能力不算很费力解决了.下面就整理一下安装elasticsearch教程,服务器是Centos 7, ...
- centos安装Elasticsearch步骤
1.安装JDK:centos删除openJDK,安装JDK,vim /etc/profile配置JAVA_HOME 2.官网下载elasticsearch:https://www.elastic.co ...
- centos安装及Xshell连接配置
一.百度下载并安装VMware 二.下载centos 打开https://www.centos.org,点击“get centos now”,点击“DVD ISO”下载(也可以下滑点击“more do ...
- CentOS 安装 Ansible 以及连接Windows server的办法
1. CentOS机器上面按住那ansible yum install ansible 2. 安装 pywinrm 如果不安装 这个的话 ansible 会提示 没有 winrm 模块 注意需要先 ...
- centos 安装xrdp远程连接桌面
1. 安装epel库,否则无法安装xrdp yum install epel-release 2.安装 xrdp yum install xrdp 3. 安装tigervnc-server yum i ...
- centos安装redis +RedisDesktopManager连接redis
1.先到Redis官网(redis.io)下载redis安装包 wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzf red ...
- CentOS 安装 elasticsearch 注意点
注意点: 1. 从官网下载以 rpm 结尾的软件包 7.3.1版本 下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elastic ...
随机推荐
- 使用scp上传ssh公钥到服务器
$ scp ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:.ssh/id_rsa.pub $ ssh root@xxx.xxx.xxx.xxx $ cat ~/.ssh ...
- oracle查询消耗服务器资源SQL语句
1.查找最近一天内,最消耗CPU的SQL语句 SELECT ASH.INST_ID, ASH.SQL_ID, (SELECT VS.SQL_TEXT FROM GV$SQLAREA VS WHERE ...
- Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤
Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤 一.在ubuntu下尝试 1. 在虚拟机VWware Workstation 12. ...
- 你真的会用go语言写单例模式吗?
最近在学习Golang,想着可以就以前的知识做一些串通,加上了解到go语言也是面向对象编程语言之后.在最近的开发过程中,我碰到一个问题,要用go语言实现单例模式.本着“天下知识,同根同源”(我瞎掰的~ ...
- pwn学习日记Day12 《程序员的自我修养》读书笔记
目标文件里有什么 ELF各段 代码段 text 数据段 data bss段 只读数据段 rodata 注释信息段 comment 堆栈提示段 .note.GNU-stack comment 存放编译器 ...
- Intellij IDEA导入JAVA项目并启动(哈哈哈,天天都有人问)
最近有很多同学,竟然不知道如何使用Intellij IDEA打开Java项目并启动 现在来讲一下,希望不要忘记了 1.打开IDEA开机页面 Maven项目 2.Maven项目是以pom文件引入各项ja ...
- 最全的tcpdump使用详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...
- arcgis python获得别名
import arcpy # Create a Describe object from the GDB table. # desc = arcpy.Describe(r"C:\Users\ ...
- CentOS7 docker开启tcp端口并进行客户端远程连接
#docker版本:18.09.0,最好保证客户端端口和服务端端口相同 [root@Centos7 ~]# dockerd-ce -v Docker version , build 4d60db4 网 ...
- VGG Net学习笔记
一.简介 VGG Net由牛津大学的视觉几何组(Visual Geometry Group)和 Google DeepMind公司的研究员一起研发的的深度卷积神经网络,在 ILSVRC 2014 上取 ...