2010-02-19 50 views
0

我在Doctrine中使用可搜索行为来搜索我的产品目录中的产品。它在搜索与产品匹配的关键字时效果很好。例如,关键字“背包”会在标题中返回所有带有“背包”字样的产品。学说 - 在可搜索行为中没有匹配时返回所有记录

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

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

回答

1

我在使用Lucene时遇到了同样的问题。如果我正确地记得它发生的原因是因为lucene返回一个匹配查询参数的ID列表。如果没有返回,那么Doc​​trine就没有条件搜索,因此查询没有where子句。

在您的操作中,我希望您可能会打电话给Lucene查找匹配的产品,然后使用这些结果作为标准调用以检索它们;我解决了这个问题,主要是通过检查Lucene返回一些有用的东西来解决这个问题。

+0

围绕主查询包装一条if语句,看看Doctrine是否返回任何东西来解决问题。谢谢你的帮助。 – JonP 2010-04-09 23:52:26

相关问题