2017-06-06 10 views
1

私はMagento 2を学んでいます。私はElasticSearchを使っているプロジェクトがありますが、Magento 2がElasticSearchとどのように連携しているのかよく分かりません。どのように動作するか教えてください。私はMagentoのSort ByとElasticのSortの間で混乱していたからです。Magento 2&ElasticSearch + Workフローチャート

  1. どのように機能別に並べ替えますか?

    1.1。私がPriceまたはNameで並べ替えると、MagentoまたはElasticSearchによって商品のコレクションがソートされましたか?

  2. Magentoでは、ElasticSearchを使用して製品コレクションをソートできますか?

  3. 関連性によって並べ替えられた製品のコレクションは、ElasticまたはMagentoによって並べ替えられましたか?

  4. Magentoの並べ替え私は& ElasticSearch 2.2(Magentoの2.1以降のバージョンでは動作しませんMagentoの2.1.3を使用していた

ことを改善するためにElasticSearchを、私は何をすべき使用して属性をサポートしていない場合)

よろしく。

ありがとうございました。

答えて

1

簡潔に言えば、Magentoはフルテキスト検索のためにElasticsearchとスコア(関連性)を並べ替えのみサポートしています。

他のソートオプションは、データベースクエリ中に実行されます。

実際、ElasticSearchにかなりの情報が格納されていても、ElasticsearchはIDのリスト - Magentoにスコアのみを返します。次にMagentoは、ソートなどで必要なすべての情報をロードするためにSQLリクエストを行います。

MagentoはElasticSearch ID - Scoreの結果を持つ一時テーブルを作成してMagento製品コレクションをソートします。

しかし、モジュールを拡張して完全な機能を追加することができます。

だから、答えのためのあなたの質問:私は価格や名前でソートしていたときに

  • 製品のコレクションは、MagentoのかElasticSearchによって並べ替えられたのですか?

ソートは、Magentoの側で行われ

  • はElasticSearchを使用してMagentoのサポートソート製品のコレクションをしていますか?

それはネイティブElasticsearchソート機能をサポートしてdoesntの。しかし、拡張することができます。しかし、最終結果はOKです。関連度順に並べ替えた場合

  • は、製品のコレクションは、弾性またはMagentoのでソートでしたか?

関連性(スコア)がElasticSearchによって実行し、その後、一時テーブルに格納され、JOIN SQLリクエストに使用されます。

  • Magentoのは、ソート

がElasticSearch SearchAdapterを拡張することを改善するためにElasticSearchを、私は何をすべき使用して属性をサポートしていない場合。私はあなたを助けることができます。あなたの要求に基づいてクエリ内にソート値を構築する必要があります。次に、応答内のソート値を管理します。