Tôi đang gặp vấn đề này trong khi nâng cấp từ EE 1.13.0.2 lên 1.14.1.0 ngay bây giờ. Chúng tôi trải nghiệm điều này khi cập nhật hàng loạt các thuộc tính sản phẩm và cổ phiếu trong cronjobs. Trong 1.13, các công việc lần lượt mất ~ 3 giây và ~ 90 giây. Trong 1.14, nó giống như hơn 10 phút và tôi không muốn biết bao lâu.
Có một bản vá EE PATCH_SUPEE-4945_EE_1.14.0.1_v2.sh
liên quan đến việc tiết kiệm sản phẩm chậm. Bạn có thể yêu cầu nó từ hỗ trợ.
Một mẹo khác tôi tìm thấy là chỉ cập nhật các hàng chưa được đặt thành 0 (tất nhiên chỉ tạm thời thay đổi tệp lõi để kiểm tra xem nó có ảnh hưởng gì đến bạn không):
diff --git a/app/code/core/Enterprise/CatalogSearch/Model/Index/Action/Fulltext/Refresh.php b/app/code/core/Enterprise/CatalogSearch/Model/Index/Action/Fulltext/Refresh.php
index c6273a1..95e6d4c 100644
--- a/app/code/core/Enterprise/CatalogSearch/Model/Index/Action/Fulltext/Refresh.php
+++ b/app/code/core/Enterprise/CatalogSearch/Model/Index/Action/Fulltext/Refresh.php
@@ -668,7 +668,7 @@ class Enterprise_CatalogSearch_Model_Index_Action_Fulltext_Refresh
protected function _resetSearchResults()
{
$adapter = $this->_getWriteAdapter();
- $adapter->update($this->_getTable('catalogsearch/search_query'), array('is_processed' => 0));
+ $adapter->update($this->_getTable('catalogsearch/search_query'), array('is_processed' => 0), array('is_processed != 0'));
$adapter->delete($this->_getTable('catalogsearch/result'));
$this->_app->dispatchEvent('enterprise_catalogsearch_reset_search_result', array());
diff --git a/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php b/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php
index ee8b1c3..1d89146 100755
--- a/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php
+++ b/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php
@@ -299,7 +299,7 @@ class Mage_CatalogSearch_Model_Resource_Fulltext extends Mage_Core_Model_Resourc
public function resetSearchResults()
{
$adapter = $this->_getWriteAdapter();
- $adapter->update($this->getTable('catalogsearch/search_query'), array('is_processed' => 0));
+ $adapter->update($this->getTable('catalogsearch/search_query'), array('is_processed' => 0), array('is_processed != 0'));
$adapter->delete($this->getTable('catalogsearch/result'));
Mage::dispatchEvent('catalogsearch_reset_search_result');
Và cuối cùng, có một khuyến nghị để thêm một chỉ mục vào is_processed
cột:
ALTER TABLE `database`.`catalogsearch_query` ADD INDEX `IDX_CATALOGSEARCH_QUERY_IS_PROCESSED` (`is_processed`) COMMENT '';
Tôi đã thử tất cả trong số họ và trong khi họ mang đến những cải tiến hiệu suất nhỏ, không ai trong số họ đưa tôi đến gần hiệu suất của EE 1.13.
Một sửa chữa dễ dàng (trên bề mặt) sẽ là thêm lại
if (!$this->_isFulltextOn()) {
return $this;
}
vào đầu execute()
cho các lớp này:
- Enterprise_CatalogSearch_Model_Index_Action_Fulltext_Refresh
- Enterprise_CatalogSearch_Model_Index_Action_Fulltext_Refresh_Cheachog
- Enterprise_CatalogSearch_Model_Index_Action_Fulltext_Refresh_Row
Nếu tôi làm điều đó, đoạn mã sau không được thực thi vì Solr được cấu hình để sử dụng. Vì nhóm nòng cốt đã từ chối phương pháp này trong 1.14, điều đó thật xấu xí và tôi sẽ cố gắng tránh xa nó bằng mọi giá.
Tôi chỉ điều tra việc này từ hôm qua nên tôi hy vọng tôi có thể theo dõi với một giải pháp thích hợp.
Cập nhật ngày 09.02.2015
Tôi phát hiện ra bằng cách tạo kết xuất hồ sơ xdebug mà giao tiếp giữa Magento và Solr chiếm phần lớn thời gian System > Configuration > Advanced > Index Management > Index Options > Catalog Search Index
được đặt thành Update on Save
. Đặt Chỉ mục Tìm kiếm Danh mục để Update when scheduled
cải thiện đáng kể tốc độ.
Cập nhật 03.03.2015
Trong khi đó, bộ phận hỗ trợ Doanh nghiệp giải thích lý do $this->_isFulltextOn()
không được chấp nhận:
Chúng tôi đã xóa $ this -> _ isFulltextOn () khỏi phương thức thực thi vì chúng tôi đã tái cấu trúc bộ chỉ mục mysql_fulltext hiện tại để đóng gói công việc lập chỉ mục thực tế và điều chỉnh Danh mục SOLR Index để sử dụng mô hình lập chỉ mục dựa trên Mview mới.
Mô-đun Enterprise_CatalogSearch đã triển khai mô hình bộ chỉ mục mới, sử dụng thay đổi để tái hiện một phần. Hiện tại khi SOLR được sử dụng làm công cụ tìm kiếm danh mục, bộ chỉ mục catalogsearch_fulltext quay lại sử dụng mô hình bộ chỉ mục cũ. Chúng tôi sử dụng mô hình bộ chỉ mục mới trong mô-đun Enterprise_CatalogSearch khi SOLR được đặt làm công cụ tìm kiếm danh mục.
Do đó, nếu người bán muốn bỏ qua chỉ mục toàn văn bản trong khi lưu sản phẩm, vui lòng yêu cầu anh ấy / cô ấy thay đổi chế độ chỉ mục để cập nhật theo lịch trình.
Vì vậy, giải pháp chính thức khá nhiều là thay đổi Chế độ Index thành Update when scheduled
. Chúng tôi đang sử dụng nó trong một vài tuần mà không có vấn đề gì. Nếu cron của bạn chạy mỗi phút, bạn sẽ chỉ gặp một chút chậm trễ cho đến khi tìm kiếm được cập nhật.