php 使用 Elasticsearch

安装java

##查看系统版本
uname -a

##查找
yum -y list java*

##安装对应版本
yum install java-11-openjdk-devel.x86_64

##查看java版本
java -version

##设置环境变量
vim /etc/profile
##文末输入以下内容
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.14.1.1-1.el7_9.x86_64
JRE_HOME=$JAVA_HOME
CLASS_PATH=.:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

##使配置生效
source /etc/profile

##验证
cd $JAVA_HOME

安装Elasticsearch

cd /opt

#安装
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

#解压
tar -zxvf elasticsearch-6.2.4.tar.gz

#由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,需要创建一个单独的用户用来运行ElasticSearch
创建用户组和用户
groupadd elsearch
useradd elsearch -g elsearch -p 1234561qaz

#更改 elasticsearch-6.2.4 文件夹及内部文件的所属用户及组为elsearch
chown -R elsearch:elsearch elasticsearch-6.2.4

#切换用户并启动 elasticsearch
su elsearch
cd /opt/elasticsearch-6.2.4/bin/
# 前台启动,接 ctrl + c 停止elasticsearch服务
./elasticsearch  
# 后台启动
./elasticsearch -d   

#测试
curl 127.0.0.1:9200

简单使用

#使用composer装客户端
composer require 'elasticsearch/elasticsearch'

#代码使用
use Elasticsearch\ClientBuilder;
# 111.34.34.34 为elasticsearch服务地址
$client = ClientBuilder::create()->setHosts(['111.34.34.34'])->build();
PHP使用 Elasticsearch 主要通过官方提供的 PHP 客户端来实现,该客户端提供了连接、索引管理、文档操作等功能。以下是实现方法和操作指南的详细说明: ### 连接 Elasticsearch 服务器 首先需要引入 Elasticsearch PHP 客户端库,使用 `ClientBuilder` 类来创建客户端实例。可以通过 `setHosts` 方法指定 Elasticsearch 服务器的地址和端口。 ```php use Elasticsearch\ClientBuilder; $client = ClientBuilder::create() ->setHosts(['192.168.1.128:9200']) ->build(); ``` 上述代码中,`setHosts` 方法接受一个包含主机地址的数组,支持多个节点配置,适用于集群环境。`build()` 方法用于生成客户端实例,后续所有操作都基于该实例进行[^1]。 ### 创建索引 创建索引是使用 Elasticsearch 的第一步,可以通过客户端的 `indices()->create()` 方法实现。以下是一个简单的创建索引的示例: ```php $params = [ 'index' => 'test_index', 'body' => [ 'settings' => [ 'number_of_shards' => 2, 'number_of_replicas' => 0 ] ] ]; $response = $client->indices()->create($params); ``` 上述代码中,`test_index` 是索引名称,`settings` 部分定义了索引的分片数和副本数[^2]。 ### 添加文档 添加文档可以通过 `index()` 方法实现,需要指定索引名称、类型(在 7.x 及以后版本中可省略)、文档 ID 和文档内容。 ```php $params = [ 'index' => 'test_index', 'id' => '1', 'body' => [ 'title' => '示例标题', 'content' => '示例内容' ] ]; $response = $client->index($params); ``` 此代码将一条文档插入到 `test_index` 索引中,文档 ID 为 `1`。如果未指定 ID,Elasticsearch 会自动生成一个唯一 ID[^2]。 ### 获取文档 获取文档可以通过 `get()` 方法实现,需要指定索引名称和文档 ID。 ```php $params = [ 'index' => 'test_index', 'id' => '1' ]; $response = $client->get($params); print_r($response); ``` 上述代码将从 `test_index` 索引中获取 ID 为 `1` 的文档,并输出结果。 ### 删除文档 删除文档可以通过 `delete()` 方法实现,同样需要指定索引名称和文档 ID。 ```php $params = [ 'index' => 'test_index', 'id' => '1' ]; $response = $client->delete($params); ``` 此代码将删除 `test_index` 索引中 ID 为 `1` 的文档。 ### 搜索文档 搜索文档可以通过 `search()` 方法实现,支持复杂的查询条件构建。 ```php $params = [ 'index' => 'test_index', 'body' => [ 'query' => [ 'match' => [ 'title' => '示例标题' ] ] ] ]; $response = $client->search($params); print_r($response); ``` 上述代码将查询 `test_index` 索引中 `title` 字段包含 "示例标题" 的文档,并输出结果[^2]。 ### 删除索引 如果不再需要某个索引,可以通过 `delete()` 方法将其删除。 ```php $params = [ 'index' => 'test_index' ]; $response = $client->indices()->delete($params); ``` 此代码将删除 `test_index` 索引及其所有数据[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值