2017-06-06 169 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。我可以帮你解决这个问题。您需要根据您的请求在查询中构建排序值。然后管理响应中的排序值。