接二 简单使用

直接看代码 里面包括了所有是使用以及高亮显示

<?php

namespace app\es\controller;

use app\common\lib\ES;

use NunoMaduro\Collision\Highlighter;
//use NunoMaduro\Collision\Contracts\Highlighter;
use think\Controller;
use think\Db;
use think\Exception;
use think\Request;
use Elasticsearch\ClientBuilder;

class Esone extends Controller
{


    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {

        //创建索引  索引名称不能重复 否则报错
        $es = new ES('es');
        //你要创建的索引名称
        $index_name = "es1";
        $es->create_index($index_name);
    }



    //添加数据
    public function create()
    {
        //
        $es = new ES('es');
        $params = [
            'index' => "es1",
            'id' => '1',
            'type' => "article",
            "body" => [
                "title" => "我是第一次添加的数据article1",
                'desn' => "我是第一次添加的数据desn1"]
        ];
        $es->add_doc($params);
    }

//    根据id修改es中的数据
    public function update()
    {
        //
        $es = new ES('es');
        $params = [
            'index' => "es1",
            'type' => "article",
            'id' => "1",
            "body" => [
                "doc" => [
                    "title" => "6100万颗心的共同记忆 再次C位亮相,闪耀全球!",
                    "desn" => "刚刚过去的这个清明节,与往年一样,有人凭寄哀思,有人缅怀忠魂。但也有一些瞬间,让人记起久久不能释怀,给这个特殊节气增添了一些格外不同的味道。"
                ]
            ]
        ];
        $es->update_doc($params);


    }

    //获取文档  搜索数据
    public function selects()
    {
        $es = new ES('es');
        $a = $es->get_doc('1', 'es1', 'article');
        dump($a);

    }

    //删除  根据id删除数据
    public function delete()
    {
        //
        $es = new ES('es');
        $a = $es->delete_doc('1', 'es1', 'article');
        //删除成功
        dump($a);

    }


    //表单实现数据添加


    public function add()
    {
        //渲染视图

        return view('inex');
    }

    public function addData(Request $request)
    {
        //接受数据
        $data = $request->param();
        //验证
        //添加数据
        //数据库
        try {
            //
            $data = \app\es\model\Es::create($data);
            //将数据添加到es中
            $es = new ES('es');
            $params = [
                //索引名
                'index' => "es",
                //相当于数据库
                'type' => "es",
                //id
                'id' => $data['id'],
                "body" => [
                    "title" => $data['title'],
                    "content" => $data['content'],
                    "desn" => $data['desn'],
                ]
            ];
            $es->add_doc($params);
        } catch (Exception $exception) {
            return join(['code' => 200, 'msg' => $exception->getMessage(), 'data' => ""]);
        }

        return join(['code' => 200, 'msg' => '添加成功', 'data' => $data]);
    }

    //查询数据 一条数据
    public function select(Request $request)
    {
        //要搜索的id值
        $id = '5';
        $es = new ES('es');
        //查询数据
        $a = $es->get_doc($id, 'es', 'es');
        print_r($a);
    }

    public function search_doc()
    {
        $where='图形';
        $es = new ES('es');
        $index_name = "es";
        $type_name = "es";
        $body = [
            'query' => [
                'bool' => [
                    'should' => [
                        [
                            'match' => [
//                                搜索的字段名
                                'title' => [
                                    //搜索的关键字
                                    'query' => $where,
                                    'boost' => 4, // 权重大
                                ]
                            ],

                        ],
                        [
                            'match' => [
                                'content' => [
                                    'query' => $where,
                                    'boost' => 3, // 权重大
                                ]
                            ],

                        ],

                    ],
                ]

            ]];
        $response= $es->search_doc($index_name, $type_name, $body);
        $data  = array_column($response,"hits");
        $data  = array_column($data[0],"_source");
        foreach ($data as $key => &$val){
            $val['title']=str_replace($where,"<span style='color: red'>$where</span>",$val['title']);
        }
        //可以将数据发送到视图
        print_r($data);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值