一.下载安装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. NSString的创建

    create #progma mark  create NSString void stringCreate(){ //char *s="A String";->c NSSt ...

  2. openpyxl -用于读/写Excel 2010 XLSX/XLSM文件的python库

    openpyxl -用于读/写Excel 2010 XLSX/XLSM文件的python库¶ https://www.osgeo.cn/openpyxl/index.html

  3. ImportError: No module named pytz

    xxx@hostname:/opt/xx/cc$ python manage.py runserver Traceback (most recent call last): File , in < ...

  4. redis之不重启,切换RDB备份到AOF备份

    确保redis版本在2.2以上 [root@pyyuc /data 22:23:30]#redis-server -v Redis server v=4.0.10 sha=00000000:0 mal ...

  5. Ubuntu14.04 dd命令克隆系统镜像安装到另一台机器上

    linux系统如果想做备份还原,使用ghost的时候经常出现问题,后来发现可以直接使用dd命令完成硬盘的克隆和还原.当拷贝完硬盘后,就可以拿这个硬盘放到其它设备上跑了.也就是完成了“烧写”了. 用U盘 ...

  6. input上传mp3格式文件,预览并且获取时间

    <input type="file" id="file" name="file" class="upfile" o ...

  7. CF1208C

    CF1208C 这场杜老师大战tourist的比赛怎么这么多人类智慧题... 题意: 构造一个 $ n \times n $ 的矩阵,使得该矩阵每一行与每一列的元素的异或和全部相等. 解法: 异或的神 ...

  8. instr和like的使用区别

    1.instr函数 instr函数是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置,如果在源串中没有找到子串,则返回0. instr函数定义如下: /* * 返回子 ...

  9. Flask-login 例子

    ################################################################################ from flask.ext.logi ...

  10. Object.keys() 遍历对象

    Object.keys()方法的运用与数组遍历 Object.keys()用于获得由对象属性名组成的数组,可与数组遍历相结合使用,用起来效果杠杠滴.数组遍历可以用for()或forEach()来实现, ...