【发布时间】:2012-08-15 13:03:06
【问题描述】:
我正在为拥有基于 Magento 的商店的客户工作。它塞满了产品,但所说产品的名称有点乱。他没有坚持一种命名约定,而是多年来使用不同的约定。因此,每当他使用“管理”->“管理产品”部分中的“名称”过滤器查找某些内容时,结果仍有很多不足之处。
所以我想知道是否有办法让过滤算法更加宽松,特别是在词序方面。因为如果您有一个名称为“word1 word2 word3”的产品,并且您搜索“word1 word3”,则该产品不会出现在结果中。
任何提示将不胜感激。干杯!
8 月 28 日更新:我的搜索将我带到了 *Mage_Adminhtml_Block_Widget_Grid* 类,更准确地说是它的受保护方法 *_addColumnFilterToCollection()*。在这里你有 $cond 变量,如果你打印出来它会给你这样的东西:
Array ([like] => Zend_Db_Expr Object([_expression:protected] => '%search term%' ))
如果我可以在它被提交到 *Zend_Db_Expr* 对象之前截取该搜索词并将其转换为 '%search%term%',我可能会解决我的问题。那么,有什么想法吗?
【问题讨论】:
-
我认为“内部搜索”功能会更容易实现 - 因此您可以缩小结果范围...模糊搜索需要将表格重新格式化为 MyISAM 全文,甚至使用 Solr 之类的工具。跨度>