Symfony 3 框架+Elasticsearch

下载symfony

创建一个symfony 3 项目

cd /var/www
symfony new search-www

修改composer.json,增加

"require": {
...
    "elasticsearch/elasticsearch": "~5.3.0"
...
}

如果composer.json.lock存在,则删除。

安装elasticsearch 库

cd /var/www/search-www
composer install

Symfony项目中创建一个Controller

目录src/AppBundle/Controller/SearchController.php

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

use Elasticsearch\ClientBuilder;

class SearchController extends Controller
{
    /**
     * @Route("/search", name="homepage")
     */
    public function indexAction(Request $request)
    {
        $client = ClientBuilder::create()->build();

        $params = [
            'index' => 'scrapy.course',
            'type' => 'normal',
            'id' => '1'
        ];
        $response = $client->get($params);
        
        return new Response(json_encode($response));
    }
}

启动symfony服务

app/console server:run

默认端口为8000

查询结果

http://localhost:8000/search

{
    "_index":"scrapy.course",
    "_type":"normal",
    "_id":"1",
    "_version":1,
    "found":true,
    "_source":{
        "title":"Think in Java"
    }
}

注: 需要先搭建elasticsearch并插入数据,参见文档 《Elasticsearch + Kibana 起步》

参考文档 https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_quickstart.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏村雨

Python知识点总结篇(三)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

11130
来自专栏终身学习者

36 个JS 面试题为你助力金九银十(面试必读)

在现代js中,let&const是创建变量的不同方式。 在早期的js中,咱们使用var关键字来创建变量。 let&const关键字是在ES6版本中引入的,其目的...

12420
来自专栏FreeBuf

从谷歌防灾地图服务发现Google.org的XSS和Clickjacking漏洞

除了谷歌地图之外,可能很少有人知道谷歌的在线防灾地图(Google Crisis Map),它创建于2012年,Web架构更新缓慢,网站访问量相对较少。而作者就...

7120
来自专栏前端桃园

新手学习 react 迷惑的点(完整版)

网上各种言论说 React 上手比 Vue 难,可能难就难不能深刻理解 JSX,或者对 ES6 的一些特性理解得不够深刻,导致觉得有些点难以理解,然后说 Rea...

8120
来自专栏FreeBuf

绕过WAF限制利用php:方法实现OOB-XXE漏洞利用

几个星期以前,作者在某个OOB-XXE漏洞测试中遇到过这样一种场景:目标应用后端系统WAF防火墙阻挡了包含DNS解析在内的所有出站请求(Outgoing Req...

14620
来自专栏李才哥

前端面试题库系列(4)

defer 是“渲染完再执行”,async 是“下载完就执行”,defer 如果有多个脚本,会按照在页面中出现的顺序加载,多个async 脚本不能保证加载顺...

10010
来自专栏Rust语言学习交流

【Rust日报】2019-09-05:hyper 0.13 alpha 版本发布,支持 async/await

hyper 0.13 alpha 版本发布,它是一个使用 Rust 编写的成熟 HTTP 库,并且是速度最快的 HTTP 库之一,同时因其正确性得到了许多人的认...

11920
来自专栏Java大联盟

【面试专题】讲透必考点String,带配套视频

String 是我们实际开发中使用频率非常高的类,Java 可以通过 String 类来创建和操作字符串,使用频率越高的类,我们就越容易忽视它,因为见的多所以熟...

7830
来自专栏村雨

牛客网-Python专项训练知识点总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

9420
来自专栏村雨

Python知识点总结篇(四)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

5610

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励