记一下Laravel中使用Scout+Elasticsearch 的问题
在使用 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 协议》,转载必须注明作者和本文链接
babenkoivan/scout-elasticsearch-driver 也不错
这个服务占内存
请问用 babenkoivan/elastic-scout-driver 总是提示 No alive nodes. All the 1 nodes seem to be down. 是啥问题 9200能访问到服务启动了