原则 2:使用查询构建器查询可变数量的字段/关联以进行高级搜索

发布于 2024-11-18 22:45:22 字数 260 浏览 1 评论 0原文

我正在尝试构建一个回购函数来搜索具有一些关联的实体。我的问题是,执行此操作的有效方式是什么?例如,如果我有一个与用户实体关联的项目实体,并允许我的用户按项目名称、用户名、用户公司等搜索项目。在这种情况下,我可能需要加入用户实体以便设置 where 子句。但是,我并不总是需要这样做,因此仅当有人想要搜索用户实体属性时,我才需要设置联接。我是否应该执行一个条件 stmt 来查看是否正在搜索任何用户实体属性,然后才调用 qb 的 join 和 andWhere 方法?或者还有其他方法可以做到这一点吗?谢谢!

i'm trying to build a repo function to search a entity which has a few associations. My question is, what is an efficient manner for doing this? If I have a project entity with an association to a user entity, for example, and allow my users to search for projects by project name, user name, user company, etc. etc. In this case, I may need to join the user entity in order to setup where clauses. I won't always need to however, so I would need to setup the join only if someone wants to search for user entity properties. Should I just do a conditional stmt to see if any user entity properties are being searched for, and only then do invoke the join and andWhere methods of the qb? Or is there another way to do this? Thx!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

维持三分热 2024-11-25 22:45:22

使用条件并添加连接和 where 应该可以很好地满足您所描述的基本搜索功能。

我自己也使用过类似的东西,只要您不需要更高级的关键字匹配等就足够了。

如果您需要更复杂的东西,或者需要更好的性能,您可能应该考虑使用像 Lucene 这样的真正的全文搜索引擎,或者 Solr 和 ElasticSearch 可能比单独使用原始 Lucene 更容易从 PHP 使用。

Using conditionals and adding joins and where's should work fine for a basic searching feature as you described.

I've used something similar myself and it suffices as long as you don't need more advanced keyword matching or such.

If you need something more complicated, or need better performance, you probably should consider using a real fulltext search engine like Lucene, or Solr and ElasticSearch may be easier to use from PHP than raw Lucene on its own.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文