Поиск по сайту на редакции Халява

#
Поиск по сайту на редакции Халява
Добрый день! Подскажите, как реализовать поиск по сайту, на халяве, без модуля "Поиск по сайту" нужно чтоб искало по полю артикул. Нашел тему https://www.hostcms.ru/forums/3/7579/ , но тут все ссылки битые.
Модератор
#
Re: Поиск по сайту на редакции Халява
Deeg,
Взять редакцию "Мой сайт", цена всего 3900 р.
#
Re: Поиск по сайту на редакции Халява
hostcms писал(а):
Имеется более старшая редакция, но дело в том, что, кол-во товаров на сайте почти 1,5млн, и переиндексация стандартным методом через модуль поиска займет очень много времени, поэтому нужно искать по одному полю "артикул", без переиндексации.
#
Re: Поиск по сайту на редакции Халява
Есть событийная индексация, можно так же использовать sphinx или выполнять переиндексацию ночью в cron.
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Поиск по сайту на редакции Халява
Я все понимаю, но нужно решение, как реализовать поиск, без модуля "поиск по сайту" - напрямую из базы.
#
Re: Поиск по сайту на редакции Халява
С работой QueryBuilder можете ознакомиться здесь https://www.hostcms.ru/documentation/modules/core/querybuilder/
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Поиск по сайту на редакции Халява
Был бы признателен, если было бы, какое то готовое решение.
#
Re: Поиск по сайту на редакции Халява
Вы можете заказать работы у партнеров https://www.hostcms.ru/integration/
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Поиск по сайту на редакции Халява
Помогите составить код правильно, пытаюсь сделать поиск через ТДС интернет-магазин по полю артикул, вызывает ошибку 500.

<form method="get" action="/shop/">
   <input type="text" name="text" placeholder="поиск" />
</form>
--------------------------
   if (Core_Array::getGet('text'))
   {
      $sQuery = Core_Str::stripTags(strval(Core_Array::getGet('query')));

      $oShop_Items = Core_Entity::factory('Shop_Item');

      $Shop_Controller_Show
         ->group(FALSE);

      $Shop_Controller_Show
         ->shopItems()
         ->queryBuilder()
         ->where('shop_items.marking', 'LIKE', '%' . $sQuery . '%');

      $aShop_Items = $oShop_Items->findAll();
   }
--------------------------
Модератор
#
Re: Поиск по сайту на редакции Халява
Deeg,
у вас  написан не очень связный код, из которого сложно понять, какой именно цели вы пытались достигнуть.
строка
$oShop_Items = Core_Entity::factory('Shop_Item');

и
$aShop_Items = $oShop_Items->findAll();

не связаны с остальным кодом, этими двумя строками вы выбираете все товары из всех магазинов, что вероятно и приводит к ошибке 500 на сервере.

Также я бы рекомендовал условие с LIKE изобразить следующим образом:
        ->where('shop_items.marking', 'LIKE', '%' . Core_DataBase::instance()->escapeLike($sQuery) . '%');
Авторизация