gpt4 book ai didi

php - Laravel大定制搜索

转载 作者:行者123 更新时间:2023-11-30 22:05:08 24 4
gpt4 key购买 nike

我在进行大型搜索时遇到了麻烦。

这是我的桌子


  汽车
  id |说明|重量最大空重| user_id | category_id | type_id
  
  分类
  id |名称|说明|颜色
  
  类型
  id |名称
  
  车辆使用
  id |始于|日期至vehicle_id | location_id | usage_type_id
  
  地点
  id |地址| lat | ng


搜索表单包含category,多个typesdate fromdate tozip coderadius和与自定义类别相关的车辆详细信息。

现在,我要按上述条件过滤车辆(目前约1万行)。
首先,我检查请求数组是否包含类别,并且该值是否为整数。如果是这样,我会使用$vehicles = Vehicle::where('category_id', $request['category']);按类别过滤所有车辆。
然后,对类型进行相同的操作,并将每个类型推入数组以使用$vehicles->whereIn('type_id', $types)
在此之后,我将获得所有类似$vehicles = $vehicles->get()的车辆。
如果完成,我将通过邮政编码获得当前的latlng,并根据当前位置计算每辆车的半径。如果半径大于输入的radius,我会拒绝车辆。
至少每个具有vehicle_usage与输入date fromdate to重叠的车辆均被拒绝。

由于大约有10k vehicles,每个车辆每月大约有5 vehicle_usages,因此此搜索将花费很长时间,并且达到了最长执行时间(60秒)。
如何加快搜索速度?

最佳答案

我建议您将laravel scoutAlgoliaElasticSearch一起使用。然后,您的搜索将加快数千倍。

如果您不想使用第三方服务,则可以使用MySQL Full-Search功能。

点击链接以获取更多信息。

关于php - Laravel大定制搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42066226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com