Доброго времени суток всем девелоперам, веб-программистам, админам системы друпал...
Никак не могу справиться с проблемой внедрения рейтинга fivestar в поисковую систему,
для результата и выдачи результата поиска в зависимости от рейтингового голосования.
Знаю, что вряд ли есть такой модуль, но может у кого есть какие-то соображения по
кодингу...
Комментарии
Не ясен алгоритм поиска.
В каком случае и как будут ранжироваться результаты поиска?
По количеству вхождений,соответствий или только по звездочкам? Непонятно..
Извините, что не доходчиво объясняю...
Необходимо чтоб результаты ранжировались по звездочкам!
hook_search - хук на поиск друпала
http://drupal.org/project/search_ranking - как нечто где можно посмотреть на другие варианты ранжирования
Думаю что в этом модуле вам останется только добавить поддержку fivestar.
Было бы очень интересно как, т.к. нет навыка в программировании модулей на друпал!
Кстати пробовал патчить модуль search_ranking для ранжирования по звездочкам, но нифига не помогло.
Ну уж ковыряйтесь думаю более глубже вам не помогут пока вы не захотите разобраться в этом патче и посмотреть почему он не работает. И начнете задавать вопросы связанные именно с модулем
Перефразирую..
Я пишу запрос "рыжие кошки"
ваш сайт отдает следующие статьи:
рыжие кошки - 1 звезда
рыжие собаки -3 звезды
рыжие какашки - 2 звезды
дохлые кошки -5 звезд
зелёные кошки -1 звезда
меня съели кошки -7 звезд
и т.д. и т.п.
И итог будет таким:
меня съели кошки
дохлые кошки
рыжие собаки
рыжие какашки
зелёные кошки
рыжие кошки
Это логически правильно?
Логически это правильно, не не совсем...То что вы рассортировали результаты по рейтингу - верно.
Но у нас поиск, а значит нам нужен вывод конкретного результата.
К примеру, на вашей же логике...Я ввожу в поиск слово "рижие" - должен быть такой результат:
рыжие собаки
рыжие какашки
рыжие кошки
или вводим слово "кошки" - вывод:
меня съели кошки
дохлые кошки
зелёные кошки
рыжие кошки
Вот примерно так я хочу, чтоб работал поиск и сортировал результаты по рейтингу(fivestar)
хмм не, так не пойдет...
Что бы так сортировал вам надо попросить команду гугл чтобы она вам написала логику ранжирования )
А у нас у смертных или одно или второе.
Ну если логически подумать, то можно предположить, что поиск по умолчанию сортируется по каким-то атрибутам, к примеру по дате добавления...узнать бы где находится код, который дает приоритет атрибутам, по которым осуществляется поиск и изменить приоритет сортировки по дате добавления на сортировку по рейтингу. У кого еще какие идеи?
10 постов, а никто ещё не сказал про поиск специалистов
поиск специалистов - устраивает?
К этому я и вёл..
modules/search
Или сами точно разберитесь как нужно сортировать результаты поиска,предварительно разобравшись в стандартном поиске друпала.
Еслиб знал как, то давно разобрался!
Нашел, где можно изменить код для изменения результата поиска - в файле 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 -->
?>
Спасибо!
Это код темизации, код сортировки находится в другом месте.
ok, спасибо
Сначала не поверил, но ангел спустился с небес: how-integrate-fivestar-ratings-apachesolr-search
Интеграция fivestar в поисковой движок apachesolr.
Возникли проблемы. Вроде все описано тут how-integrate-fivestar-ratings-apachesolr-search, но не понятно, что делать и вставлять этот код. Пробовал разные варианты - создать собственный модуль, добавить, изменить функции модуля apachesolr, но так ничего и не вышло.