2

Magento クイック検索で小さな問題が発生しています。ボックス内を検索すると、

ice machine

その後、すべてがタイトルの場所iceまたはmachineタイトルに返されます。ice machineタイトルに正確な文字列を含む製品を検索するだけなので、必要です。

"ice machine"二重のスピーチマークを付けると、それと完全に一致する製品名のみが返されることがわかりました。

したがって、検索クエリの周りに二重のスピーチマークが自動的に追加され、両方の単語ではなく全文が検索されるようにする方法が必要です。

フォーム HTML でこれを行う方法はありますか?

4

2 に答える 2

1

この問題は、MagentoCommerce フォーラムで何度も取り上げられています。Like 検索ロジックが AND から OR に変更されました。より良い結果を得るには、AND に戻す必要があるため、検索クエリ内のすべての項目が一致する必要があります。

検索ロジックの修正

app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.phpでクラスを見つけますpublic function prepareResult($object, $queryText, $query)

次のコード:

if ($like) {
    $likeCond = '(' . join(' OR ', $like) . ')';
}

する必要があります

if ($like) {
    $likeCond = '(' . join(' AND ', $like) . ')';
}

このクラスだけを上書きする独自の書き換えモジュールを作成するか、ファイル Fulltext.php 全体をapp/code/local/Mage/CatalogSearch/Model/Mysql4/Fulltext.phpにコピーし、 ORANDに変更して上書きします。モジュールが望ましいです。

于 2012-07-03T15:18:49.807 に答える
0

フォームを使用すると、javascript を使用してそれを行うことができますが、顧客がすでに二重引用符を入力しているかどうかに注意する必要があります。
私の提案は、Mage_CatalogSearch_Helper_Dataヘルパーを書き直してgetQueryText()メソッドをオーバーライドすることです。そこでは、既存の引用符を引用したり、クエリに独自の引用符を追加したりできます。

于 2012-07-03T09:27:49.017 に答える