首页 > 其他分享 >scout-elasticsearch-driver + laravel Demo学习

scout-elasticsearch-driver + laravel Demo学习

时间:2023-02-19 10:37:41浏览次数:50  
标签:laravel distance lon Demo driver request 查询 lat es


项目地址:​​https://github.com/yb19890724/laravel-es​

1。在本地穿件数据库,修改.env 的信息 我的env文件​​点击下载​​

2。env中配置es 的地址。

3.根目录下执行

composer update 
php artisan laraveles
npm install
npm run dev

查看es 中是否有producs之类的数据,查看方式:
​http://ip:9200/_cat/indices?v​​

配置域名
访问:yourhost/dashboard,结合后端,倒弄一番。

总结:

如果用

$result = Category::search( $request->text)->get();

get 方式查询,则查询的是数据库的数据。

如果用
->paginateRaw();
或者
->raw() 方法
也就是:
$result = Category::search( $request->text)->raw();
则查询的为es中的数据(显然,这个我们想要的)

从这个demo中:

Shop::searchRaw( [
/*'from' => 1,
'size' => 2,*/
"sort" => [
"_geo_distance" => [
"location" => [
"lat" => $lat,
"lon" => $lon
],
"order" => $request->sort,
"unit" => "km"
]
],
"post_filter" => [
"geo_distance" => [
"distance" => $request->distance,
"unit" => "km",
"location" => [
"lat" => $lat,
"lon" => $lon
]
]
]
] );

用 searchRaw()查询的也是es数据。

个人感觉,都是基于es 官方的json语法转化,如果要更深入,自己封装orm,可能会好的理解es 的工作机制。
从基本官方提供的php SDK 封装 ​​点击查看博客​​

从composer - Packagist
找到一个是ES封装的,和数据库查询的方式差不多。
有兴趣的同学可以学习一下。
​​​https://packagist.org/packages/basemkhirat/elasticsearch​


标签:laravel,distance,lon,Demo,driver,request,查询,lat,es
From: https://blog.51cto.com/u_14131118/6066477

相关文章