一.下载安装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连接使用的更多相关文章

  1. CENTOS安装ElasticSearch(转)

    From: https://my.oschina.net/topeagle/blog/591451?fromerr=mzOr2qzZ CENTOS安装ElasticSearch ElasticSear ...

  2. CENTOS安装ElasticSearch

    原文链接:https://my.oschina.net/topeagle/blog/591451?fromerr=mzOr2qzZ CENTOS安装ElasticSearch ElasticSearc ...

  3. Centos安装elasticsearch教程

    elasticsearch安装是ytkah在做laravel电商站内搜索要实现的,通过自己的搜索和学习能力不算很费力解决了.下面就整理一下安装elasticsearch教程,服务器是Centos 7, ...

  4. centos安装Elasticsearch步骤

    1.安装JDK:centos删除openJDK,安装JDK,vim /etc/profile配置JAVA_HOME 2.官网下载elasticsearch:https://www.elastic.co ...

  5. centos安装及Xshell连接配置

    一.百度下载并安装VMware 二.下载centos 打开https://www.centos.org,点击“get centos now”,点击“DVD ISO”下载(也可以下滑点击“more do ...

  6. CentOS 安装 Ansible 以及连接Windows server的办法

    1. CentOS机器上面按住那ansible yum install ansible 2. 安装 pywinrm  如果不安装 这个的话  ansible 会提示 没有 winrm 模块 注意需要先 ...

  7. centos 安装xrdp远程连接桌面

    1. 安装epel库,否则无法安装xrdp yum install epel-release 2.安装 xrdp yum install xrdp 3. 安装tigervnc-server yum i ...

  8. centos安装redis +RedisDesktopManager连接redis

    1.先到Redis官网(redis.io)下载redis安装包 wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzf red ...

  9. CentOS 安装 elasticsearch 注意点

    注意点: 1. 从官网下载以 rpm 结尾的软件包 7.3.1版本 下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elastic ...

随机推荐

  1. 使用scp上传ssh公钥到服务器

    $ scp ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:.ssh/id_rsa.pub $ ssh root@xxx.xxx.xxx.xxx $ cat ~/.ssh ...

  2. oracle查询消耗服务器资源SQL语句

    1.查找最近一天内,最消耗CPU的SQL语句 SELECT ASH.INST_ID, ASH.SQL_ID, (SELECT VS.SQL_TEXT FROM GV$SQLAREA VS WHERE ...

  3. Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤

    Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤 一.在ubuntu下尝试 1. 在虚拟机VWware Workstation 12. ...

  4. 你真的会用go语言写单例模式吗?

    最近在学习Golang,想着可以就以前的知识做一些串通,加上了解到go语言也是面向对象编程语言之后.在最近的开发过程中,我碰到一个问题,要用go语言实现单例模式.本着“天下知识,同根同源”(我瞎掰的~ ...

  5. pwn学习日记Day12 《程序员的自我修养》读书笔记

    目标文件里有什么 ELF各段 代码段 text 数据段 data bss段 只读数据段 rodata 注释信息段 comment 堆栈提示段 .note.GNU-stack comment 存放编译器 ...

  6. Intellij IDEA导入JAVA项目并启动(哈哈哈,天天都有人问)

    最近有很多同学,竟然不知道如何使用Intellij IDEA打开Java项目并启动 现在来讲一下,希望不要忘记了 1.打开IDEA开机页面 Maven项目 2.Maven项目是以pom文件引入各项ja ...

  7. 最全的tcpdump使用详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  8. arcgis python获得别名

    import arcpy # Create a Describe object from the GDB table. # desc = arcpy.Describe(r"C:\Users\ ...

  9. CentOS7 docker开启tcp端口并进行客户端远程连接

    #docker版本:18.09.0,最好保证客户端端口和服务端端口相同 [root@Centos7 ~]# dockerd-ce -v Docker version , build 4d60db4 网 ...

  10. VGG Net学习笔记

    一.简介 VGG Net由牛津大学的视觉几何组(Visual Geometry Group)和 Google DeepMind公司的研究员一起研发的的深度卷积神经网络,在 ILSVRC 2014 上取 ...