【问题标题】:Doctrine - all records are returned when there are no matches in Searchable behaviorDoctrine - 当 Searchable 行为中没有匹配项时返回所有记录
【发布时间】:2010-02-19 22:35:13
【问题描述】:

我正在使用 Doctrine 中的可搜索行为在我的目录中搜索产品。在搜索与产品匹配的关键字时效果很好。例如,关键字“背包”返回标题中包含“背包”一词的所有产品。

但是,当搜索完全不匹配标题的关键字时,会返回每条记录。例如,“ASDF”返回所有产品。

为什么会发生这种情况,我该如何解决?

【问题讨论】:

    标签: php orm doctrine


    【解决方案1】:

    我在使用 Lucene 时遇到了同样的问题。如果我没记错的话,它发生的原因是因为 lucene 返回了一个与查询的参数匹配的 ID 列表。如果没有返回,则 Doctrine 没有搜索条件,因此没有 where 子句的查询。

    在您的操作中,我希望您可能会调用 Lucene 来查找匹配的产品,然后调用使用这些结果作为检索它们的标准;我通过在主查询周围敲击 if 来解决问题,检查 Lucene 是否返回了有用的东西。

    【讨论】:

    • 在主查询周围包裹一个 if 语句,看看 Doctrine 是否返回任何解决了问题的方法。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2022-10-17
    • 2012-04-23
    • 1970-01-01
    相关资源
    最近更新 更多