一.下载安装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. 8月清北学堂培训 Day4

    今天上午是赵和旭老师的讲授~ 概率与期望 dp 概率 某个事件 A 发生的可能性的大小,称之为事件 A 的概率,记作 P ( A ) . 假设某事的所有可能结果有 n 种,每种结果都是等概率,事件 A ...

  2. 字典-Python基础前传(9)

    (一)Python中为什么要有字典 jacky说科学存在的逻辑只有两个: 1.解释问题 2.解决问题 我们明白了科学的逻辑,我们理解任何的知识和技能,都是很简单的 之前jacky跟大家说list因为太 ...

  3. 关于rsa公钥格式的处理,一行纯内容进行换行格式化

    最近在开发百度小程序,他的平台公钥是纯字符串,公钥的内容,没有rsa文件的头(-----BEGIN PUBLIC KEY-----)和尾部分-----END PUBLIC KEY----- 但是 PH ...

  4. CF1197B

    CF1197B 题意: 出n个柱子,每个柱子一个圆盘,其半径各不相同,每次只能将柱子上只有一个圆盘的移到相邻位置,问能否全部移到一个柱子上. 解法: 思路题. 如果所有盘子都能移动到同一个柱子上,那么 ...

  5. 性能调优 | 如何通过性能调优突破 MySQL 数据库性能瓶颈?

    本文出自头条号老王谈运维,转载请说明出处. MySQL 数据库瓶颈对 DBA 程序员而言,是非常棘手的问题.要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里 ...

  6. LC 592. Fraction Addition and Subtraction

    Given a string representing an expression of fraction addition and subtraction, you need to return t ...

  7. MySQL 创建删除和选择数据库

    使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 删除数据库 drop database <数据库名>; 选择数据库 use 数据库名 Datab ...

  8. cls只能调用一次实例 第二次None

    class Zarten(): _singleton = None def __new__(cls, *args, **kwargs): print('__new__') if not cls._si ...

  9. Markdown 图片的简单处理

    0. 前言 最近写 md 文章的时候发现,在 markdown 里插入一些很长的图片的时候,会显得很不好看,于是去查了一下如何实现 markdown 里图片的并排显示,参考了各个博客内的内容和 mar ...

  10. xhprof代码添加分析性能

    <?php xhprof_enable( XHPROF_FLAGS_MEMORY, [ 'ignored_functions' => [ //'call_user_func', //'ca ...