php引用elasticsearch类库,获得结果

本文详细介绍如何在PHP项目中集成Elasticsearch搜索服务,包括删除composer.lock文件、指定Elasticsearch版本、配置账号信息、实例化客户端及实现简单查询功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、composer.lock删掉

2、composer.json中引入指定的elasticsearch版本

"require": {
        "php": ">=5.3.0",
        "elasticsearch/elasticsearch": "~6.0"
    },

3、composer   install    安装 类库

4、配置文件填写您的elasticsearch账号信息

'aliesConfig'   =>  [[
        'host' => 'xxxxxxxxxxxxxxxxxxxxxxxxx',
        'port' => '9200',
        'scheme' => 'http',
        'user' => 'xxxx',
        'pass' => 'xxxxxxxxx'
    ]],

5、实例化elasticsearch

 public function alies_api($params){
        $hosts = C('aliesConfig');//读取配置,我用的是TP3.2框架的内置方法
        $client = ClientBuilder::create()->setHosts($hosts)->build();
        $response = $client->search($params);
        return $response;
    }

6、简单的elasticsearch查询函数,

/**
     * es模块查询
     * $doc:index(文档索引)
     * $k:字段
     * $v:值
     */
    public function getAliesInfo($doc,$type,$k,$v){
        $params = [
            'index' => $doc,
            'body'=> ['query'=>['bool'=>[
                'must' =>[
                    [
                        'term'=>['type'=>$type],
                    ],
                    [
                        'multi_match'=>[
                            'query'=>$v,
                            'type'=>'best_fields',
                            'fields'=>[$k]
                        ]
                    ]
                ]
            ]
            ]
            ]
        ];
        $response = $this->alies_api($params);
        return $response['hits']['hits'][0];
    }

 

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。ElasticSearchPHP客户端库<?php namespace Elastica; class Index implements SearchableInterface {     protected $_name;     protected $_client;     public function __construct(Client $client, $name)     {         $this->_client = $client;         if (!is_scalar($name)) {             throw new InvalidException(&#39;Index name should be a scalar type&#39;);         }         $this->_name = (string) $name;     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值