我有一个问题,我迫切需要你的帮助。我在Magento ver。 1.6.1.0,每当我用magento中的“婴儿可爱的鞋子”这样的句子搜索时,结果都不准确,但当我只搜索“可爱”或“鞋子”之类的单词时,它会给我结果。
我有一种感觉,magento无法搜索句子,但能够用文字搜索产品。我能做些什么来更好地优化magento中的搜索?
答案 0 :(得分:4)
搜索选项可以在System>下的后端找到。目录>目录搜索,您可能将搜索类型设置为LIKE。使用FULLTEXT模式可能会获得更好的结果。
答案 1 :(得分:4)
Magento不会将输入的字符串作为完整句子进行搜索。相反,它将您的搜索字符串拆分(标记)为单词,并将搜索包含任何这些单词的产品(实现“OR”逻辑)。因此,如果您正在搜索“红鞋”,它会找到包含“红色”或包含“鞋子”字样的所有内容。显然,它在大多数情况下并不是很有用,因为它会产生许多完全不相关的结果。
您可以查看此免费扩展程序以优化搜索:Catalog Search Refinement FREE。此扩展修改搜索行为以仅查找具有ALL关键字的产品(换言之,“AND”逻辑)。这将只找到同时具有“红色”和“鞋子”关键字的产品。还有Advanced Search version of that extension也会根据语音距离以及加权搜索属性查找类似的单词,从而可以冒出最相关的产品。
答案 2 :(得分:2)
我通过此链接解决了我的问题 - https://stackoverflow.com/questions/1953715/magento-search-not-returning-expected-results
我在app / code / core / Mage / CatalogSearch / Model / Resource / Fulltext.php中找到了这一行
并做了这个(下面)
将app / code / core / Mage / CatalogSearch / Model / Mysql4 / Fulltext.php复制到app / code / local / Mage / CatalogSearch / Model / Mysql4 / Fulltext.php
341行 - 343 app / code / local / Mage / CatalogSearch / Model / Mysql4 / Fulltext.php
if($ like){ $ likeCond ='('。join('OR',$ like)。')'; } 变成
if($ like){ $ likeCond ='('。join('AND',$ like)。')'; }
答案 3 :(得分:1)
还要确保更改结果的显示顺序。默认Magento是向后服务。
将以下内容添加到/app/design/frontend/default/default/layout/catalogsearch.xml
<reference name="search_result_list">
<action method="setDefaultDirection"><string>asc</string></action>
<action method="setDefaultOrder"><string>relevance</string></action>
</reference>
以下之间:
<catalogsearch_result_index translate="label">
...
</catalogsearch_result_index>
答案 4 :(得分:0)
股票Magento搜索需要一些调整才能使其正常运行。 Like搜索在1.5 / 1.6中从AND逻辑更改为OR逻辑,并在恢复为AND逻辑时提供更好的结果。在Magento网站上的Magento论坛中已经解决了这个问题。另一个解决办法就是将复数形式除去,这也是在那里解决的。
切割trailin“s”的原因是,大多数人不会搜索“油压表”,而是“油压计”,当你卖出“0-100 psi油压”时会给出完全错失计”。将所有以“ies”结尾的项目别名为其单数。您很少销售“rc飞机电池”,它将具体类似“1200aH飞机电池”,因此您不太精明的客户搜索永远不会匹配。
“Baby's cute shoes”永远不会记录命中,除非它出现在用于填充全文搜索索引的项目中。谁卖了一件名为“婴儿可爱的鞋子”的物品呢?我通常将这些类型的搜索同义,以达到列出项目的特定类别。一些客户搜索过于主观,无法与产品搜索的客观性质相匹配(实际项目与模糊概念)。