如何在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脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

三星的GalaxyBuds系列耳機設計獨特,符合人體工學,因此配戴起來非常舒適。除了舒適的佩戴感,三星Buds系列耳機還提供了出色的音質體驗,因此吸引了許多用戶的喜愛。接下來,我們將向您介紹三星Buds耳機的使用教學課程,特別是三星GalaxyBudsPro藍牙耳機與手機的配對流程。三星GalaxyBudsPro藍牙耳機怎麼配對使用三星Buds耳機配對非常簡單,只需按照以下步驟即可完成配對。第一步,首先我們需要開啟手機的藍牙功能。可以在手機的設定介面中找到藍牙設定選項。第二步:將GalaxyBu

很多新手小夥伴還不了解愛思助手怎麼用,所以下面小編就帶來了愛思助手的使用教程,有需要的小伙伴趕緊來看一下吧。 1、操作介面,是否對必要的組件進行安裝(如下圖所示);2、我的設備窗口,對相關的說明資訊閱讀(如下圖所示);3、如果出現無法進行連結的情況,根據說明進行相關的操作(如下圖所示);4、應用遊戲窗口,快速的完成相關熱門遊戲的體驗(如下圖所示);5、對你需要使用的各種鈴聲進行下載選擇(如下圖所示);6、對各種高清的壁紙進行快速的下載(如下圖所示);7、對刷機越獄的功能進行支援(如下圖所示)。上面

小黑盒是能夠很好用的遊戲平台,那麼這個軟體具體該怎麼使用呢?使用者在使用這個軟體裡的時候會遇到很多問題,有著不同的解決方法。這篇小黑盒多功能使用方法教學總結就能告訴大家如何使用,以下就是詳細介紹,趕快看看吧!小黑盒使用教學【2024-01-31】小黑盒買的cdkey怎麼兌換【2024-01-31】小黑盒買的遊戲怎麼入庫steam【2024-01-31】小黑盒cdkey可以退款嗎

exescope是一款功能強大的程式資源編輯工具,能夠輕鬆將英文版的軟體轉換成漢化版,那麼新下載exescope要如何使用呢?如果你也是新手用戶,就快來看看下面的詳細教學。 exescope使用教學 1、開啟eXeScope,點選左上角的文件,在彈出的選項中點選【開啟】,選擇您要開啟的文件。 2、開啟軟體後,您可以看到很多控制。 3、可以直接用輸入資料的方式修改每個控制項的大小、位置、內容,也可以直接點選上面的對話方塊編輯器,直接拖曳程式介面上的控制項。調整好控制後點選【儲存】就可以了

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

現在許多小夥伴都會用到向日葵遠端控制軟體,但不少夥伴還不知道向日葵遠端控制軟體怎麼用,今天小編就來詳細介紹一下向日葵遠端控制軟體怎麼用的全部教程,希望能幫助大家。第一步:先開啟向日葵遠端控制軟體,確保軟體連接伺服器成功(如圖)。步驟二:然後輸入遠端向日葵識別碼(如圖所示)。第三步:可直接輸入遠端驗證碼進行無人值守遠端連接,或通無需驗證碼遠端點擊確定連接(如圖所示)。第四步:然後點選“遠端連線”,此時桌面控制會開始連線遠端桌面(如圖所示)。第五步:連線完成系統自動進入遠端電腦的桌面環境,

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

近期有很多小夥伴諮詢小編迅雷磁力連結怎麼用,接下來就讓我們一起學習一下迅雷磁力連結的使用教學吧,希望可以幫助到大家。第一步:首先我們開啟安裝好的迅雷,點選新建按鈕,如圖所示。第二步:然後在網路上找到一個磁力連結,我們複製貼上到如下圖所示位置,點擊確定,如圖所示。第三步:彈出資源的詳細下載目錄,我們勾選要下載的資源,選擇好儲存目錄,點選立即下載,如圖所示。第四步:最後我們等待資源下載即可,如圖所示。上面就是小編為大家帶來的迅雷磁力連結怎麼用的全部內容,希望對大家能夠有所幫助喔。
