如何在ThinkPHP6中使用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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

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

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

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

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

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

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

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

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