在使用 Scout 進行搜尋時需要在相關模型中新增,如下兩個方法
/**
* 獲取模型的可搜尋資料
*
* @return array
*/
public function toSearchableArray()
{
$data = [
'id' => $this->id,
'title' => $this->title,
'author' => $this->author,
'content' => $this->content
];
return $data;
}
// 索引名
public function searchableAs()
{
return 'article_doc';
}
搜尋 laralve + Elasticsearch 關鍵詞的話 很多的案例都是用的 tamayo/laravel-scout-elastic 但是部署安裝完這個驅動之後發現了個問題。
composer require tamayo/laravel-scout-elastic
paginate() 分頁方法無法正常使用,提示驅動程式碼中 $result['nbPages'] = $result['hits']['total'] / $perPage;
這行程式碼有問題。
$list =ApiArticle::search('title:'.$request->get('s'))
->paginate()
->toArray();
dd($list);
那麼可以肯定的是tamayo/laravel-scout-elastic
這個驅動的bug了
在簡書上找到了介紹 tamayo/laravel-scout-elastic 出現的問題 www.jianshu.com/p/0bcba6d0e4da
,但是文章作者修改的解決方案對 laravel scout 的版本有要求導致我一直沒安裝成功。
後續,找了許久之後,在 packagist.org 網站 找到 babenkoivan/elastic-scout-driver
發現 composer require babenkoivan/elastic-scout-driver
Laravel Scout 的 Elasticsearch 驅動程式 使用起來還不錯。
babenkoivan/elastic-scout-driver 驅動介紹連結:
packagist.org/packages/babenkoivan...
本作品採用《CC 協議》,轉載必須註明作者和本文連結