GithubHelp home page GithubHelp logo

smile-sa / elasticsuite Goto Github PK

View Code? Open in Web Editor NEW
760.0 760.0 336.0 27.58 MB

Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch

Home Page: https://elasticsuite.io

License: Open Software License 3.0

PHP 77.56% JavaScript 18.87% HTML 2.74% CSS 0.11% Less 0.72%
autocomplete elasticsearch facets magento magento2 merchandising module search search-engine

elasticsuite's Issues

reverse sort order and "missing"

It should be possible to reverse the sort order and the "missing" located in module-elasticsuite-core/Search/Adapter/Elasticsuite/Request/SortOrder/Builder.php

Error on validate catgory virtual

Virtual rule

( ! ) Fatal error: Call to a member function getConditions() on array in /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog-rule/Block/Product/Conditions.php on line 145
#   Time    Memory  Function    Location
1   0.0000  241848  {main}( )   ../index.php:0
2   0.0385  4774504 Magento\Framework\App\Bootstrap->run( ) ../index.php:39
3   0.0391  4821360 Magento\Framework\App\Http\Interceptor->launch( )   ../Bootstrap.php:258
4   0.0414  5152840 Magento\Framework\App\Http\Interceptor->___callPlugins( )   ../Interceptor.php:26
5   0.0415  5167824 Magento\Framework\App\Http->launch( )   ../Interceptor.php:146
6   0.0769  8885976 Magento\Framework\App\FrontController\Interceptor->dispatch( )  ../Http.php:135
7   0.0783  8813576 Magento\Framework\App\FrontController\Interceptor->___callPlugins( )    ../Interceptor.php:26
8   0.0879  9492808 Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch( )    ../Interceptor.php:142
9   0.0881  9492824 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}( )  ../DbStatusValidator.php:69
10  0.0881  9493296 Magento\Framework\Interception\Chain\Chain->invokeNext( )   ../Interceptor.php:138
11  0.0881  9493504 Magento\Framework\App\FrontController\Interceptor->___callParent( ) ../Chain.php:70
12  0.0881  9493768 Magento\Framework\App\FrontController->dispatch( )  ../Interceptor.php:74
13  0.1458  14356456    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->dispatch( ) ../FrontController.php:55
14  0.1465  14406616    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->___callPlugins( )   ../Interceptor.php:39
15  0.2109  17418064    Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch( )  ../Interceptor.php:142
16  0.2109  17418152    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->Magento\Framework\Interception\{closure}( ) ../MassactionKey.php:33
17  0.2109  17418456    Magento\Framework\Interception\Chain\Chain->invokeNext( )   ../Interceptor.php:138
18  0.2132  17607072    Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch( ) ../Chain.php:67
19  0.2199  17794944    Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}( )   ../Authentication.php:143
20  0.2199  17795248    Magento\Framework\Interception\Chain\Chain->invokeNext( )   ../Chain.php:63
21  0.2199  17795456    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->___callParent( )    ../Chain.php:70
22  0.2199  17795808    Magento\Backend\App\AbstractAction->dispatch( ) ../Interceptor.php:74
23  0.2249  18239880    Magento\Framework\App\Action\Action->dispatch( )    ../AbstractAction.php:226
24  0.2277  18382640    Magento\Catalog\Controller\Adminhtml\Category\Edit\Interceptor->execute( )  ../Action.php:102
25  0.2277  18383376    Magento\Catalog\Controller\Adminhtml\Category\Edit->execute( )  ../Interceptor.php:24
26  0.3273  26193920    Magento\Backend\Model\View\Result\Page\Interceptor->setActiveMenu( )    ../Edit.php:102
27  0.3273  26194128    Magento\Backend\Model\View\Result\Page->setActiveMenu( )    ../Interceptor.php:24
28  0.3273  26194280    Magento\Framework\View\Layout\Interceptor->getBlock( )  ../Page.php:59
29  0.3273  26194384    Magento\Framework\View\Layout->getBlock( )  ../Interceptor.php:414
30  0.3273  26194432    Magento\Framework\View\Layout->build( ) ../Layout.php:859
31  0.3273  26194536    Magento\Framework\View\Layout\Builder->build( ) ../Layout.php:244
32  0.3283  26246392    Magento\Framework\View\Page\Builder->generateLayoutBlocks( )    ../Builder.php:65
33  0.3324  26424616    Magento\Framework\View\Layout\Builder->generateLayoutBlocks( )  ../Builder.php:55
34  0.3325  26428616    Magento\Framework\View\Layout\Interceptor->generateElements( )  ../Builder.php:129
35  0.3325  26428992    Magento\Framework\View\Layout->generateElements( )  ../Interceptor.php:89
36  0.3332  26628816    Magento\Framework\View\Layout\GeneratorPool->process( ) ../Layout.php:327
37  0.3667  29392328    Magento\Framework\View\Layout\Generator\UiComponent->process( ) ../GeneratorPool.php:86
38  0.3667  29393032    Magento\Framework\View\Layout\Generator\UiComponent->generateComponent( )   ../UiComponent.php:93
39  0.4797  33516656    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:126
40  0.5009  34701896    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:145
41  0.5296  37370184    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:145
42  0.5371  37405848    Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent( )    ../UiComponent.php:145
43  0.5371  37405848    Magento\Ui\Component\HtmlContent->prepare( )    ../UiComponent.php:148
44  0.5371  37406752    Magento\Framework\View\Element\AbstractBlock->toHtml( ) ../HtmlContent.php:50
45  0.5372  37407616    Smile\ElasticsuiteVirtualCategory\Block\Adminhtml\Catalog\Category\VirtualRule->_toHtml( )  ../AbstractBlock.php:659
46  0.5384  37519640    Magento\Framework\Data\Form->toHtml( )  ../VirtualRule.php:62
47  0.5384  37522712    Magento\Framework\Data\Form\Element\AbstractElement->toHtml( )  ../Form.php:322
48  0.5384  37522760    Magento\Framework\Data\Form\Element\Text->getHtml( )    ../AbstractElement.php:467
49  0.5384  37523328    Magento\Framework\Data\Form\Element\AbstractElement->getHtml( ) ../Text.php:43
50  0.5385  37523560    Smile\ElasticsuiteCatalogRule\Block\Product\Conditions->render( )   ../AbstractElement.php:453
51  0.5385  37523840    Magento\Framework\View\Element\AbstractBlock->toHtml( ) ../Conditions.php:93
52  0.5386  37526104    Magento\Backend\Block\Template->_toHtml( )  ../AbstractBlock.php:659
53  0.5386  37527616    Magento\Framework\View\Element\Template->_toHtml( ) ../Template.php:104
54  0.5388  37528368    Magento\Framework\View\Element\Template->fetchView( )   ../Template.php:279
55  0.5390  37531600    Magento\Framework\View\TemplateEngine\Php->render( )    ../Template.php:255
56  0.5390  37549392    include( '/var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog-rule/view/adminhtml/templates/product/conditions.phtml' ) ../Php.php:59
57  0.5391  37551368    Smile\ElasticsuiteCatalogRule\Block\Product\Conditions->getInputHtml( ) ../conditions.phtml:35

Small mistake in the help message of "Fuzziness Prefix Length"

Open the menu "ElasticSuite > Search relevance"
Open the tab "spellchecking configuration"

The help message for the setting "Fuzziness Prefix Length" is:
"Allowed values "0", "1" or "AUTO". See doc here for more information"

This message should be:
"Allowed values "1", "2" or "AUTO". See doc here for more information"

Explanation:

  • Value 0 doesn't make sense (you should disable fuzzy search).
  • Value 2 is working and allows 2 wrong letters (I tested it)

Same remark for the setting "Phonetic fuzziness value"

RFC : Search products by SKU

Searches by SKU currently return 0 results on our Magento 2.1 instances with Elasticsuite 2.2.
Searching for names or other custom attribute values seem to return the correct results.

The "Use in search" configuration is currently activated on our "sku" product attribute, but it seems to have no effect on our results.

The same problem can be observed on the demo store (http://demo.magento-elastic-suite.io/), although I don't know if the SKU attribute was configured to be used in searches there.

Our current configuration is :

  • Elasticsuite 2.2.0-alpha2
  • Magento 2.1.0
  • Elasticsearch 2.3.5

No check against $options in attribute filter layer. [email protected]

1 exception(s):
Exception #0 (Exception): Warning: Invalid argument supplied for foreach() in /www/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Layer/Filter/Attribute.php on line 216

Exception #0 (Exception): Warning: Invalid argument supplied for foreach() in /www/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Layer/Filter/Attribute.php on line 216

A fix was if (count($options)) { ... }, sadly no time to push a fix guys (deadlines my side).

RFC : Virtual categories : improve product page URL when using category path in product URL

Initial conditions:

  • In Store/Configuration > Catalog > Catalog, set "Use Categories Path for Product URLs" to "YES"
  • Create a virtual category
  • Click on a product

--> The URL of the product page is an URL not rewritten, example: https://www.xxxxxxx.eu/uk/catalog/product/view/id/13672/category/643

We would like to improve the URL in this case to have a "clean" URL like this:
http://base_url/virtual-category-name/product-name

Fix various errors detected by static testing

bin/magento dev:tests:run static detects some errors :

  • duplicate keys in DI
  • layouts mistakes (especially in tracker module)
  • cosmetics in composer.json files (essentially "no space after colon")

Filter Attribute_name and attribute_code to remove invalid characters to elasticsearch?

Right now attributes with a period (.) in their name cause a full document failure after pushing to bulk_search indexer.

How hard would it be to filter out invalid characters before submitting to elasticsearch?

Is it possible to overload fields to cause extraneous functionality like sql-injection due to non-filtering of fields before bulk_add/edit/search?

llegal_argument_exception: Alias ... has more than one indices associated with it

Error:
illegal_argument_exception: Alias [magento2_blue_eng_thesaurus] has more than one indices associated with it [[magento2_blue_eng_thesaurus_20160815_085616, magento2_blue_eng_thesaurus_20160811_161751]], can't execute a single index op

Trace:
#0 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(632): Elasticsearch\Connections\Connection->tryDeserializeError(Array, 'Elasticsearch\C...')
#1 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(553): Elasticsearch\Connections\Connection->tryDeserialize400Error(Array)
#2 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(262): Elasticsearch\Connections\Connection->process4xxError(Array, Array, Array)
#3 /var/www/releases/d-N318X92ZG/vendor/react/promise/src/FulfilledPromise.php(25): Elasticsearch\Connections\Connection->Elasticsearch\Connections{closure}(Array)
#4 /var/www/releases/d-N318X92ZG/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php(55): React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
#5 /var/www/releases/d-N318X92ZG/vendor/guzzlehttp/ringphp/src/Core.php(341): GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
#6 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(283): GuzzleHttp\Ring\Core::proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
#7 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(159): Elasticsearch\Connections\Connection->Elasticsearch\Connections{closure}(Array, Object(Elasticsearch\Connections\Connection), Object(Elasticsearch\Transport), Array)
#8 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Transport.php(99): Elasticsearch\Connections\Connection->performRequest('GET', '/magento2_blue_...', Array, NULL, Array, Object(Elasticsearch\Transport))
#9 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Endpoints/AbstractEndpoint.php(79): Elasticsearch\Transport->performRequest('GET', '/magento2_blue_...', Array, NULL, Array)
#10 /var/www/releases/d-N318X92ZG/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Namespaces/IndicesNamespace.php(957): Elasticsearch\Endpoints\AbstractEndpoint->performRequest()
#11 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-thesaurus/Model/Index.php(136): Elasticsearch\Namespaces\IndicesNamespace->analyze(Array)
#12 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-thesaurus/Model/Index.php(90): Smile\ElasticsuiteThesaurus\Model\Index->getSynonymRewrites(4, 'rice', 'synonym')
#13 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-thesaurus/Plugin/QueryRewrite.php(97): Smile\ElasticsuiteThesaurus\Model\Index->getQueryRewrites(Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), 'rice')
#14 [internal function]: Smile\ElasticsuiteThesaurus\Plugin\QueryRewrite->aroundCreate(Object(Smile\ElasticsuiteCore\Search\Request\Query\Fulltext\QueryBuilder\Interceptor), Object(Closure), Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), Array, 1)
#15 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#16 /var/www/releases/d-N318X92ZG/var/generation/Smile/ElasticsuiteCore/Search/Request/Query/Fulltext/QueryBuilder/Interceptor.php(27): Smile\ElasticsuiteCore\Search\Request\Query\Fulltext\QueryBuilder\Interceptor->___callPlugins('create', Array, Array)
#17 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/Query/Builder.php(84): Smile\ElasticsuiteCore\Search\Request\Query\Fulltext\QueryBuilder\Interceptor->create(Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), Array, 1)
#18 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/Builder.php(155): Smile\ElasticsuiteCore\Search\Request\Query\Builder->createQuery(Object(Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration), Array, Array, 1)
#19 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(470): Smile\ElasticsuiteCore\Search\Request\Builder->create(4, 'catalog_view_co...', 0, 5, Array, Array, Array, Array, Array)
#20 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(367): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->prepareRequest()
#21 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Data/Collection/AbstractDb.php(331): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFiltersBefore()
#22 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(403): Magento\Framework\Data\Collection\AbstractDb->_renderFilters()
#23 /var/www/releases/d-N318X92ZG/vendor/magento/module-eav/Model/Entity/Collection/AbstractCollection.php(906): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFilters()
#24 /var/www/releases/d-N318X92ZG/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection.php(719): Magento\Eav\Model\Entity\Collection\AbstractCollection->load(false, false)
#25 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Data/Collection.php(820): Magento\Catalog\Model\ResourceModel\Product\Collection->load()
#26 /var/www/releases/d-N318X92ZG/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Autocomplete/Product/DataProvider.php(112): Magento\Framework\Data\Collection->getIterator()
#27 /var/www/releases/d-N318X92ZG/vendor/magento/module-search/Model/Autocomplete.php(32): Smile\ElasticsuiteCatalog\Model\Autocomplete\Product\DataProvider->getItems()
#28 /var/www/releases/d-N318X92ZG/vendor/magento/module-search/Controller/Ajax/Suggest.php(44): Magento\Search\Model\Autocomplete->getItems()
#29 /var/www/releases/d-N318X92ZG/var/generation/Magento/Search/Controller/Ajax/Suggest/Interceptor.php(24): Magento\Search\Controller\Ajax\Suggest->execute()
#30 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Action/Action.php(102): Magento\Search\Controller\Ajax\Suggest\Interceptor->execute()
#31 [internal function]: Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))
#32 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(74): call_user_func_array(Array, Array)
#33 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Search\Controller\Ajax\Suggest\Interceptor->___callParent('dispatch', Array)
#34 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'designLoader')
#35 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Action/Plugin/Design.php(39): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#36 [internal function]: Magento\Framework\App\Action\Plugin\Design->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#37 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#38 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'contextPlugin')
#39 /var/www/releases/d-N318X92ZG/vendor/magento/module-store/App/Action/Plugin/Context.php(106): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#40 [internal function]: Magento\Store\App\Action\Plugin\Context->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#41 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#42 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'customer-app-ac...')
#43 /var/www/releases/d-N318X92ZG/vendor/magento/module-customer/Model/App/Action/ContextPlugin.php(61): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#44 [internal function]: Magento\Customer\Model\App\Action\ContextPlugin->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#45 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#46 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'storeCheck')
#47 /var/www/releases/d-N318X92ZG/vendor/magento/module-store/App/Action/Plugin/StoreCheck.php(44): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#48 [internal function]: Magento\Store\App\Action\Plugin\StoreCheck->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#49 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#50 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'weee-app-action...')
#51 /var/www/releases/d-N318X92ZG/vendor/magento/module-weee/Model/App/Action/ContextPlugin.php(112): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#52 [internal function]: Magento\Weee\Model\App\Action\ContextPlugin->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#53 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#54 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Search...', 'dispatch', Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Array, 'tax-app-action-...')
#55 /var/www/releases/d-N318X92ZG/vendor/magento/module-tax/Model/App/Action/ContextPlugin.php(91): Magento\Search\Controller\Ajax\Suggest\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))
#56 [internal function]: Magento\Tax\Model\App\Action\ContextPlugin->aroundDispatch(Object(Magento\Search\Controller\Ajax\Suggest\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#57 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#58 /var/www/releases/d-N318X92ZG/var/generation/Magento/Search/Controller/Ajax/Suggest/Interceptor.php(39): Magento\Search\Controller\Ajax\Suggest\Interceptor->___callPlugins('dispatch', Array, Array)
#59 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/FrontController.php(55): Magento\Search\Controller\Ajax\Suggest\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#60 [internal function]: Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#61 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(74): call_user_func_array(Array, Array)
#62 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#63 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'requestPreproce...')
#64 /var/www/releases/d-N318X92ZG/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(89): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#65 [internal function]: Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#66 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#67 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#68 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#69 [internal function]: Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#70 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#71 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#72 /var/www/releases/d-N318X92ZG/vendor/magento/module-page-cache/Model/App/FrontController/VarnishPlugin.php(55): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#73 [internal function]: Magento\PageCache\Model\App\FrontController\VarnishPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#74 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#75 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#76 /var/www/releases/d-N318X92ZG/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(68): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))
#77 [internal function]: Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#78 /var/www/releases/d-N318X92ZG/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#79 /var/www/releases/d-N318X92ZG/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#80 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Http.php(115): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#81 /var/www/releases/d-N318X92ZG/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#82 /var/www/releases/d-N318X92ZG/pub/index.php(37): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#83 {main}

Memory Exhaustion when Viewing Certain Categories

For a certain category and it's sub categories, we are experiencing memory exhaustion. This is actually happening for 1 category(Home Appliances) and most of its sub categories. It does not have the most number of products but this still happens. Just to test, i have tried increasing the php allowed memory size to 1G just to test.
When this happens, a blank page shows on the frontend. My Catalog size is 9k and I am running elastic search on 2 aws ec2 servers with 2G each.

Price slider

Currency and price formatting is not applied anymore.

Did you test it after you have developped the unit generic slider ?

RFC : Advanced Search Support

Hello,

I have installed this extension for my project and search and autocomplete is working fine. But when i am trying to search via advanced search then it shows the blank page.

I have already seen the same error on your demo site.

So can you please help to solve this error?

Thanks

i18n for all modules

Warning :

  • Fix the way product sorter does apply translations before (strings into the HTML templates are not detected by the magento phrases collector).
  • Fix empty strings (not supported by Magento) into the thesaurus blocks (expansions).

Not sure about the spellcheck accuracy in autocomplete

I have some doubts (?) about the accuracy of the "spellcheck" feature in autocomplete.

For example on the store http://demo.magento-elastic-suite.io/
if you search "fytness", the autocomplete doesn't suggest any product, but the search engine suggest "fitness" products.

I did some tests with Magento 1 and it seems that the autocomplete engine was much more tolerant to mistakes during typing. On Magento 2 almost no mistakes are allowed.

Possible explanation: Maybe only the phonetic search is applied in autocomplete without fuzzy search ?
Example:
"messengeer" suggest products with "messenger"
but
"messengeZr" doesn't suggest any product

Elastic Suite 2.2.x Magento 2.1 Custom Theme compatibility issue.

Installed fresh copy of Magento 2.1 with elasticsuite 2.2.x
Fully Functional 2.1 with Elastic suite working correctly.

Preconditions

  1. Magento 2.1, php7.0.8, mysql 5.7, nginx, Elastic Suite 2.2.x
  2. Proto Magento 2.1 theme version 2.3.2

Steps to reproduce

  1. Verify Magento 2.1 & elasticsuite 2.2.x is functioning
  2. Copy Theme files to Magento folder
  3. Run php bin/magento setup:upgrade
  4. Run php bin/magento setup:di:compile
  5. Run php bin/magento setup:static-content:deploy

Expected result

  1. Correctly Deployed Static content of the New custom Porto theme.

Actual result

  1. Result is a known Error with _module.less issue but not with Luma or Blank Theme
  2. Results An issue "variable @autocomplete-item__border is undefined in file"
    3.
    _module less

I know this issue is known and that's the reason for using the 2.2.x version to begin using Elastic Suite but before i go complaining to the Theme dev I wanted to see what Team-Smile has to say.
Also for dev purposes i can supply a custom them for your trouble shooting.

DataProvider still is MySQL

I think that the module is still missing a DataProvider.
Indeed in /module-elasticsuite-catalog/etc/di.xml is it normal that the DataProviderFactory still point to the MySQL one ?

<type name="Magento\Framework\Search\Dynamic\DataProviderFactory">
    <arguments>
        <argument name="dataProviders" xsi:type="array">
            <item name="elasticsuite" xsi:type="string">Magento\CatalogSearch\Model\Adapter\Mysql\Dynamic\DataProvider</item>
        </argument>
    </arguments>
</type>

Error after magento 2.0.9 update

Fatal error: Class 'Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Select' not found in /var/www/damartch/src/vendor/magento/framework/Code/Generator/EntityAbstract.php on line 331

error when using table_prefixes

The module seems broken when table prefixes are configured.

error on setup:upgrade:

Base table or view not found: 1146 Table 'magento.catalog_category_entity' doesn't exist, query was: INSERT INTO lei_catalog_category_entity_int (attribute_id, entity_id, value) SELECT 131 as attrib
ute_id, catalog_category_entity.entity_id, 1 as value FROM catalog_category_entity ON DUPLICATE KEY UPDATE attribute_id = VALUES(attribute_id), entity_id = VALUES(entity_id), value = VALUES(value)

I searched around and the problem occurs in updateAttributeDefaultValue (InstallData.php), where the insertFromSelect produces the illegal query.

Wiki mistake (module enable command)

Hi,
There's a mistake in the wiki, at page 'ModuleInstall'

Command line :
bin/magento module:enable Smile_ElasticSuiteCore Smile_ElasticSuiteCatalog Smile_ElasticSuiteSwatches Smile_ElasticSuiteCatalogRule Smile_ElasticSuiteVirtualCategory Smile_ElasticSuiteThesaurus Smile_ElasticSuiteTracker

must be :
bin/magento module:enable Smile_ElasticsuiteCore Smile_ElasticsuiteCatalog Smile_ElasticsuiteSwatches Smile_ElasticsuiteCatalogRule Smile_ElasticsuiteVirtualCategory Smile_ElasticsuiteThesaurus Smile_ElasticsuiteTracker

2.2.x-dev main.ERROR: Bulk index operation failed 1 times in index magento2_default_catalog_product_20160711_144337 for type product Error (mapper_parsing_exception) : failed to parse [option_text_attribute_s_12420] Failed doc ids sample : 1585697

php -q bin/magento reindex:catalogsearch_fulltext

[2016-07-11 14:45:35] main.ERROR: Bulk index operation failed 1 times in index magento2_default_catalog_product_20160711_144337 for type product Error (mapper_parsing_exception) : failed to parse [option_text_attribute_s_12420] Failed doc ids sample : 1585697 [] []
main.ERROR: Bulk index operation failed 2 times in index magento2_default_catalog_product_20160711_144337 for type product Error (mapper_parsing_exception) : failed to parse [option_text_attribute_s_12420] Failed doc ids sample : 1628343, 1628350 [] []

capture0711a
capture0711b

Any thoughts on why the indexer is failing this attribute and document?

No getType on RequestInterface

While doing a search throught the nativ REST API
I stumble upon this error :

Fatal error: Call to undefined method Magento\Framework\Search\Request::getType()

Which come from the fact that in Search/Adapter/ElasticSuite/Adapter.php on l.75 and l.94 the function await a Magento\Framework\Search\RequestInterface which has no getType method.

Using this module with a custom theme does not display autocomplete as expected

This module works perfectly with Magento Custom Luma theme. However for a custom theme, the structure of autocomplete differs from what is obtainable with the Luma theme. I have removed the custom theme's implementation of Search but I can see that it picks the Magento's Default implementation of item.phtml which uses <li> tags.
Any suggestions as to extra steps to take to make a custom theme display Autocomplete like Luma does?

Magento 2.1, error sortParams

we have an error on search
Exception #0 (Exception): Notice: Undefined index: sortParams in /var/www/damartch/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection/ProductLimitation.php on line 45

Exception #0 (Exception): Notice: Undefined index: sortParams in /var/www/damartch/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection/ProductLimitation.php on line 45
#0 /var/www/damartch/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection/ProductLimitation.php(45): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/var/www/damart...', 45, Array)
#1 /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(504): Magento\Catalog\Model\ResourceModel\Product\Collection\ProductLimitation->offsetGet('sortParams')
#2 /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(475): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->prepareSortOrders()
#3 /var/www/damartch/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php(383): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->prepareRequest()
#4 /var/www/damartch/vendor/magento/framework/Data/Collection/AbstractDb.php(338): Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFiltersBefore()

Inventory management

  • Is in stock indexing for configurable products
  • Apply the config to autocomplete

Virtual Categories preview showing empty list.

This issue seems to occurs on multiple websites instance.

Symptoms :

  • when building a virtual category in back-office, the preview remains always empty "Your product selection is empty".
  • the virtual category in front office is fine, displaying products matching the rule that have been set in the back-office.

Attribute faceting

For example, we have a color attribute and a base color attribute. The configurable products are decline by color (& size). But for customer experience, we need to be able to filter based on "base" color.

But, the displayed base colors are from the configurable product (instead of simple product).
We use a visual swatch for color base attribute and we are obliged to select a color for configurable product.


MyConfigurable
Color base - white

MyFirstSimple
Color - white
Color base - white

MySecondSimple
Color - crimson
Color base - Red

MyThirdSimple
Color - cherry red
Color base - Red

We have only white value in color base facet.

bin/magento setup:static-content:deploy gives error

Hi there.

First: the extension looks VERY promising, and would defintly use it on live site when i'm ready with conversion to magento 2.

I am on:

Ubuntu 16.04
Nginx 1.10
Php 7.0.7
latest elasticsearch
Magento 2.1

I have followed the how-to to install. I am now at the point that i want to login. And beceause i didn't saw logo of login i cleared the cache and did command: bin/magento setup:static-content:deploy .

I get the following error:
elastic-error

What am I doing wrong?

Thanks!

Fatal error: Smile\ElasticsuiteCore\Search\Adapter\Elasticsuite\Response\QueryResponse

When running on Magento 2.1.0

setup:di:compile

the output of Repositories code generation is a fatal error

Fatal error: Class Smile\ElasticsuiteCore\Search\Adapter\Elasticsuite\Response\QueryResponse cannot implement previously implemented interface IteratorAggregate in /home/httpd/www/_test-dev.test.summit.co.uk/vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Adapter/Elasticsuite/Response/QueryResponse.php on line 27

Anchor attribute in InstallData.php

Hi,

Between https://github.com/Smile-SA/elasticsuite/blob/master/src/module-elasticsuite-catalog/Setup/InstallData.php and https://github.com/Smile-SA/elasticsuite/blob/2.2.x/src/module-elasticsuite-catalog/Setup/InstallData.php, there is a difference with "updateAttributeDefaultValue" method and "is_anchor" parameter: a new "excludedIds" parameter is added.

I have an issue with "is_anchor" attribute of "tree root id" category which is set to 1 because of master version, I guess. Indeed, I can't add category when I try to save a product.

Should we force "is_anchor" attribute of "tree root id" category to 0 in a update data setup?

Thanks,

Error index Fulltext (Undefined offset) on Magento 2.1

Hello,

With Magento 2.1 and Elasticsearch 2.2.dev, I have this problem.

php bin/magento indexer:reindex catalogsearch_fulltext

Catalog Search indexer process unknown error:
Notice: Undefined offset: 153 in /var/www/vhosts/.../httpdocs/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/Product/Indexer/Fulltext/Datasource/AttributeData.php on line 155

I think this is a bug in the html code for product description. How to find the offending product?

Thank you for your help.

Setup:static-content:deploy less compilation error

Hi,

with the newest Magento 2.1.0, static content deploy throws an error:

variable @autocomplete-item-border is undefined in file /home/httpd/www/_test-dev.test.summit.co.uk/var/view_preprocessed/css/frontend/Magento/blank/en_US/Smile_ElasticsuiteCore/css/source/_module.less in _module.less on line 30, column 34
  28|                 border-bottom: 0;
  29|             }
  30|             .lib-css(border-top, @autocomplete-item-border);
  31|             cursor: default;
  32|             margin: 0;
  33|             padding: @indent__xs @indent__xl @indent__xs @indent__s;

Fulltext search over the codebase suggests that the variable is not defined anywhere and I believe that the variable only has been renamed yet I am unable to find a fix for that.

Lukas

Unable To Search Multiple Select Attribute Code in Store Frontend "Your search returned no results."

Preconditions

  1. Magento 2.1
  2. ElasticSuite 2.2dev & elasticserver running.

Steps to reproduce

  1. Create a New Attribute Select Attribute Type "Multiple Select"
  2. Assign a few Options in the Admin & Default Store View Box's
  3. Set in Storefront Properties "Use in Search" Select Yes & Save Attribute.
  4. Add that new Attribute to an Attribute Set Mine was Default Set.
  5. Finally Reindex/Clear Cache
  6. Create new product using a Attribute Set you added your New Multiple Select Attribute too Selecting one or all the attributes that you added and save the Product.
  7. Reindex & Flush Cache again.

Expected result

  1. Search Attribute from the Multiple Select Attribute and Display The New Product we just created.

Actual result

  1. "Your search returned no results."

During the Search Autocomplete shows the new Product but if you Simply search the Attribute no products will be displayed. This issue only occurs when using the Multiple Select Attribute Option.

Proof of error I Recreated a Attribute using Text Field and entered text and that was searchable but when setting up a site filtering through text fields just isn't probable

Something is broken between the Displayed search and the autocomplete.

Tracking code inside javascript, pinging back to t.smile.eu

Hello,

Was wondering why the server is pinging back, and why/what is tracked:

// Send the tag to the remote server
// Append a transparent pixel to the body
function sendTag(forceCollect) {
if (this.trackerSent === false || forceCollect === true) {
var trackingUrl = getTrackerUrl.bind(this)();
var bodyNode = document.getElementsByTagName('body')[0];
var imgNode = document.createElement('img');
imgNode.setAttribute('src', trackingUrl);
setTrackerStyle(imgNode);
bodyNode.appendChild(imgNode);
this.trackerSent = true;
this.vars = {};

        if (window.location.protocol === "http:") {
            var extImgNode = document.createElement('img');
            extImgNode.setAttribute('src', "http://t.smile.eu/h.png?magento2");
            setTrackerStyle(extImgNode);
            bodyNode.appendChild(extImgNode);
        }
    }
}

Thanks.

Module Elasticsuite_Catalog InstallSchema

There is a useless constructor in Smile\ElasticsuiteCatalog\Setup\InstallSchema class :

/**
 * InstallSchema constructor.
 *
 * @param \Magento\Eav\Setup\EavSetup $eavSetup The EAV Setup
 */
public function __construct(EavSetup $eavSetup)
{
    $this->eavSetup = $eavSetup;
}

The constructor initiate a never used var and causes errors when installing magento with elasticsuite.

Could you not directly access pricing tables when using autocomplete?

I have added plugin to surround AroundGetPRice .. to replace pricing engine method with my own cost+plus rules.

Since I did this plugin -> I notice autocomplete no longer responds with correct price!! just 0 which is odd since the index shows a valid price but I am guessing my modification to AroundGetPrice plugin is messing up this call? Perhaps since I use optional-attribute 'cost' which has to be scoped to display in product_listing or it does not function/retrieve any cost! 0

Or perhaps AutoComplete does not access attribute GetCost ->getdata('cost') in scope and retrieves cost of 0/null and my routines use that pricing level as cost multiplier!?

Any thoughts why auto-complete would only be affected by this?

Class 'Magento\Catalog\Model\Layer\Filter\ItemFactory' not found

$ bin/magento dev:tests:run static
---- dev/tests/static> php ./vendor/phpunit/phpunit/phpunit

Fatal error: Class 'Magento\Catalog\Model\Layer\Filter\ItemFactory' not found in vendor/smile-sa/elasticsuite/src/module-elasticsuite-catalog/Model/Layer/Filter/Item/AttributeFactory.php on line 23

I know that class will exists after the Factory gets created automatically however for static testing fails each time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.