Skip to content

Commit f9a88cb

Browse files
committed
ENGCOM-4389: Elasticsearch6 implementation
- Fixed removing out of stock items from ES index
1 parent 4e62277 commit f9a88cb

File tree

6 files changed

+29
-63
lines changed

6 files changed

+29
-63
lines changed

app/code/Magento/Elasticsearch/Model/Config.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ class Config implements ClientOptionsInterface
2525
*/
2626
const ENGINE_NAME = 'elasticsearch';
2727

28-
private const ENGINE_NAME_5 = 'elasticsearch5';
29-
3028
/**
3129
* Elasticsearch Entity type
3230
*/
@@ -64,23 +62,31 @@ class Config implements ClientOptionsInterface
6462
private $engineResolver;
6563

6664
/**
67-
* Constructor
65+
* Available Elasticsearch engines.
6866
*
67+
* @var array
68+
*/
69+
private $engineList;
70+
71+
/**
6972
* @param ScopeConfigInterface $scopeConfig
7073
* @param ClientResolver|null $clientResolver
7174
* @param EngineResolverInterface|null $engineResolver
7275
* @param string|null $prefix
76+
* @param array $engineList
7377
*/
7478
public function __construct(
7579
ScopeConfigInterface $scopeConfig,
7680
ClientResolver $clientResolver = null,
7781
EngineResolverInterface $engineResolver = null,
78-
$prefix = null
82+
$prefix = null,
83+
$engineList = []
7984
) {
8085
$this->scopeConfig = $scopeConfig;
8186
$this->clientResolver = $clientResolver ?: ObjectManager::getInstance()->get(ClientResolver::class);
8287
$this->engineResolver = $engineResolver ?: ObjectManager::getInstance()->get(EngineResolverInterface::class);
8388
$this->prefix = $prefix ?: $this->clientResolver->getCurrentEngine();
89+
$this->engineList = $engineList;
8490
}
8591

8692
/**
@@ -138,7 +144,7 @@ public function getSearchConfigData($field, $storeId = null)
138144
*/
139145
public function isElasticsearchEnabled()
140146
{
141-
return in_array($this->engineResolver->getCurrentSearchEngine(), [self::ENGINE_NAME, self::ENGINE_NAME_5]);
147+
return in_array($this->engineResolver->getCurrentSearchEngine(), $this->engineList);
142148
}
143149

144150
/**

app/code/Magento/Elasticsearch/etc/di.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
<preference for="Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface" type="Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\Converter" />
1414
<preference for="Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ConverterInterface" type="Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\Converter" />
1515
<preference for="Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface" type="Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\CompositeFieldProvider" />
16+
<type name="Magento\Elasticsearch\Model\Config">
17+
<arguments>
18+
<argument name="engineList" xsi:type="array">
19+
<item name="elasticsearch" xsi:type="string">elasticsearch</item>
20+
<item name="elasticsearch5" xsi:type="string">elasticsearch5</item>
21+
</argument>
22+
</arguments>
23+
</type>
1624
<type name="Magento\Elasticsearch\Model\Adapter\FieldMapper\FieldMapperResolver">
1725
<arguments>
1826
<argument name="fieldMappers" xsi:type="array">

app/code/Magento/Elasticsearch6/Model/Config.php

Lines changed: 0 additions & 56 deletions
This file was deleted.

app/code/Magento/Elasticsearch6/Model/DataProvider/Suggestions.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use Magento\Store\Model\ScopeInterface;
1010
use Magento\Search\Model\QueryInterface;
1111
use Magento\AdvancedSearch\Model\SuggestedQueriesInterface;
12-
use Magento\Elasticsearch6\Model\Config;
12+
use Magento\Elasticsearch\Model\Config;
1313
use Magento\Elasticsearch\SearchAdapter\ConnectionManager;
1414
use Magento\Search\Model\QueryResultFactory;
1515
use Magento\Framework\App\Config\ScopeConfigInterface;

app/code/Magento/Elasticsearch6/Test/Unit/Model/DataProvider/SuggestionsTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class SuggestionsTest extends \PHPUnit\Framework\TestCase
6767
*/
6868
protected function setUp()
6969
{
70-
$this->config = $this->getMockBuilder(\Magento\Elasticsearch6\Model\Config::class)
70+
$this->config = $this->getMockBuilder(\Magento\Elasticsearch\Model\Config::class)
7171
->disableOriginalConstructor()
7272
->setMethods(['isElasticsearchEnabled'])
7373
->getMock();

app/code/Magento/Elasticsearch6/etc/di.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
*/
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
9+
<type name="Magento\Elasticsearch\Model\Config">
10+
<arguments>
11+
<argument name="engineList" xsi:type="array">
12+
<item name="elasticsearch6" xsi:type="string">elasticsearch6</item>
13+
</argument>
14+
</arguments>
15+
</type>
16+
917
<type name="Magento\Search\Model\Adminhtml\System\Config\Source\Engine">
1018
<arguments>
1119
<argument name="engines" xsi:type="array">

0 commit comments

Comments
 (0)