当前位置:首页 > PHP

php实现es

2026-02-14 13:22:21PHP

PHP 实现 Elasticsearch 的基本操作

Elasticsearch 是一个分布式搜索和分析引擎,PHP 可以通过官方提供的客户端库与 Elasticsearch 进行交互。以下是 PHP 实现 Elasticsearch 的基本操作步骤。

安装 Elasticsearch PHP 客户端

使用 Composer 安装 Elasticsearch 官方 PHP 客户端:

composer require elasticsearch/elasticsearch

连接 Elasticsearch 服务器

在 PHP 中创建 Elasticsearch 客户端实例:

require 'vendor/autoload.php';

$client = Elasticsearch\ClientBuilder::create()
    ->setHosts(['localhost:9200'])
    ->build();

创建索引

创建一个新的索引并定义映射:

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 2,
            'number_of_replicas' => 0
        ],
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text'
                ],
                'content' => [
                    'type' => 'text'
                ],
                'timestamp' => [
                    'type' => 'date'
                ]
            ]
        ]
    ]
];

$response = $client->indices()->create($params);

添加文档

向索引中添加文档数据:

php实现es

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'title' => 'Test Document',
        'content' => 'This is a test document for Elasticsearch.',
        'timestamp' => '2023-01-01'
    ]
];

$response = $client->index($params);

搜索文档

执行搜索查询并获取结果:

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'content' => 'test'
            ]
        ]
    ]
];

$response = $client->search($params);
print_r($response['hits']['hits']);

更新文档

更新索引中的文档:

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'doc' => [
            'content' => 'Updated content for the test document.'
        ]
    ]
];

$response = $client->update($params);

删除文档

从索引中删除文档:

php实现es

$params = [
    'index' => 'my_index',
    'id' => '1'
];

$response = $client->delete($params);

删除索引

删除整个索引:

$params = [
    'index' => 'my_index'
];

$response = $client->indices()->delete($params);

批量操作

执行批量操作以提高效率:

$params = [
    'body' => [
        ['index' => [
            '_index' => 'my_index',
            '_id' => '2'
        ]],
        ['title' => 'Second Document', 'content' => 'Another test document.'],
        ['index' => [
            '_index' => 'my_index',
            '_id' => '3'
        ]],
        ['title' => 'Third Document', 'content' => 'Yet another test document.']
    ]
];

$response = $client->bulk($params);

聚合查询

执行聚合查询以获取数据分析结果:

$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'content_terms' => [
                'terms' => [
                    'field' => 'content.keyword'
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
print_r($response['aggregations']);

以上是 PHP 实现 Elasticsearch 的基本操作,包括索引管理、文档操作、搜索查询和聚合分析等功能。

标签: phpes
分享给朋友:

相关文章

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必…

php实现静态

php实现静态

静态化实现方法 PHP实现静态化主要通过生成HTML文件或缓存机制来减少服务器动态解析的开销。以下是几种常见方法: 生成静态HTML文件 通过file_put_contents()将动态内容保存为H…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn…