【发布时间】:2010-02-19 22:35:13
【问题描述】:
我正在使用 Doctrine 中的可搜索行为在我的目录中搜索产品。在搜索与产品匹配的关键字时效果很好。例如,关键字“背包”返回标题中包含“背包”一词的所有产品。
但是,当搜索完全不匹配标题的关键字时,会返回每条记录。例如,“ASDF”返回所有产品。
为什么会发生这种情况,我该如何解决?
【问题讨论】:
我正在使用 Doctrine 中的可搜索行为在我的目录中搜索产品。在搜索与产品匹配的关键字时效果很好。例如,关键字“背包”返回标题中包含“背包”一词的所有产品。
但是,当搜索完全不匹配标题的关键字时,会返回每条记录。例如,“ASDF”返回所有产品。
为什么会发生这种情况,我该如何解决?
【问题讨论】:
我在使用 Lucene 时遇到了同样的问题。如果我没记错的话,它发生的原因是因为 lucene 返回了一个与查询的参数匹配的 ID 列表。如果没有返回,则 Doctrine 没有搜索条件,因此没有 where 子句的查询。
在您的操作中,我希望您可能会调用 Lucene 来查找匹配的产品,然后调用使用这些结果作为检索它们的标准;我通过在主查询周围敲击 if 来解决问题,检查 Lucene 是否返回了有用的东西。
【讨论】: