Magentoで構築した日本語向けサイトでは、次のような問題が頻発します。

  • 商品検索が意図した結果ではない

この問題は、Magento Open SourceでもAdobe Commerceでも共通して発生します。
もちろん構築時にサイトの特性に合わせた調整がしてあれば回避可能ですが、何も考えずに構築した場合は、高確率でトラブルが発生します。

なぜ、Magentoの商品検索はイケてないのか?

Magentoの商品検索は、歴史的に次のような段階を経てきました。

  1. MySQLのLike検索
  2. Apache Solrを使用した全文検索
  3. MySQLの全文検索
  4. Elasticsearchを使用した全文検索

MySQLのLike検索

Magento1.xで主に使用されていた実装です。
他のアプリケーションでもよく使用されるものですが、パフォーマンスがお世辞にも良いとはいえませんでした。
データベースの性質上、部分一致のLike検索はインデックスが使用できないため、商品件数が増えるとパフォーマンス劣化が起こりやすい問題を抱えていました。

Apache Solrを使用した全文検索

主に有償版のMagento1.xに提供されていた実装です。
Apache Solrを検索エンジンとして利用することで、MySQLのLike検索よりも制度の高い検索機能が実現可能でした。
旧Magento Community Editionの場合はサードパーティの実装を使用することで、同様の検索機能を提供可能でしたが、サードパーティによって実装方針が異なるため、機能差が相応に見られました。

MySQLの全文検索

Magento2.0 - 2.3の標準です。
MySQLに標準で用意されている全文検索機能を用いて検索を行う仕組みです。
Like検索に比べ、全文検索インデックスが利用できるぶんだけ検索速度面では優位ですが、

  • 2文字以下の単語にヒットしない
  • 日本語の構文解析能力があまり高くない
もっとみる »