首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel中建立搜索算法的技巧

在Laravel中建立搜索算法的技巧
EN

Stack Overflow用户
提问于 2017-03-07 19:17:31
回答 2查看 2.1K关注 0票数 2

我有一个用Laravel 5.2制作的网站,我需要实现一个搜索框,我知道这个过程主要涉及什么(向控制器请愿,找到,然后用json回答等等)。

因此,在此之前,我真的需要知道一些技巧,什么是最佳实践,以尽可能最好的方式实现这一目标。简单地说,我有一个包含大量帖子的数据库表(比如500 k寄存器),每个帖子都有一些属性:名称、描述、海报、标点符号。我知道这个问题没有确切的答案,但我只想知道在做这件事之前我应该考虑什么,如何改进搜索,以及如何使用最佳实践。

  • 1.-您认为我需要创建一个只包含post的namesid的单独的表吗?此表仅用于搜索。
  • 2.-为了加快搜索速度,应该将name列作为数据库中的索引吗?或者按日期分类?
  • 3.-如何提高搜索速度?也许可以使用一些评论?(根据用户搜索的帖子多少次),这是个好主意吗?
  • 4.-我在想,也许我只需要找到帖子的名称,因为数据库中条目的数量。我说的对吗?
  • 5.-此外,我可以使用哪些算法来处理用户使用错误编写的某些情况?我需要解释他们试图说的话,并向他们展示相关的帖子。
  • 6.-你推荐给我哪些工具或扩展?

最后,非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2017-03-07 19:34:40

是的,看看Algolia的Laravel,但是你需要更新到Laravel5.3或5.4。一旦您设置了Scout/Algolia (应该是快速的),您仍然需要对API执行AJAX调用,但是如果正确的话,它应该会非常快。

https://laravel.com/docs/5.4/scout

票数 3
EN

Stack Overflow用户

发布于 2017-03-07 19:28:39

最好的解决方案是不要使用数据库作为搜索引擎。

使用像弹性搜索这样的搜索引擎可以使您的搜索速度更快、更智能,而不是使用纯数据库搜索。

如果你的申请真的像你说的那样落后,那就值得。

有了它,您可以实现高级搜索,使用许多可用的分析器,如nGram,您可以搜索redn和获得Sredny M Casanova的结果。或者即使在用户写错误的时候也要找到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42656508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档