[ 'mappings' => [ 'properties' => [ "/>

文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

es 简单实现增加,查询,分词 热词

2023-09-08 13:34

关注

看代码:

 $params = [            'index' => "goods",            'body' => [                'mappings' => [                    'properties' => [                        //之后可以进行搜索的字段                        'name' => ['type' => 'text',"analyzer" => "ik_max_word","search_analyzer" => "ik_max_word"                        ]                    ]                ]            ]        ];        $this->client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();//    执行 只用执行一次即可//        $this->client->indices()->create($params);

 添加es中的表,index 表示表名 body 表示主体部分,然后执行,可以创建一个es 中的表格,相当于数据库中的数据表,现在还是空的表格,需要添加数据后在进行查询

添加:

 $goods = $goods->toArray();        $params = [            'index' => 'goods',            'type' => '_doc',            'body' => $goods        ];        //执行添加        return $this->client->index($params);

先查询出添加数据库的数据,转为数组格式添加进es中 方便在随后的搜索中实现搜索

搜索:

     //判断用户是否搜索,如果没有则跳过        if ($search != "") {            $client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();            $params = [                'index' => 'goods',                'type' => '_doc',                'body' => [                    'query' => [                        'match' => ['name' => $search                        ]                    ],                    'highlight' => [                        'fields' => ['name' => [    'pre_tags' => "",    'post_tags' => "",]                        ]                    ]                ]            ];//            dd($params);            // 执行搜索            $response = $client->search($params);//            dd($response);            //高亮            $data = $response['hits']['hits'];            $res = [];            //循环获取高亮字段            foreach ($data as $v) {                if (!empty($v['highlight']['name'][0])) {                    $v['_source']['name'] = $v['highlight']['name'][0];                }                array_push($res, $v['_source']);            }//            热词            Redis::zincrby('search', 1, $search);            return $res;        }        $res = Goods::get();//        dd($res);        return $res;

基本实现

来源地址:https://blog.csdn.net/NobleCharacter/article/details/126608094

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯