我们正在构建一个具有多个不同实体的应用程序,这些实体非常简单,并且具有名称和功能。描述和一些具体的东西。
现在我们要添加标签,以便添加额外的搜索关键字。 (某处还会有标签云,但这很容易)
我一直在阅读不同的方法来进行正确的搜索。解决方案如lucene,elastic,mysql全文匹配等等。
有没有人有经验可以分享这样的应用程序的最佳解决方案?
感谢您的建议!
答案 0 :(得分:2)
“什么是最好的...”通常不是一个很好的方式来问这里,你会得到非常自以为是的答案或根本没有。
所以这是我的见解答案:
如果你有一个小集,你肯定可以运行MySQL和MATCH AGAINST(你需要教Doctrine如何使用它!)。这是最直接的事情,因为你已经有了Doctrine,只需要教一些东西。 所以,是的,Gedmo Taggable和你自己的Doctrine扩展,你有你的查询。
如果您的可搜索数据库变大,您将需要切换到适当的搜索引擎,如Elastic或Solr或其他任何内容。
您需要的内容通常称为“分面搜索”(或者在ElasticSearch中,现在称为“聚合”)。
有关您在Wikipedia上找到的多面搜索的更多信息。
是的,正确的搜索引擎更酷,更快,更华丽,但如果按计划进行首次处理,可能不是最好的解决方案。