@@ -134,6 +134,7 @@ class ConfigHelper
134
134
public const ENHANCED_QUEUE_ARCHIVE = 'algoliasearch_advanced/queue/enhanced_archive ' ;
135
135
public const NUMBER_OF_ELEMENT_BY_PAGE = 'algoliasearch_advanced/queue/number_of_element_by_page ' ;
136
136
public const ARCHIVE_LOG_CLEAR_LIMIT = 'algoliasearch_advanced/queue/archive_clear_limit ' ;
137
+ public const MAX_VIRTUAL_REPLICA_COUNT = 50 ;
137
138
138
139
/**
139
140
* @var Magento\Framework\App\Config\ScopeConfigInterface
@@ -993,8 +994,9 @@ public function getSortingIndices($originalIndexName, $storeId = null, $currentC
993
994
$ currency = $ this ->getCurrencyCode ($ storeId );
994
995
$ attributesToAdd = [];
995
996
$ defaultVirtualReplicaEnabled = $ this ->useVirtualReplica ($ storeId );
997
+ $ virtualReplicaCount = 0 ;
996
998
foreach ($ attrs as $ key => $ attr ) {
997
- if ($ defaultVirtualReplicaEnabled || (isset ($ attr ['virtualReplica ' ]) && $ attr ['virtualReplica ' ])){
999
+ if ($ virtualReplicaCount < self :: MAX_VIRTUAL_REPLICA_COUNT && ( $ defaultVirtualReplicaEnabled || (isset ($ attr ['virtualReplica ' ]) && $ attr ['virtualReplica ' ]) )){
998
1000
$ virtualReplica = 1 ;
999
1001
} else {
1000
1002
$ virtualReplica = 0 ;
@@ -1033,6 +1035,7 @@ public function getSortingIndices($originalIndexName, $storeId = null, $currentC
1033
1035
'custom ' ,
1034
1036
];
1035
1037
$ attributesToAdd [$ newAttr ['sort ' ]][] = $ newAttr ;
1038
+ $ virtualReplicaCount ++;
1036
1039
}
1037
1040
} elseif ($ attr ['attribute ' ] === 'price ' ) {
1038
1041
$ indexName = $ originalIndexName . '_ ' . $ attr ['attribute ' ] . '_ ' . 'default ' . '_ ' . $ attr ['sort ' ];
@@ -1058,6 +1061,7 @@ public function getSortingIndices($originalIndexName, $storeId = null, $currentC
1058
1061
'exact ' ,
1059
1062
'custom ' ,
1060
1063
];
1064
+ $ virtualReplicaCount ++;
1061
1065
}
1062
1066
}
1063
1067
$ attrsToReturn = [];
0 commit comments