我有一个用Laravel 5.2制作的网站,我需要实现一个搜索框,我知道这个过程主要涉及什么(向控制器请愿,找到,然后用json回答等等)。
因此,在此之前,我真的需要知道一些技巧,什么是最佳实践,以尽可能最好的方式实现这一目标。简单地说,我有一个包含大量帖子的数据库表(比如500 k寄存器),每个帖子都有一些属性:名称、描述、海报、标点符号。我知道这个问题没有确切的答案,但我只想知道在做这件事之前我应该考虑什么,如何改进搜索,以及如何使用最佳实践。
names和id的单独的表吗?此表仅用于搜索。name列作为数据库中的索引吗?或者按日期分类?最后,非常感谢!
发布于 2017-03-07 19:34:40
是的,看看Algolia的Laravel,但是你需要更新到Laravel5.3或5.4。一旦您设置了Scout/Algolia (应该是快速的),您仍然需要对API执行AJAX调用,但是如果正确的话,它应该会非常快。
发布于 2017-03-07 19:28:39
最好的解决方案是不要使用数据库作为搜索引擎。
使用像弹性搜索这样的搜索引擎可以使您的搜索速度更快、更智能,而不是使用纯数据库搜索。
如果你的申请真的像你说的那样落后,那就值得。
有了它,您可以实现高级搜索,使用许多可用的分析器,如nGram,您可以搜索redn和获得Sredny M Casanova的结果。或者即使在用户写错误的时候也要找到。
https://stackoverflow.com/questions/42656508
复制相似问题