Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Любые вопросы от новичков  ->  Как улучшить поиск по каталогу?

Если Вы только начинаете - пишите в этот раздел

Добавлено: 03.10.15 18:16:02 #1



Регистрация: 24.02.15
Сообщений: 20


Обратиться по имени

Есть товар, например, mlt-d203. На сайте используется поиск по каталогу.
Необходимо чтобы пользователь который зашел на сайт смог найти этот товар по следующим запросам:
mlt-d203
mltd203
203
mlt203
mlt-203
d203

Может кто знает, как реализовать это? Звездочка слева от искомого слова снимает ряд вопросов, но далеко не все.

Попробовал использовать свойство с типом текст и вводить туда варианты всех возможных значений, но поиск по каталогу не ищет по свойствам? Может можно включить это вариант?

Есть еще вариант, в описании товара сделать скрытый блок с "display:none;" и туда все вписать, тогда все работает, но как то не очень вариант, по идее скрытый текст на странице не добавляет плюсов в поисковой системе.

Всем спасибо!



История запросов при поиске по каталогу - Голосуй!
Добавлено: 04.10.15 17:11:09 #2



Регистрация: 26.05.08
Сообщений: 984


Обратиться по имени

Надо попробовать добавить созданное поле с типом "текст" в список полей, по которым строится поисковый индекс, а затем произвести переиндексацию.

К сожалению, в интерфейсе системы просто так его добавить нельзя. Но можно обратиться в службу поддержки, возможно они помогут в рамках поддержки активной лицензии.

Еще можно попробовать добавить также все значения в мета теги товара, по ним, насколько я помню, поисковый индекс строится по умолчанию.



Добавлено: 04.10.15 17:45:24 #3



Регистрация: 24.02.15
Сообщений: 20


Обратиться по имени

Евгений Лапин:
можно обратиться в службу поддержки

Ок, уже запрос отправил, но пока выходные, может завтра ответят

Евгений Лапин:
в мета теги товара

Это пробовал, у меня не сработало ... на демо сайте так же не работает. Может тоже что-то включить надо.



История запросов при поиске по каталогу - Голосуй!
Добавлено: 04.10.15 17:51:01 #4



Регистрация: 26.05.08
Сообщений: 984


Обратиться по имени

lodyr1:
Это пробовал, у меня не сработало ... на демо сайте так же не работает. Может тоже что-то включить надо.


Посмотрел. Да, поиск также не индексирует метатеги по умолчанию.



Добавлено: 05.10.15 10:26:26 #5



Регистрация: 22.10.12
Сообщений: 73


Обратиться по имени

Начиная с седьмой версии CMS, при посторении поискового индекса модуля генерируется событие on_search_index.

Пример использования -
AMI_Event::addHandler('on_search_index', 'cstOnSearchIndex', 'eshop_item');

function cstOnSearchIndex($name, array $aEvent, $handlerModId, $srcModId){
    $aSearch = array_keys($aEvent['aReplacement']);
    $aReplace = array_values($aEvent['aReplacement']);
    $index = array_search('/[^a-zа-ялёА-ЯЛЁ0-9\.,&-]/u', $aSearch);
    if(FALSE !== $index){
        $aSearch[$index] = '/[^a-zа-ялёА-ЯЛЁ0-9\.,&-\/]/u';
        $aEvent['aReplacement'] = array_combine($aSearch, $aReplace);
    }

    return $aEvent;
}

Содержимое $aEvent -
string sourceContent  Source item content
string &content       Prepared item content
array &aReplacement   Array of replacements for preg_replace

Как вариант решения задачи, добавить в "aReplacement" регулярное выражение, которое будет разбивать фразы нужным образом.

Уточним, что поисковый индекс модуля можно будет быстро перегенерировать в разделе "Обслуживание", вкладка "Сервис", действие "Исправить хэши поиска", доступно с 7.0.



Добавлено: 05.10.15 10:39:41 #6



Регистрация: 24.02.15
Сообщений: 20


Обратиться по имени

Спасибо, Дмитрий, за ответ!
Так понимаю, что без программиста не обойтись?
Есть ли возможность рассказать все по шагам, как это "вставить" в движок?
Или это уже готовое решение, которое только настроить надо?

Не подскажете, этот код надо разместить в _local/common_functions.php
Буду благодарен за помощь!



История запросов при поиске по каталогу - Голосуй!
Добавлено: 05.10.15 11:41:25 #7



Регистрация: 22.10.12
Сообщений: 73


Обратиться по имени

Нет, нужно дорабатывать под конкретную задачу.

Разместить код можно в _local/common_functions.php



Добавлено: 05.10.15 15:36:51 #8



Регистрация: 26.05.08
Сообщений: 984


Обратиться по имени

ооо! достойно! событие - это очень круто!





Создать новую тему

Всего тем: 6660
Всего сообщений: 27849
Всего зарегистрированных пользователей: 53127
Последний зарегистрированный пользователь: yushkov