2011-07-14 9 views
0

Magentoで特定の単語を検索しないようにする方法があるかどうか知りませんか?Magento - 検索語を除外する

たとえば、帽子を販売する店があるとします。「帽子」という単語を検索しないようにしたいので、誰かが「黒い帽子」を検索すると「黒い」の検索結果が返されます。とにかくすべての製品が帽子であり、検索用語に「帽子」があればすべての帽子を返します。

アイデア?

答えて

1

あなたが概説したシナリオでは、実際にこれを行う必要はないと思います。 Magentoは利用可能な検索オプション(admin> system> configuration> catalog>カタログ検索で設定)としてlikeまたはfulltextを使用し、検索クエリが「黒い帽子」だった場合、それらの帽子はすべて返されません。

特定の検索語句を除外する必要がある場合は、app/code/core/Mage/CatalogSearch/Model/Query.phpをローカルコードプールに拡張し、不要な検索語句を削除する方法を追加できます。または、これが私が取るアプローチです。オブザーバーが小さなモジュールを作成し、controller_action_predispatchイベントをキャッチします。これにより、照会パラメーターをサニタイズ/変更し、除外すべき検索語を削除してから、照会をResultController.phpに渡すことができます。

+0

Magentoの検索オプションのどちらもこの問題を解決していないことが確認できます。 likeとfulltextの両方がすべての製品を返します。 http://twistedtime.comの検索で「Pink Watches」と入力すると表示されます – a1anm

+0

問題が見つかりました:http://www.magentocommerce.com/bug-tracking/issue?issue=10580 – a1anm

+0

@ a1anm usingあなたのサンプル検索クエリ "Pink Watches"では、ピンク色でないRakumi(IDEA)Watchには、まだ検索されている 'short_description'のピンクが含まれているようです。 'short_description'属性から" Pink "を削除するか、または(少なくともクイック検索のために)属性を検索不可能に設定すると、問題が解決されます。 –

関連する問題