Порядок результатов Elasticsearch меняется на веб-интерфейсе
Я работаю с magento 2.4.2 и elasticsearch 7.10.2
Я вижу, что даже несмотря на то, что результаты в elasticsearch правильно упорядочены в бэкэнде, во фронтенде неправильно отображаются. Вот пример, язык испанский, поэтому "lapices de colores" означает "цветные карандаши".
Если я запустил эту команду:
curl 'localhost:9200/store_product_1_v118/_search?pretty&q=lapices+de+colores'
Я получаю следующие результаты (для удобства я показываю только первое попадание)
"hits" : [
{
"_index" : "store_product_1_v118",
"_type" : "document",
"_id" : "9323",
"_score" : 13.052037,
"_source" : {
"store_id" : "1",
"sku" : "PEL800049",
"status" : 1,
"status_value" : "Habilitado",
"visibility" : 4,
"tax_class_id" : 2,
"tax_class_id_value" : "Taxable Goods",
"name" : "lapices de colores pastel pelikan x12",
"url_key" : "lapices-de-colores-pastel-pelikan-x12",
"category_ids" : [
2,
135,
139,
214,
452
],
"position_category_2" : "10000",
"name_category_2" : "RA▒~MZ ",
"position_category_135" : "0",
"name_category_135" : "ESCOLAR",
"position_category_139" : "0",
"name_category_139" : "LAPICES DE COLORES",
"position_category_214" : "0",
"name_category_214" : "LIBRERIA ",
"position_category_452" : "0",
"name_category_452" : "▒~ZTILES ESCOLARES Y KITS",
"price_0_1" : "570.000000",
"price_1_1" : "570.000000",
"price_2_1" : "570.000000",
"price_3_1" : "570.000000"
....
Но если я запустил тот же запрос в магазине, это URL:
https://store24.com.ar/catalogsearch/result/?q=lapices+de+colores
Результаты, хотя и связаны, но не те, которые дает elasticsearch.
В админке в магазинах-> Каталог-> Каталог-> «Сортировать по товарным объявлениям» устанавливается по позиции.
Я предполагаю, что это проблема с шаблоном, но я не знаю, как это исправить. Вот файл sorter.phtml, используемый шаблоном:
<div class="toolbar-sorter sorter">
<label class="sorter-label" for="sorter"><?php /* @escapeNotVerified */ echo __('Sort by') ?></label>
<select id="sorter" data-role="sorter" class="sorter-options">
<?php foreach ($block->getAvailableOrders() as $_key => $_order): ?>
<option value="<?php /* @escapeNotVerified */ echo $_key; ?>"
<?php if ($block->isOrderCurrent($_key)): ?>
selected="selected"
<?php endif; ?>
>
<?php echo $block->escapeHtml(__($_order)) ?>
</option>
<?php endforeach; ?>
</select>
<?php if ($block->getCurrentDirection() == 'desc'): ?>
<a title="<?php /* @escapeNotVerified */ echo __('Set Ascending Direction') ?>" href="#" class="action sorter-action sort-desc" data-role="direction-switcher" data-value="asc">
<span><?php /* @escapeNotVerified */ echo __('Set Ascending Direction') ?></span>
</a>
<?php else: ?>
<a title="<?php /* @escapeNotVerified */ echo __('Set Descending Direction') ?>" href="#" class="action sorter-action sort-asc" data-role="direction-switcher" data-value="desc">
<span><?php /* @escapeNotVerified */ echo __('Set Descending Direction') ?></span>
</a>
<?php endif; ?>
Я не уверен, где и что искать, есть идеи?