首頁 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脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++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

愛思助手怎麼用-愛思助手使用教程 愛思助手怎麼用-愛思助手使用教程 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可以退款嗎

exescope怎麼用?詳細使用教學課程 exescope怎麼用?詳細使用教學課程 Mar 13, 2024 pm 10:40 PM

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

thinkphp專案怎麼運行 thinkphp專案怎麼運行 Apr 09, 2024 pm 05:33 PM

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

向日葵遠端控制軟體怎麼用-向日葵遠端控制軟體使用教學課程 向日葵遠端控制軟體怎麼用-向日葵遠端控制軟體使用教學課程 Mar 04, 2024 pm 10:20 PM

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

thinkphp有幾個版本 thinkphp有幾個版本 Apr 09, 2024 pm 06:09 PM

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

迅雷磁力連結怎麼用-迅雷磁力連結使用教程 迅雷磁力連結怎麼用-迅雷磁力連結使用教程 Mar 05, 2024 pm 05:22 PM

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

See all articles