haridarshan/opensearch-client 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

haridarshan/opensearch-client

最新稳定版本:v1.0.1

Composer 安装命令:

composer require haridarshan/opensearch-client

包简介

The official PHP OpenSearch client integrated with Laravel

README 文档

README

The official PHP OpenSearch client integrated with Laravel.

Contents

Compatibility

The current version of OpenSearch Client has been tested with the following configuration:

  • PHP 7.4-8.x
  • OpenSearch 2.x
  • Laravel 6.x-10.x

Installation

The library can be installed via Composer:

composer require haridarshan/opensearch-client

Configuration

To change the client settings you need to publish the configuration file first:

php artisan vendor:publish --provider="OpenSearch\Laravel\Client\ServiceProvider"

In the newly created config/opensearch.client.php file you can define the default connection name and describe multiple connections using configuration hashes. You can read more about building the client from a configuration hash here.

return [
    'default' => env('OPENSEARCH_CONNECTION', 'default'),
    'connections' => [
        'default' => [
            'hosts' => [
                env('OPENSEARCH_HOST', 'localhost:9200'),
            ],
            // configure basic authentication
            'basicAuthentication' => [
                env('OPENSEARCH_USERNAME'),
                env('OPENSEARCH_PASSWORD'),
            ],
            'retries' => (int) env('OPENSEARCH_RETRIES', 2),
            // disable SSL Verification
            'sslVerification' => env('OPENSEARCH_SSL_VERIFICATION', false),
            // configure HTTP client (Guzzle by default)
            'httpClientOptions' => [
                'timeout' => 2,
            ],
        ],
    ],
];

If you need more control over the client creation, you can create your own client builder:

// see OpenSearch\Laravel\Client\ClientBuilder for the reference
class MyClientBuilder implements OpenSearch\Laravel\Client\ClientBuilderInterface
{
    public function default(): Client
    {
        // should return a client instance for the default connection 
    }
    
    public function connection(string $name): Client
    {
        // should return a client instance for the connection with the given name 
    }
}

Do not forget to register the builder in your application service provider:

class MyAppServiceProvider extends Illuminate\Support\ServiceProvider
{
    public function register()
    {
        $this->app->singleton(ClientBuilderInterface::class, MyClientBuilder::class);
    }
}

Usage

Use OpenSearch\Laravel\Client\ClientBuilderInterface to get access to the client instance:

namespace App\Console\Commands;

use OpenSearch\Client;
use OpenSearch\Laravel\Client\ClientBuilderInterface;
use Illuminate\Console\Command;

class CreateIndex extends Command
{
    protected $signature = 'create:index {name}';

    protected $description = 'Creates an index';

    public function handle(ClientBuilderInterface $clientBuilder)
    {
        // get a client for the default connection
        $client = $clientBuilder->default();
        // get a client for the connection with name "write"
        $client = $clientBuilder->connection('write');
    
        $client->indices()->create([
            'index' => $this->argument('name')
        ]);
    }
}

统计信息

  • 总下载量: 2.46k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 11
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-03-09