検索の絞り込みで並べ替えオプションがRelavenceで並べ替えに設定されている場合、Magento Connectの検索機能の背後にあるロジックまたはアルゴリズムを理解したい
検索の絞り込みで並べ替えオプションがRelavenceで並べ替えに設定されている場合、Magento Connectの検索機能の背後にあるロジックまたはアルゴリズムを理解したい
回答:
検索は、MySQL FULLTEXTインデックスを使用して実装されると思います。
以下は、そのインデックスの仕組みに関するMySQL公式ドキュメントからの引用です。
返される行は、最も高い関連度で最初に自動的にソートされます。関連値は非負の浮動小数点数です。ゼロ関連性は、類似性がないことを意味します。関連性は、行内の単語の数、その行内の一意の単語の数、コレクション内の単語の合計数、および特定の単語を含むドキュメント(行)の数に基づいて計算されます。
その証拠として、次の検索用語を使用して、Magento Connect Webサイトで検索を実行できます。
最初の用語では、最初の結果はタイトルのあるモジュールです:
2番目の場合:
最後の1つ:
すべてのケースでわかるように、最初のアイテムはタイトルに検索語が複数出現するため、それらの関連性は高くなります。
それがMagento Connect検索の仕組みのようです。
Magento.comはDrupal上に構築されていますが、Magento Connectは少なくとも基盤としてMagento自体を使用しているようです。
magento-connect/catalogsearch/result/?q=TERM
使用されるJavaScriptファイル:
http://www.magentocommerce.com/magento-connect/skin/frontend/enterprise/connect/css/base.cssなどのCSSファイルへのパスと、ヘッダーに含まれるライセンス:
* @category design
* @package enterprise_connect
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
* @license http://www.magentocommerce.com/license/enterprise-edition
この情報により、検索がMagento Enterpriseと同じように機能することを確認できます。現在、いくつかの可能性があります。
任意の検索語の組み合わせを検索するとわかるように、それは誰もが嫌うデフォルトのLIKE
検索ではありませんOR
。したがって、@ alex_bで示唆されているように、デフォルトで関連性によって順序付けされる全文検索か、Enterprise_SearchモジュールのSolr検索のいずれかです。