亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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

如何在ThinkPHP6中使用Elasticsearch

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

在當(dāng)前網(wǎng)路時代,隨著大量資料的爆炸性成長,搜尋引擎變得越來越重要。而Elasticsearch作為一個高度可擴(kuò)展的全文搜尋引擎,已經(jīng)逐漸成為開發(fā)者解決搜尋問題的首選。
本文將介紹如何在ThinkPHP6中使用Elasticsearch來實(shí)現(xiàn)資料檢索和搜尋功能,讓我們開始吧。

第一步:安裝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全文搜尋擴(kuò)充包,我們需要在ThinkPHP6中安裝它來實(shí)現(xiàn)Elasticsearch的集成,使用下面的命令安裝:

composer require laravel/scout

第三步:安裝laravel-scout-elastic套件
在ThinkPHP6中,我們需要使用擴(kuò)充包laravel-scout-elastic以實(shí)現(xiàn)與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 模型物件檢索數(shù)據(jù),定義Model::class物件對應(yīng)的索引名稱為model_index ,類型為model_type。

第四步:定義搜尋邏輯
我們在Model類別中使用Searchable trait並宣告一個public function toSearchableArray()函數(shù),如下:

<?php

namespace AppModels;

use LaravelScoutSearchable;

class Model extends Model
{
    // 使用scout可搜索的trait
    use Searchable;
    
    // 返回可被搜索的模型數(shù)據(jù)
    public function toSearchableArray()
    {
        return [
            'title' => $this->title,
            'content' => $this->content
        ];
    }

toSearchableArray()函數(shù)用於傳回可被搜尋的資料字段,這裡我們例舉了標(biāo)題和內(nèi)容兩個字段。

第五步:搜尋相關(guān)API
最後我們寫搜尋相關(guān)的 API,例如搜尋結(jié)果列表,搜尋統(tǒng)計資料等等。這需要我們對 Elasticsearch官方API有一定的了解,具體可以參考Elasticsearch官方文件。

例如,搜尋結(jié)果清單API 的程式碼可能如下所示:

use ElasticsearchClientBuilder;

class SearchController extends Controller
{
    //搜索結(jié)果列表
    public function list(Request $request)
    {
        $searchQuery = $request->input('q'); //搜索關(guān)鍵字

        //搜索操作
        $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')]]
                        ]
                    ]
                ]
            ]
        ]);

        //格式化返回結(jié)果
        $result = [];
        foreach ($response['hits']['hits'] as $hit) {
            //搜索評分
            $hit['_score'];
            //搜索到的數(shù)據(jù)
            $result[] = $hit['_source'];
        }

        return json_encode($result);
    }
}

以上程式碼使用了Elasticsearch 官方提供的ElasticsearchClientBuilder類別來建立連接,對關(guān)鍵字進(jìn)行查詢,並取回結(jié)果列表。你可以將此API中的 $request->input('q') 替換為任何你想要的關(guān)鍵字。

文章到此結(jié)束,相信你已經(jīng)可以基本上使用Elasticsearch實(shí)現(xiàn)搜尋功能了。若您在實(shí)務(wù)上遇到問題,請參考官方文件或提issue以獲得更多協(xié)助。

以上是如何在ThinkPHP6中使用Elasticsearch的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
三星Galaxy Buds Pro藍(lán)牙耳機(jī)配對指南及使用教學(xué)課程 三星Galaxy Buds Pro藍(lán)牙耳機(jī)配對指南及使用教學(xué)課程 Dec 30, 2023 pm 03:44 PM

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

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

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

exescope怎麼用?詳細(xì)使用教學(xué)課程 exescope怎麼用?詳細(xì)使用教學(xué)課程 Mar 13, 2024 pm 10:40 PM

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

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

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

thinkphp專案怎麼運(yùn)行 thinkphp專案怎麼運(yùn)行 Apr 09, 2024 pm 05:33 PM

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

向日葵遠(yuǎn)端控制軟體怎麼用-向日葵遠(yuǎn)端控制軟體使用教學(xué)課程 向日葵遠(yuǎn)端控制軟體怎麼用-向日葵遠(yuǎn)端控制軟體使用教學(xué)課程 Mar 04, 2024 pm 10:20 PM

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

小黑盒使用教學(xué)課程 小黑盒使用教學(xué)課程 Feb 23, 2024 pm 05:10 PM

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

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

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

See all articles