Как внедрить fivestar в поисковой движок

Главные вкладки

Аватар пользователя Zereff Zereff 15 мая 2012 в 18:45

Доброго времени суток всем девелоперам, веб-программистам, админам системы друпал...
Никак не могу справиться с проблемой внедрения рейтинга fivestar в поисковую систему,
для результата и выдачи результата поиска в зависимости от рейтингового голосования.
Знаю, что вряд ли есть такой модуль, но может у кого есть какие-то соображения по
кодингу...

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 15 мая 2012 в 21:51

Не ясен алгоритм поиска.
В каком случае и как будут ранжироваться результаты поиска?
По количеству вхождений,соответствий или только по звездочкам? Непонятно..

Аватар пользователя Zereff Zereff 16 мая 2012 в 11:05

Chyvakoff wrote:
Не ясен алгоритм поиска.
В каком случае и как будут ранжироваться результаты поиска?
По количеству вхождений,соответствий или только по звездочкам? Непонятно..

Извините, что не доходчиво объясняю...
Необходимо чтоб результаты ранжировались по звездочкам!

Аватар пользователя divined divined 16 мая 2012 в 11:14

hook_search - хук на поиск друпала

http://drupal.org/project/search_ranking - как нечто где можно посмотреть на другие варианты ранжирования

Думаю что в этом модуле вам останется только добавить поддержку fivestar.

Аватар пользователя Zereff Zereff 16 мая 2012 в 14:46

divined wrote:

Думаю что в этом модуле вам останется только добавить поддержку fivestar.

Было бы очень интересно как, т.к. нет навыка в программировании модулей на друпал!

Аватар пользователя divined divined 16 мая 2012 в 15:41

Ну уж ковыряйтесь думаю более глубже вам не помогут пока вы не захотите разобраться в этом патче и посмотреть почему он не работает. И начнете задавать вопросы связанные именно с модулем Smile

Аватар пользователя Chyvakoff Chyvakoff 16 мая 2012 в 20:45

"Zereff" wrote:
Необходимо чтоб результаты ранжировались по звездочкам!

Перефразирую..

Я пишу запрос "рыжие кошки"
ваш сайт отдает следующие статьи:
рыжие кошки - 1 звезда
рыжие собаки -3 звезды
рыжие какашки - 2 звезды
дохлые кошки -5 звезд
зелёные кошки -1 звезда
меня съели кошки -7 звезд
и т.д. и т.п.

И итог будет таким:
меня съели кошки
дохлые кошки
рыжие собаки
рыжие какашки
зелёные кошки
рыжие кошки

Это логически правильно?

Аватар пользователя Zereff Zereff 17 мая 2012 в 13:00

Chyvakoff wrote:

Перефразирую..

Я пишу запрос "рыжие кошки"
ваш сайт отдает следующие статьи:
рыжие кошки - 1 звезда
рыжие собаки -3 звезды
рыжие какашки - 2 звезды
дохлые кошки -5 звезд
зелёные кошки -1 звезда
меня съели кошки -7 звезд
и т.д. и т.п.

И итог будет таким:
меня съели кошки
дохлые кошки
рыжие собаки
рыжие какашки
зелёные кошки
рыжие кошки

Это логически правильно?


Логически это правильно, не не совсем...То что вы рассортировали результаты по рейтингу - верно.
Но у нас поиск, а значит нам нужен вывод конкретного результата.
К примеру, на вашей же логике...Я ввожу в поиск слово "рижие" - должен быть такой результат:
рыжие собаки
рыжие какашки
рыжие кошки

или вводим слово "кошки" - вывод:
меня съели кошки
дохлые кошки
зелёные кошки
рыжие кошки

Вот примерно так я хочу, чтоб работал поиск и сортировал результаты по рейтингу(fivestar)

Аватар пользователя divined divined 17 мая 2012 в 13:42

хмм не, так не пойдет...

Что бы так сортировал вам надо попросить команду гугл чтобы она вам написала логику ранжирования )
А у нас у смертных или одно или второе.

Аватар пользователя Zereff Zereff 17 мая 2012 в 14:07

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

Аватар пользователя Chyvakoff Chyvakoff 17 мая 2012 в 15:59

"Zereff" wrote:
Логически это правильно, не не совсем...

К этому я и вёл..
"Zereff" wrote:
узнать бы где находится код, который дает приоритет атрибутам

modules/search
"divined" wrote:
вам надо попросить команду гугл чтобы она

Или сами точно разберитесь как нужно сортировать результаты поиска,предварительно разобравшись в стандартном поиске друпала.

Аватар пользователя Zereff Zereff 17 мая 2012 в 17:05

"Chyvakoff" wrote:

Или сами точно разберитесь как нужно сортировать результаты поиска,предварительно разобравшись в стандартном поиске друпала.

Еслиб знал как, то давно разобрался!

Аватар пользователя Zereff Zereff 17 мая 2012 в 18:25

Нашел, где можно изменить код для изменения результата поиска - в файле search-result.tpl.php
Даже смог найти пост, где позаимствовал код и внедрил его в файл.
Теперь результаты поиска выводятся с рейтингом - с сортировкой пока лажа.
Может у кого какие идеи по поводу данного кода. Что можно сделать и где копать?

<?php
<div class="search-result <?php print $search_zebra; ?>">
  <
dt class="title">
    <
a href="<?php print $url; ?>"><?php print $title?></a>
  </dt>
  <dd> <!-- $snippet -->
    <?php if ($snippet) : ?>
    <p class="search-snippet"><?php print $snippet?></p>
    <?php endif; ?>
    
    <?php if ($info_split) : ?>
    <p class="search-info">
      <?php $info_separator ''?>

      <?php if (isset($info_split['type'])) : ?>
      <span class="search-info-type"><?php print $info_split['type']; ?></span>
        <?php $info_separator ' - '?>
      <?php endif; ?>
        
      <?php if (isset($info_split['user'])) : ?>
      <span class="search-info-user"><?php print $info_separator $info_split['user']; ?></span>
        <?php $info_separator ' - '?>
      <?php endif; ?>
        
      <?php if (isset($info_split['date'])) : ?>
      <span class="search-info-date"><?php print $info_separator $info_split['date']; ?></span>
        <?php $info_separator ' - '?>
      <?php endif; ?>
        
      <?php if (isset($info_split['comment'])) : ?>
      <span class="search-info-comment"><?php print $info_separator $info_split['comment']; ?></span>
        <?php $info_separator ' - '?>
      <?php endif; ?>
      
      <?php if (isset($info_split['upload'])) : ?>
      <span class="search-info-upload"><?php print $info_separator $info_split['upload']; ?></span>
      <?php endif;  ?> 
      <!--   search by rating   --> 
         <span class="info-comment">
          <?php
            $thisNode 
node_load($result['node']->nid);
             
/* */
             
$teaser FALSE;
             
$page TRUE;
             
$thisNode node_build_content($thisNode$teaser$page);
             
/* */   
             
print $thisNode->content['fivestar_widget']['#value'];            
           
?>
        </span>      
    </p>
    <?php endif; ?>
  </dd>
</div><!-- /search-result -->
?>

Спасибо!

Аватар пользователя Zereff Zereff 21 мая 2012 в 15:02

Возникли проблемы. Вроде все описано тут how-integrate-fivestar-ratings-apachesolr-search, но не понятно, что делать и вставлять этот код. Пробовал разные варианты - создать собственный модуль, добавить, изменить функции модуля apachesolr, но так ничего и не вышло.