国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Laravel 全文檢索 Scout集成Algolia

Jinkey / 3082人閱讀

摘要:寫在前面你是否在檢索千百萬級數據時為性能和速度而擔憂呢,即使優化了,創建了數據庫索引,還是不盡如人意呢下面就主要介紹如何集成是法國初創公司為你提供毫秒級的數據庫實時搜索服務,天下武功無堅不摧,唯快不破。本文基于,其他版本大同小異。

寫在前面

你是否在檢索千百萬級數據時為性能和速度而擔憂呢,即使優化了sql,創建了數據庫索引,還是不盡如人意呢?
下面就主要介紹laravel如何集成Algolia

Algolia是法國初創公司為你提供毫秒級的數據庫實時搜索服務,天下武功無堅不摧,唯快不破。記住哦,是毫秒級。

本文基于laravel5.5,其他版本大同小異。

準備工作
安裝laravel/scout 和 algolia/algoliasearch-client-php
composer require laravel/scout
composer require algolia/algoliasearch-client-php
注冊algolia的賬號

前往https://www.algolia.com/ 注冊賬號,初學者可以使用免費版,然后在賬戶的API Keys菜單獲取Application ID和Admin API Key,后面會用到

基本配置

在config/app.php文件中的providers數組中加入服務提供者

// Scout全文搜索
LaravelScoutScoutServiceProvider::class,

使用以下命令生成scout配置文件

php artisan vendor:publish --provider="LaravelScoutScoutServiceProvider"

該命令會自動生成config/scout.php文件,然后我們打開.env文件,加入scout的配置

# scout配置
SCOUT_DRIVER=algolia
SCOUT_PREFIX=
# algolia的Application ID
ALGOLIA_APP_ID=xxxxxxxxxx
# algolia的Admin API Key
ALGOLIA_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxx
創建索引
創建模型并填充數據

創建模型app/Student.php,為方便后續測試,請先建表和填充數據,可以手動使用sql語句添加數據,也使用laravel自動的數據遷移和填充,可以參考 https://www.tech1024.cn/origi...

toArray();

        // Customize array...

        return $array;
    }
}
把所有現有記錄導入到搜索索引里
php artisan scout:import "AppStudent"

可能會報如下錯誤

  [AlgoliaSearchAlgoliaConnectionException]                                          
  Hosts unreachable: Resolving timed out after 1000 milliseconds,Resolving timed out  
   after 1000 milliseconds,Resolving timed out after 3000 milliseconds,Resolving tim  
  ed out after 3000 milliseconds  

這是由于默認algoliasearch-client配置的連接超時時間為1秒,由于網絡速度的原因,我們可以把連接時間修改一下
創建app/Services/Scout/EngineManager.php文件如下

setConnectTimeout(30, 30, 30);
        return new AlgoliaEngine($algolia);
    }
}

打開app/Providers/AppServiceProvider.php,在boot()中加入以下代碼

    public function boot()
    {
        // …… 省略之前代碼
        $this->app->singleton(LaravelScoutEngineManager::class, function ($app) {
            return new AppServicesScoutEngineManager($app);
        });
    }

是不是導入成功了呢?

php artisan scout:import "AppStudent"

Imported [AppStudent] models up to ID: 500
Imported [AppStudent] models up to ID: 1000
Imported [AppStudent] models up to ID: 1500
Imported [AppStudent] models up to ID: 2000
Imported [AppStudent] models up to ID: 2500
Imported [AppStudent] models up to ID: 3000
Imported [AppStudent] models up to ID: 3500
Imported [AppStudent] models up to ID: 4000
Imported [AppStudent] models up to ID: 4500
Imported [AppStudent] models up to ID: 5000
Imported [AppStudent] models up to ID: 5500
Imported [AppStudent] models up to ID: 6000
Imported [AppStudent] models up to ID: 6500
Imported [AppStudent] models up to ID: 7000
Imported [AppStudent] models up to ID: 7500
Imported [AppStudent] models up to ID: 8000
Imported [AppStudent] models up to ID: 8500
Imported [AppStudent] models up to ID: 9000
Imported [AppStudent] models up to ID: 9500
Imported [AppStudent] models up to ID: 10000
All [AppStudent] records have been imported.

在https://www.algolia.com賬戶后... 的菜單中已經有了剛剛導入的students_index索引數據

大功告成
$studens = AppStudent::search("成燕")->get();
dd($studens);

可以填充個百萬條數據試試,檢索速度,是不是比直接查詢數據庫要快很多呢?

更多用法請查閱官方文檔 https://www.algolia.com/doc/a...

不過筆者并不推薦使用algolia檢索引擎,畢竟國內的網速太慢,后續筆者會退出laravel和elasticsearch、sphinx相關的資料,請繼續關注。

原文 https://www.tech1024.cn/origi...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26022.html

相關文章

  • Laravel 5.3 預熱:10 個你需要知道的變更

    摘要:本文經授權轉自社區說明發布臨近,大體構建已經完成,文檔整理完成后即可發布。附帶了一個響應式郵件模板,通知類中唯一需要做的就是像下面這樣發送消息錯誤處理是一個可選的擴展包,提供了完整可用的服務。 本文經授權轉自 PHPHub 社區 說明 Laravel 5.3 發布臨近,大體構建已經完成,文檔整理完成后即可發布。 下面是對 Laravel 5.3 新特性的整理,不完整列表。 1、全文搜...

    沈建明 評論0 收藏0
  • Laravel中利用Scout集成Elasticsearch搜索引擎

    摘要:寫在前面以下簡稱是一個實時的分布式搜索和分析引擎。在搜索引擎方面,不僅僅有,像另一篇提到的,還有等等,這里不做評價和比較,本篇主要介紹中如何使用。首選必須安裝有,請參考。本文基于,其他版本大同小異。 寫在前面 Elasticsearch(以下簡稱es)是一個實時的分布式搜索和分析引擎。 在搜索引擎方面,不僅僅有Elasticsearch,像另一篇提到的Algolia,還有sphinx、...

    buildupchao 評論0 收藏0
  • Laravel 基于 Scout 配置實現 Elasticsearch (一)- 準備工作

    摘要:導語全文搜索是很重要的功能,實現的方式也有很多種。以下通過和實現。是用開發的,并在許可證下作為開源軟件發布。官方客戶端在和許多其他語言中都是可用的。根據的排名顯示,是最受歡迎的企業搜索引擎,其次是,也是基于。 導語 全文搜索是很重要的功能,實現的方式也有很多種。以下通過 Laravel Scout 和 Elasticsearch 實現。先來看下各自的介紹 Laravel Scout 為...

    jsyzchen 評論0 收藏0

發表評論

0條評論

Jinkey

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<