各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

PHP中使用Elasticsearch的方法

管理员 2023-09-05
PHP
151

PHP中使用Elasticsearch的方法

内容导读

收集整理的这篇技术教程文章主要介绍了PHP中使用Elasticsearch的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3752字,纯文字阅读大概需要6分钟

内容图文

这篇文章主要介绍了关于PHP中使用Elasticsearch的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

PHP中使用Elasticsearch

composer require elasticsearch/elasticsearch

会自动加载合适的版本!我的php是5.6的,它会自动加载5.3的elasticsearch版本!

Using version ^5.3 for elasticsearch/elasticsearch./composer.json has been updatedLoading composer repositories with package informationUpdating dependencies (including require-dev)Package operations: 4 installs, 0 updates, 0 removals  - Installing react/promise (v2.7.0): Downloading (100%)           - Installing guzzlehttp/streams (3.0.0): Downloading (100%)           - Installing guzzlehttp/ringphp (1.1.0): Downloading (100%)           - Installing elasticsearch/elasticsearch (v5.3.2): Downloading (100%)         Writing lock fileGenerating autoload files

简单使用

<?phpclass MyElasticSearch{    private $es;    // 构造函数    public function __construct()    {        include('../vendor/autoload.php');        $params = array(            '127.0.0.1:9200'        );        $this->es = ElasticsearchClientBuilder::create()->setHosts($params)->build();    }    public function search() {        $params = [            'index' => 'megacorp',            'type' => 'employee',            'body' => [                'query' => [                    'constant_score' => [ //非评分模式执行                        'filter' => [ //过滤器,不会计算相关度,速度快                            'term' => [ //精确查找,不支持多个条件                                'about' => '谭'                            ]                        ]                    ]                ]            ]        ];        $res = $this->es->search($params);        print_r($res);    }}
<?phprequire "./MyElasticSearch.php";$es = new MyElasticSearch();$es->search();

执行结果

Array(    [took] => 2    [timed_out] =>     [_shards] => Array        (            [total] => 5            [successful] => 5            [skipped] => 0            [failed] => 0        )    [hits] => Array        (            [total] => 1            [max_score] => 1            [hits] => Array                (                    [0] => Array                        (                            [_index] => megacorp                            [_type] => employee                            [_id] => 3                            [_score] => 1                            [_source] => Array                                (                                    [first_name] => 李                                    [last_name] => 四                                    [age] => 24                                    [about] => 一个PHP程序员,热爱编程,谭康很帅,充满激情。                                    [interests] => Array                                        (                                            [0] => 英雄联盟                                        )                                )                        )                )        ))

下面是官方的一些样例:

初始化

require '../vendor/autoload.php';use ElasticsearchClientBuilder;$client = ClientBuilder::create()->build();

增加配置

$hosts = [    '127.0.01:9200',         // IP + Port];$client = ClientBuilder::create()           // Instantiate a new ClientBuilder->setHosts($hosts)      // Set the hosts->build();              // Build the client object

$hosts = [    '127.0.01:9200',         // IP + Port];$clientBuilder = ClientBuilder::create();   // Instantiate a new ClientBuilder$clientBuilder->setHosts($hosts);           // Set the hosts$client = $clientBuilder->build();          // Build the client object

插入一个文档

// Index 一个文档$params = [    'index' => 'my_index',    'type' => 'my_type',    'id' => 'my_id',    'body' => ['testField' => 'abc']];$response = $client->index($params);print_r($response);

获取一个文档

$params = [    'index' => 'my_index',    'type' => 'my_type',    'id' => 'my_id'];$response = $client->get($params);print_r($response);

查询一个文档

$params = [    'index' => 'my_index',    'type' => 'my_type',    'body' => [        'query' => [            'match' => [                'testField' => 'abc'            ]        ]    ]];$response = $client->search($params);print_r($response);

删除一个文档

$params = [    'index' => 'my_index',    'type' => 'my_type',    'id' => 'my_id'];$response = $client->delete($params);print_r($response);

结果如下

Array(    [_index] => my_index    [_type] => my_type    [_id] => my_id    [_version] => 3    [result] => deleted    [_shards] => Array        (            [total] => 2            [successful] => 1            [failed] => 0        )    [_seq_no] => 2    [_primary_term] => 1)

删除一个索引

$deleteParams = [    'index' => 'my_index'];$response = $client->indices()->delete($deleteParams);print_r($response);

创建一个索引

$params = [    'index' => 'my_index',    'body' => [        'settings' => [            'number_of_shards' => 2,            'number_of_replicas' => 0        ]    ]];$response = $client->indices()->create($params);print_r($response);

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

PHP数据结构基础之栈

PHP操作Beanstalkd的方法及参数注释

以上就是PHP中使用Elasticsearch的方法的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的PHP中使用Elasticsearch的方法全部内容,希望文章能够帮你解决PHP中使用Elasticsearch的方法所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部