Поиск по товарам интернет магазина без модуля поиска (на Халяве)

#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
Буду ждать
#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
Товарищи, а чего не релевантный поиск?
я делал поиск по каталогу релевантный, а потом уже лайки на короткие слова.
всего надо-то два индекса вписать новых в таблиц товаров и групп. Котов, я знаю что вы можете . Мой код к сожалению ушел с сайтом к заказчику, а вот лень она такая лень
d-sant.com
#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
t0xas, счастливый вы человек, у вас есть время на лень...
Заказов не беру. Консультирую редко.
#
Re: Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
ФЛУД: Лень в моем понимание сон в 8 часов, а остальное время забито.

а вот нашёл кусок кода.
возможно кусок похож на кусок гавнокода ) но думаю смысл будет ясен.

<h1>Поиск по сайту</h1>
<form action="" method="GET">
   <input type="text" name="search" value="<?=isset($_POST['search'])?$_POST['search']:''?>" />
   <input type="submit" name="Найти" value="найти"/>
</form>
<?php
if(isset($_GET['search']) ) {
   $DataBase = & singleton('DataBase');
   $search = to_str($_GET['search']);
   $query = "SELECT shop_items_catalog_item_id as id, shop_items_catalog_name as name,
               shop_items_catalog_description as description, shop_items_catalog_text as text,
      MATCH (shop_items_catalog_name   ,shop_items_catalog_description, shop_items_catalog_text )
      AGAINST ('$search') AS score
    FROM shop_items_catalog_table WHERE
    MATCH (shop_items_catalog_name   ,shop_items_catalog_description, shop_items_catalog_text )
    AGAINST
    ('$search')";
    $return = array();
   $result = $DataBase->select($query);
   
   if ($result) {
      $return = array();
      while( $row = mysql_fetch_assoc($result) ){
         $return[] = $row;
      }
   
   }
   
   $query = "SELECT shop_groups_name as name, shop_groups_description  as description, shop_groups_id as gid,
      MATCH (shop_groups_name   ,shop_groups_description)
      AGAINST ('$search') AS score
    FROM shop_groups_table WHERE
    MATCH (shop_groups_name   ,shop_groups_description)
    AGAINST('$search')";
   
   $result = $DataBase->select($query);
   if ($result) {
      while( $row = mysql_fetch_assoc($result) ){
         $return[] = $row;
      }
   }
   
   function compare($v1, $v2) {
       
       if ( $v1['score'] == $v2['score'] )  {
         return 0;
      }
      
       return ( $v1['score'] < $v2['score'] )?-1:1;
   }

   if(count($return) >0) {
      usort($return, 'compare');
   }
   else{
      $query = "SELECT shop_groups_name as name, shop_groups_description as description, shop_groups_id as gid
              FROM shop_groups_table WHERE  shop_groups_name LIKE '%$search%'
               ";
      
      $result = $DataBase->select($query);
      if ($result) {
         while( $row = mysql_fetch_assoc($result) ){
            $return[] = $row;
         }
      }
      
      $query = "SELECT shop_items_catalog_item_id as id, shop_items_catalog_name as name,
              shop_items_catalog_description  as description, shop_items_catalog_text  as text
              FROM shop_items_catalog_table WHERE shop_items_catalog_name LIKE '%$search%'";
      
      $result = $DataBase->select($query);
      if ($result) {
         while( $row = mysql_fetch_assoc($result) ){
            $return[] = $row;
         }
      }
   }



PS А где для hostcms6 можно посмотреть как включить в xml меню категории магазина. )))
d-sant.com
#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
t0xas, так у вас код на API HostCMS 5, это ж уже прошлый век.
К тому же, добавление своих индексов в БД, которая может менять свою структуру при установке обновлений - не очень хорошая идея.
Ну и еще к тому же, queryBuilder в api v.6 не поддерживает AGAINST и MATCH.

Хотя, не спорю, идея с индексами сама по себе интересная.
Заказов не беру. Консультирую редко.
#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
Ну и еще.
Я все-таки по прежнему придерживаюсь мнения, что не стоит создавать средствами API функционал, в той или иной степени дублирующий штатные модули.
Да, можно сделать версию с поиском на основе простого совпадения в LIKE %%, но заморачиваться на большее ни к чему  - версия с нормальным поиском стоит всего 1900 рублей. Не так уж и сложно купить.
Заказов не беру. Консультирую редко.
#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
ДА ради академического интереса ) первый мой опыт с полнотекстовым. Хотя порой и небольшой дописки достаточно.
d-sant.com
#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
Для кода под hostcms v.6 создал новую темку со ссылками на репозиторий - http://www.hostcms.ru/forums/2/7579/
Заказов не беру. Консультирую редко.
#
Re: Поиск по товарам интернет магазина без модуля поиска (на Халяве)
Тема для 6й версии перемещена сюда http://www.hostcms.ru/forums/3/7579/
Заказов не беру. Консультирую редко.
Авторизация