2017-06-06 166 views
1

我正在學習Magento 2.我有一個使用ElasticSearch的項目,我不知道Magento 2如何使用ElasticSearch。你能告訴我它是如何工作的。因爲我在Magento排序和Elastic排序之間感到困惑。Magento 2&ElasticSearch +工作流程圖

  1. 「按功能排序」功能的工作原理是什麼?

    1.1。當我按價格或名稱排序時,產品的集合是通過Magento還是ElasticSearch進行排序的?

  2. Magento是否支持使用ElasticSearch對Product Collection進行排序?

  3. 當按相關性排序時,產品系列是按Elastic還是Magento排序?

  4. 如果Magento的不支持排序屬性使用ElasticSearch我應該怎麼做,以提高該

我已經使用了Magento的2.1.3 & ElasticSearch 2.2(2.1 Magento的不與更高版本中運行)

問候。

謝謝任何​​típs。

回答

1

爲了簡短起見,Magento僅支持通過Elasticsearch得分(相關性)進行全文搜索排序。

在數據庫查詢期間執行其他排序選項。事實上,即使在ElasticSearch中存儲了很多信息,Elasticsearch也只返回一個ID列表 - Score給Magento。然後,Magento執行SQL請求,以加載排序所需的所有信息。

爲了按分數排序,Magento使用ElasticSearch ID - Score對Magento產品集合進行排序,創建一個臨時表。

但是,您可以擴展模塊以添加完整功能。

因此,對於回答您的問題:

  • 產品的收集是由Magento的或ElasticSearch排序時,我有按價格或名稱?

排序上的Magento端使用ElasticSearch做

  • 不Magento的支持某種產品系列?

它不支持原生的Elasticsearch排序功能。但可以延長。但最終結果是好的。

  • 當相關性排序的產品集合了排序彈性或Magento的?

的相關性(評分)由ElasticSearch執行,然後存儲到一個臨時表,並在JOIN SQL請求使用。

  • 如果Magento的不支持排序屬性使用ElasticSearch我應該怎麼做才能改善這種

擴展ElasticSearch SearchAdapter。我可以幫你解決這個問題。您需要根據您的請求在查詢中構建排序值。然後管理響應中的排序值。