首页 php框架 ThinkPHP 如何在ThinkPHP6中使用Elasticsearch

如何在ThinkPHP6中使用Elasticsearch

Jun 20, 2023 pm 12:09 PM
thinkphp elasticsearch 使用教程

在当前互联网时代,随着海量数据的爆炸式增长,搜索引擎变得越来越重要。而Elasticsearch作为一个高度可扩展的全文搜索引擎,已经逐渐成为开发者们解决搜索问题的首选。
本文将介绍如何在ThinkPHP6中使用Elasticsearch来实现数据检索和搜索功能,让我们开始吧。

第一步:安装elasticsearch-php
使用composer安装官方提供的elasticsearch-php库

composer require elasticsearch/elasticsearch
登录后复制

之后我们需要在configelasticsearch.php文件中书写Elasticsearch连接配置信息,如下:

return [
    'host' => ['your.host.com'],
    'port' => 9200,
    'scheme' => 'http',
    'user' => '',
    'pass' => ''
];
登录后复制

注意的是这里没有密码,在线上部署时需要添加密码并使用https方式连接,确保连接是安全的。

第二步:安装laravel-scout
laravel-scout是Laravel的一个Eloquent ORM全文搜索扩展包,我们需要在ThinkPHP6中安装它来实现Elasticsearch的集成,使用下面的命令安装:

composer require laravel/scout
登录后复制

第三步:安装laravel-scout-elastic包
在ThinkPHP6中,我们需要使用扩展包laravel-scout-elastic以实现与Elasticsearch的连接。同样地,使用下面的命令安装:

composer require babenkoivan/scout-elasticsearch-driver:^7.0
登录后复制

在app.php中配置scout和elastic driver

return [
    'providers' => [
        //...
        LaravelScoutScoutServiceProvider::class,
        ScoutElasticsearchElasticsearchServiceProvider::class,
        //...
    ],
    'aliases' => [
        //...
        'Elasticsearch' => ScoutElasticsearchFacadesElasticsearch::class,
        //...
    ],
];
登录后复制

接着,在configscout.php中配置模型的搜索引擎,如下:

'searchable' => [
        AppModelsModel::class => [
            'index' => 'model_index',
            'type' => 'model_type'
        ],
    ],
登录后复制

以上配置表明我们使用Model::class 模型对象检索数据,定义Model::class对象对应的索引名称为model_index ,类型为model_type。

第四步:定义搜索逻辑
我们在Model类中使用Searchable trait并声明一个public function toSearchableArray()函数,如下:

<?php

namespace AppModels;

use LaravelScoutSearchable;

class Model extends Model
{
    // 使用scout可搜索的trait
    use Searchable;
    
    // 返回可被搜索的模型数据
    public function toSearchableArray()
    {
        return [
            'title' => $this->title,
            'content' => $this->content
        ];
    }
登录后复制

toSearchableArray()函数用于返回可被搜索的数据字段,这里我们例举了标题和内容两个字段。

第五步:搜索相关API
最后我们编写搜索相关的 API,比如搜索结果列表,搜索统计数据等等。这需要我们对 Elasticsearch官方API有一定的了解,具体可以参考Elasticsearch官方文档。

比如,搜索结果列表 API 的代码可能如下所示:

use ElasticsearchClientBuilder;

class SearchController extends Controller
{
    //搜索结果列表
    public function list(Request $request)
    {
        $searchQuery = $request->input('q'); //搜索关键字

        //搜索操作
        $elasticsearch = ClientBuilder::create()->setHosts(config('elasticsearch.host'))->build();
        $response = $elasticsearch->search([
            'index' => 'model_index', // 索引名称
            'type' => 'model_type',   // 类型
            'size' => 1000,
            'body' => [
                'query' => [
                    'bool' => [
                        'should' => [
                            ['match' => ['title' => $request->input('q')]],
                            ['match' => ['content' => $request->input('q')]]
                        ]
                    ]
                ]
            ]
        ]);

        //格式化返回结果
        $result = [];
        foreach ($response['hits']['hits'] as $hit) {
            //搜索评分
            $hit['_score'];
            //搜索到的数据
            $result[] = $hit['_source'];
        }

        return json_encode($result);
    }
}
登录后复制

以上代码使用了Elasticsearch 官方提供的ElasticsearchClientBuilder类来创建连接,对关键字进行查询,并取回结果列表。你可以将此API中的 $request->input('q') 替换为任何你想要的关键字。

文章到此结束,相信你已经可以基本上使用Elasticsearch实现搜索功能了。若您在实践中遇到问题,请参考官方文档或提issue以获得更多帮助。

以上是如何在ThinkPHP6中使用Elasticsearch的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

三星Galaxy Buds Pro蓝牙耳机配对指南及使用教程 三星Galaxy Buds Pro蓝牙耳机配对指南及使用教程 Dec 30, 2023 pm 03:44 PM

三星的GalaxyBuds系列耳机设计独特,符合人体工学,因此佩戴起来非常舒适。除了舒适的佩戴感,三星Buds系列耳机还提供了出色的音质体验,因此吸引了众多用户的喜爱。接下来,我们将向您介绍三星Buds耳机的使用教程,特别是三星GalaxyBudsPro蓝牙耳机与手机的配对过程。三星GalaxyBudsPro蓝牙耳机怎么配对使用三星Buds耳机进行配对非常简单,只需按照以下步骤即可完成配对。第一步,首先我们需要打开手机的蓝牙功能。可以在手机的设置界面中找到蓝牙设置选项。第二步:将GalaxyBu

exescope怎么用?详细使用教程 exescope怎么用?详细使用教程 Mar 13, 2024 pm 10:40 PM

  exescope是一款功能强大的程序资源编辑工具,能够轻松将英文版的软件转化成汉化版,那么新下载exescope要如何使用呢?如果你也是个新手用户,就快来看看下面的详细教程吧。  exescope使用教程  1、打开eXeScope,点击左上角的文件,在弹出的选项中点击【打开】,选择您要打开的文件。  2、打开软件后,您可以看到很多控件。  3、可以直接用输入数据的方式修改每个控件的大小、位置、内容,也可以直接点击上面的对话框编辑器,直接拖动程序界面上的控件。调整好控件后点击【保存】就可以了

爱思助手怎么用-爱思助手使用教程 爱思助手怎么用-爱思助手使用教程 Mar 06, 2024 pm 12:10 PM

很多新手小伙伴还不了解爱思助手怎么用,所以下面小编就带来了爱思助手的使用教程,有需要的小伙伴赶紧来看一下吧。1、操作界面,是否对必要的组件进行安装(如下图所示);2、我的设备窗口,对相关的说明信息阅读(如下图所示);3、如果出现无法进行链接的情况,根据说明进行相关的操作(如下图所示);4、应用游戏窗口,快速的完成相关热门游戏的体验(如下图所示);5、对你需要使用的各种铃声进行下载选择(如下图所示);6、对各种高清的壁纸进行快速的下载(如下图所示);7、对刷机越狱的功能进行支持(如下图所示)。上面

小黑盒使用教程 小黑盒使用教程 Feb 23, 2024 pm 05:10 PM

小黑盒是能够很好用的游戏平台,那么这个软件具体该怎么使用呢?用户们在使用这个软件里的时候会遇到很多问题,有着不同的解决方法。这篇小黑盒多功能使用方法教程汇总就能告诉大家如何使用,下面就是详细介绍,赶紧看看吧!小黑盒使用教程【2024-01-31】小黑盒买的cdkey怎么兑换【2024-01-31】小黑盒买的游戏怎么入库steam【2024-01-31】小黑盒cdkey可以退款吗

企业微信怎么用-企业微信的使用教程 企业微信怎么用-企业微信的使用教程 Mar 04, 2024 pm 02:28 PM

很多小伙伴不知道企业微信怎么用,所以下面小编就分享了企业微信的使用教程,一起去看看吧,相信对大家会有帮助。第一步:点击“企业微信”图标进入企业微信,在消息板块我们可以加入群聊与同事聊天(如图所示)。第二步:在企业微信主界面,点击“通讯录”(如图所示)。第三步:进入通讯录板块,在通讯录板块我们可查看自己的联系人(如图所示)。第四步:在企业微信主界面,点击“工作台”(如图所示)。第五步:进入工作台板块,在工作台板块我们可进行公司日常的小工作(如图所示)。第六步:在企业微信主界面,点击“我”(如图所示

thinkphp项目怎么运行 thinkphp项目怎么运行 Apr 09, 2024 pm 05:33 PM

运行 ThinkPHP 项目需要:安装 Composer;使用 Composer 创建项目;进入项目目录,执行 php bin/console serve;访问 http://localhost:8000 查看欢迎页面。

迅雷磁力链接怎么用-迅雷磁力链接使用教程 迅雷磁力链接怎么用-迅雷磁力链接使用教程 Mar 05, 2024 pm 05:22 PM

近期有很多小伙伴咨询小编迅雷磁力链接怎么用,接下来就让我们一起学习一下迅雷磁力链接的使用教程吧,希望可以帮助到大家。第一步:首先我们打开安装好的迅雷,点击新建按钮,如图所示。第二步:然后在网上找到一个磁力链接,我们复制粘贴到如下图所示位置,点击确定,如图所示。第三步:弹出资源的详细下载目录,我们勾选要下载的资源,选择好存储目录,点击立即下载,如图所示。第四步:最后我们等待资源下载即可,如图所示。上面就是小编为大家带来的迅雷磁力链接怎么用的全部内容,希望对大家能够有所帮助哦。

ons模拟器怎么用-ons模拟器使用教程 ons模拟器怎么用-ons模拟器使用教程 Mar 04, 2024 pm 01:10 PM

近期有很多小伙伴咨询小编ons模拟器怎么用,接下来就让我们一起学习一下ons模拟器的使用教程吧,希望可以帮助到大家。第一步:首先下载onscripter工具如下图。第二步:然后下载ons模拟器游戏。第三步:接着把刚刚下载好的模拟器onscripter.exe文件直接拖入游戏目录双击onscripter.exe即可打开。第四步:直接运行游戏即可。上面就是小编为大家带来的ons模拟器怎么用的全部内容,希望对大家能够有所帮助哦。

See all articles