使用标签的 Symfony 搜索

Symfony search with tags

我们正在构建一个包含多个不同实体的应用程序,这些实体在名称和描述以及一些特定内容方面非常简单。

现在我们要添加标签,目的是添加额外的搜索关键字。 (某处也会有标签云,不过很简单)

我一直在阅读有关进行正确搜索的不同方法。 lucene、elastic、mysql 全文匹配等解决方案。

有没有人有任何经验可以分享这种应用程序的最佳解决方案?

  1. 我应该将标签放在 string/array 字段中的相同 table 中吗?使用单独的 table?我还发现 DoctrineExtensions-Taggable 看起来很不错,而且制作标签云也很容易。
  2. 要正确搜索名称、描述和标签,最佳解决方案是什么?卢塞恩?松紧带? MySQL?到目前为止,我认为 FOSElasticaBundle 看起来最成熟,但不确定如何在标签上添加搜索? (见 1)

感谢指教!

"What's the best..." 通常不是在这里提问的好方法,您要么会得到非常自以为是的答案,要么根本 none。

所以这是我自以为是的答案:

如果你有一个小集合,你肯定可以 运行 与 MySQL 和 MATCH AGAINST(你需要教 Doctrine 如何使用它!)。这是最直接的事情,因为你已经有了 Doctrine,只需要教它一些东西。 所以,是的,Gedmo Taggable 和一些你自己的 Doctrine Extension,你有你的查询。

如果您的可搜索数据库将变得更大,您将需要切换到合适的搜索引擎,例如 Elastic 或 Solr 或其他任何引擎。

您在那里需要的通常称为 "Faceted Search"(或者在 ElasticSearch 中,它们现在称为 "Aggregations")。

例如,您在 Wikipedia 上找到的有关分面搜索的更多信息。

是的,合适的搜索引擎更酷、更快、更华丽,但如果您按计划使用它并且是第一次使用它,它可能不是最佳解决方案。