我想询问您关于laravel高级搜索的建议,目前我正在电子商务网站上工作,我需要创建搜索表单,用户可以选择表格中的任何字段,包括price range
或category
或brands
等等,并取回结果。
现在我的问题是你建议我使用Laravel Scout或制作自定义函数(如下面的代码)并扩展它?
$query = DB::table('rooms')
->join("salereservation", "salereservation.room_id", "=", "rooms.room_id")
->join("customers", "customers.id", "=", "salereservation.customer_id")
->where("salereservation.sale_status",'=',1)
->select('rooms.*', 'salereservation.*', 'customers.*');
if($fname!=''){
$query->where("fname",'like',"%$fname%");
}
if($lname!=''){
$query->where("lname",'like',"%$lname%");
}
if($time_in!=''){
$query->where("start_datetime",'like',"%$time_in%");
}
if($time_out!=''){
$query->where("end_datetime",'like',"%$time_out%");
}
if($phone!=''){
$query->where("phone",'like',"%$phone%");
}
if($room_no!=''){
$query->where("room_no",'like',"%$room_no%");
}
$data = $query->get(); //finally get the result
显然,上面的代码不是我需要的选项- Source
请帮我做出正确的决定。
PS:这个应用程序的数据库将是庞大的,所以我需要一些东西来处理大数据库。
谢谢。
答案 0 :(得分:2)
我会为您描述一些选项: 1-laravel中简单的雄辩(或原始)查询,它不是很好,但它有它的缺点,如代码很乱,性能不好,UX也是如此。 2-有algolia,它用户友好,易于安装,但它相当昂贵(相信我知道)。 3-最后使用ELASTICSEARCH,它是像algolia这样的搜索引擎,但是有了骗子定价和更多选项,你可以根据自己的需要进行配置。
答案 1 :(得分:0)
是的,如果您的功能很重,您可以使用laravel scout 。或者,如果您使用正常功能,则可以使用服装功能。现在您可以选择哪些?