使用Laravel进行实时搜索

时间:2018-01-26 21:39:08

标签: laravel search

我找不到任何使用Laravel进行实时搜索的好插件,是否存在?我找到了一些jQuery自动完成插件,但我正在寻找这样的东西:https://github.com/iranianpep/ajax-live-search

我昨天尝试实施上述内容(大约10个小时)并且由于他们使用的MySQL查询与Laravel的实现相比无法使其工作

任何想法或信息表示赞赏

我还尝试使用大型Laravel查询来接收数据(我想搜索多个列),但使用

User::where('name', 'like', $query)->orWhere('username', 'like', $query)->etc.

格式甚至不符合我的名字。是否有更先进的搜索算法?

由于

  • 扎克

1 个答案:

答案 0 :(得分:0)

Laravel Scout就是您的答案。

  

Laravel Scout提供了一个简单的基于驱动程序的解决方案,可以为您的Eloquent模型添加全文搜索。使用模型观察器,Scout会自动使您的搜索索引与您的Eloquent记录保持同步。

     

目前,Scout随附Algolia驱动程序;但是,编写自定义驱动程序很简单,您可以使用自己的搜索实现扩展Scout。

我个人也会推荐Algolia,因为它非常复杂,有免费的入门级别,并且比你自己想出的任何搜索都要好。

您可以在自己的后端设置排名,它会考虑搜索中的拼写错误等等。另外它是云供电的!

使用Laravel Scout,任何搜索都变得轻而易举,如:

$users = App\User::search('Chris')->get();

真的很酷:

$users = App\User::search('Chrs')->get();

两个$users都会返回相同的结果。即使有拼写错误。

有关详细信息,请参阅官方Laravel Scout documentation

如果您是Laracasts的成员,请查看these screencasts。即使你不是,它也很便宜,你会在Laravel Scout和现场搜索中学到很多东西!