我正在为网站标题创建一个搜索结果下拉列表。我创建了几个数据提供程序来搜索不同实体/内容的关键字。
当我包含产品数据提供程序来搜索产品时,返回结果的速度非常慢。产品目录有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());
实际的搜索结果页面加载速度非常快,那么我是否使用最佳方法来获取产品搜索集合?有更好更快的方法吗?
在我的本地站点版本上,结果返回得非常快。在远程暂存站点上,结果加载速度非常慢。服务器拥有充足的内存,并且已针对性能进行了优化。
限制下拉列表的集合大小 $集合->setPageSize(5); // 只获取下拉列表所需的内容
添加缓存层
优化所选属性
添加适当的索引
...列表继续。