Skip to content

Commit fa60f8b

Browse files
committed
ENGCOM-4389: Elasticsearch6 implementation
1 parent e457037 commit fa60f8b

File tree

15 files changed

+71
-106
lines changed

15 files changed

+71
-106
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ cache:
5454
- $HOME/node_modules
5555
- $HOME/yarn.lock
5656
before_install:
57-
- curl -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.3.0/elasticsearch-2.3.0.deb && sudo dpkg -i --force-confnew elasticsearch-2.3.0.deb && sudo service elasticsearch restart
57+
- curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.deb && sudo dpkg -i --force-confnew elasticsearch-6.6.1.deb && sudo service elasticsearch restart
5858
- ./dev/travis/before_install.sh
5959
install: composer install --no-interaction
6060
before_script: ./dev/travis/before_script.sh

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/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"magento/module-store": "*",
1313
"magento/module-catalog-inventory": "*",
1414
"magento/framework": "*",
15-
"elasticsearch/elasticsearch": "~2.0|~5.1"
15+
"elasticsearch/elasticsearch": "~2.0|~5.1|~6.1"
1616
},
1717
"suggest": {
1818
"magento/module-config": "*"

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

1725
<virtualType name="Magento\Elasticsearch\Model\Layer\Search\Context" type="Magento\Catalog\Model\Layer\Search\Context">
1826
<arguments>

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/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"magento/module-search": "*",
1010
"magento/module-store": "*",
1111
"magento/module-elasticsearch": "*",
12-
"elasticsearch/elasticsearch": "~6.1"
12+
"elasticsearch/elasticsearch": "~2.0|~5.1|~6.1"
1313
},
1414
"suggest": {
1515
"magento/module-config": "*"

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">

dev/tests/integration/testsuite/Magento/Elasticsearch/Elasticsearch5/SearchAdapter/AdapterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ protected function setUp()
4343
$contentManager = $this->getMockBuilder(\Magento\Elasticsearch\SearchAdapter\ConnectionManager::class)
4444
->disableOriginalConstructor()
4545
->getMock();
46-
$this->clientMock = $this->getMockBuilder(\Magento\Elasticsearch\Model\Client\Elasticsearch::class)
46+
$this->clientMock = $this->getMockBuilder(\Magento\Elasticsearch6\Model\Client\Elasticsearch::class)
4747
->disableOriginalConstructor()
4848
->getMock();
4949
$contentManager
@@ -78,7 +78,7 @@ protected function setUp()
7878

7979
/**
8080
* @magentoAppIsolation enabled
81-
* @magentoConfigFixture default/catalog/search/engine elasticsearch
81+
* @magentoConfigFixture default/catalog/search/engine elasticsearch6
8282
* @magentoConfigFixture current_store catalog/search/elasticsearch_index_prefix adaptertest
8383
* @return void
8484
*/

0 commit comments

Comments
 (0)