获取搜索结果产品集合

问题描述 投票:0回答:1

我正在为网站标题创建一个搜索结果下拉列表。我创建了几个数据提供程序来搜索不同实体/内容的关键字。

当我包含产品数据提供程序来搜索产品时,返回结果的速度非常慢。产品目录有20000种产品。

我正在使用该课程:

Magento\CatalogSearch\Model\ResourceModel\Search\Collection

使用以下代码:

        $collection = $this->productCollection;
        $collection->addAttributeToSelect(['entity_id', 'name', 'description', 'price']);
        $collection->addSearchFilter($query);
        $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
        $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());

实际的搜索结果页面加载速度非常快,那么我是否使用最佳方法来获取产品搜索集合?有更好更快的方法吗?

在我的本地站点版本上,结果返回得非常快。在远程暂存站点上,结果加载速度非常慢。服务器拥有充足的内存,并且已针对性能进行了优化。

performance search product magento2
1个回答
0
投票
  1. 限制下拉列表的集合大小 $集合->setPageSize(5); // 只获取下拉列表所需的内容

  2. 添加缓存层

  3. 优化所选属性

  4. 添加适当的索引

...列表继续。

© www.soinside.com 2019 - 2024. All rights reserved.