[РЕШЕНО] Faceted search и views - помогите найти ошибку

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

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 12 января 2011 в 20:53

Помогите разобраться, пожалуйста, поставил faceted_search модуль, все настроил, результаты выдает.
Далее меняю вывод результатов с Extracts на views - при поиске выдает ошибку и ничего не ищет. Прочитал ридми, там есть особенности при работе с views:

Основные требования:
- Must be a Node view. - не совсем понимаю, что это значит, но чувствую, что дело не в этом
- Must use a pager. - есть
- Must be enabled. - есть

Ограничения:
- Only a view's default display can be used (other displays are ignored). - учел
- The view cannot use exposed filters or arguments. - учел, все убрал

Остается одно:
Known issues:

- If your site is using table prefixing, you will need to tell Drupal not to
prefix temporary tables needed by Faceted Search Views. In settings.php, you
need something like the following:

$db_prefix = array(
'default' => '[your_default_prefix]_',
'temp_faceted_search_results_[env_id]' => '',
);

Но у меня в файле settings.php стоит $db_prefix = ''; - я так понимаю, что префикс не используется.

Вобщем, я в печали. Кто нибудь сталкивался с подобным при использовании этого модуля?

Итоги: отчаявшись, методом научного тыка начал исследовать все настройки вьюхи. замечательная функция Distinct в положении Yes выдает ошибку, в положении No все работает так, как надо.

Комментарии

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 10 ноября 2015 в 11:47

Views сохранен
под настройками окружения поиска вы это имеете ввиду admin/settings/faceted_search/1? Если да, то там указал, как видно в прикрепленном файле.

Аватар пользователя lugann lugann 12 января 2011 в 22:12

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

-- Must be a Node view. - не совсем понимаю, что это значит, но чувствую, что дело не в этом --
вьювс нужен типа "материал"

-- Но у меня в файле settings.php стоит $db_prefix = ''; - я так понимаю, что префикс не используется --
да это стандарно все, дело наверное все же не в префиксах бд
а в настройке модуля и в настройке вашего вьювса. покрутите еще настройки все должно работать,
модуль хороший годный

Аватар пользователя ubercoder ubercoder 12 января 2011 в 22:16

Возможно views у вас настроен как поля а поля не заданы и т.д. Предварительный просмотр внизу страницы views что-то показывает?

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 12 января 2011 в 22:17

"lugann" wrote:
в настройках модуля появляется конкретный вьювс , и его нужно отметить.
у вас так?

Да, выше постом прикрепил изображение

"lugann" wrote:
-- Must be a Node view. - не совсем понимаю, что это значит, но чувствую, что дело не в этом --
вьювс нужен типа "материал"

Ок, понял, так и есть
"lugann" wrote:
дело наверное все же не в префиксах бд
а в настройке модуля и в настройке вашего вьювса. покрутите еще настройки все должно работать,
модуль хороший годный

Надеюсь, что вы правы, продолжу крутить

Спасибо

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 10 ноября 2015 в 11:47

"<a href="mailto:ozoned@drupal.org">ozoned@drupal.org</a>" wrote:
Предварительный просмотр внизу страницы views что-то показывает?

Да, показывает, я клонировал рабочий вьюс и удалил лишнее. Настройки прикрепил, на всякий случай

Аватар пользователя lugann lugann 12 января 2011 в 22:33

-- Настройки прикрепил, на всякий случай --
попробуйте в вашем вьювсе добавить страничное представление, пропишите какой-нибудь путь там же,
и этот же путь пропишите в настройках модуля faceted_search

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 12 января 2011 в 22:49

"lugann" wrote:
попробуйте в вашем вьювсе добавить страничное представление, пропишите какой-нибудь путь там же,
и этот же путь пропишите в настройках модуля faceted_search

Смотрите, base path в настройках faceted_search стоит faceted-search. Если ставить этот путь в настройках представления, то номер не проходит, т.к. на самом деле при поиске открывается страница faceted-search/results (опять вылазит ошибка, как будто бы ничего и не делал). Если же указать путь faceted-search/results в качестве пути для представления, то при поиске само отображение появляется, да, но поиска как такового не происходит, я так понимаю меня просто перекидывает на страницу с заданным отображением и все.

Аватар пользователя ubercoder ubercoder 12 января 2011 в 23:01

С путями ничего не надо делать, faceted search сам использует установленную вьюху.

Попробуйте в полях views вывести заголовок ноды, есть подозрения что в вывод попадают ноды без этого cck поля.

Аватар пользователя lugann lugann 12 января 2011 в 23:28

-- т.к. на самом деле при поиске открывается страница faceted-search/results --
и это правильно . далее за results через слеш будет еще что-то для каждого результата
-- Если же указать путь faceted-search/results в качестве пути для представления --
не не нужно

Аватар пользователя ubercoder ubercoder 13 января 2011 в 0:16

"lugann" wrote:
и это правильно . далее за results через слеш будет еще что-то для каждого результата

Вы не правы, создавать страницу в этой вьюхе не надо.
Об этом даже прямо написано «Only a view's default display can be used (other displays are ignored)».

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 13 января 2011 в 7:19

"<a href="mailto:ozoned@drupal.org">ozoned@drupal.org</a>" wrote:
Попробуйте в полях views вывести заголовок ноды, есть подозрения что в вывод попадают ноды без этого cck поля.

Вывел, в равно ошибкаостается Sad

Вот текст ошибки:
Может все таки в таблицах дело?

# Operand should contain 1 column(s) query: CREATE TEMPORARY TABLE temp_faceted_search_results_1 (nid int unsigned NOT NULL, PRIMARY KEY (nid)) Engine=HEAP SELECT n.nid AS nid, 5 * (174.13283805442 * SUM(node_search_index.score * node_search_total.count)) + 5 * POW(2, (GREATEST(MAX(n.created), MAX(n.changed), MAX(c.last_comment_timestamp)) - 1294766309) * 6.43e-8) AS score FROM node AS n INNER JOIN search_index AS node_search_index ON n.nid = node_search_index.sid INNER JOIN search_total AS node_search_total ON node_search_index.word = node_search_total.word LEFT JOIN node_comment_statistics AS c ON n.nid = c.nid WHERE ((n.status = 1) AND (n.type IN ('icon_rew')) AND ((node_search_index.word = 'adobe') AND node_search_index.type = 'node')) AND n.nid IN (SELECT DISTINCT(node.nid) AS nid, node_data_field_icon_image.field_icon_image_fid AS node_data_field_icon_image_field_icon_image_fid, node_data_field_icon_image.field_icon_image_list AS node_data_field_icon_image_field_icon_image_list, node_data_field_icon_image.field_icon_image_data AS node_data_field_icon_image_field_icon_image_data, node.type AS node_type, node.vid AS node_vid, node.title AS node_title FROM node node LEFT JOIN content_type_icon_rew node_data_field_icon_image ON node.vid = node_data_field_icon_image.vid GROUP BY nid ) GROUP BY n.nid ASC HAVING (COUNT(*) >= 1) ORDER BY score DESC in ...sites/all/modules/faceted_search/faceted_search.inc on line 1174.
# user warning: Table 'my_db.temp_faceted_search_results_1' doesn't exist query: SELECT COUNT(*) FROM temp_faceted_search_results_1 in ...sites/all/modules/faceted_search/faceted_search.inc on line 1175.

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 13 января 2011 в 6:47

Загуглился уже совсем, не могу найти решение проблемы. Обидно. Может есть еще модуль, который выводит результаты поиска на основе представления views?

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 13 января 2011 в 12:08

"<a href="mailto:ozoned@drupal.org">ozoned@drupal.org</a>" wrote:
Не хватает прав у пользователя БД.

Хм, а это уже интереснее, поделитесь, если не секрет, как определили - попробую ТП потеребить.
Спасибо, что еще не потеряли интерес=)

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 13 января 2011 в 12:16

"<a href="mailto:ozoned@drupal.org">ozoned@drupal.org</a>" wrote:
В readme есть способы решения, в разделе Installation.

Большое спасибо, если проблема действительно в этом... что же, будет мне уроком, что читать внимательней надо.

Аватар пользователя valero222 valero222 16 февраля 2011 в 8:29

Такая ошибка у меня!

user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') GROUP BY n.nid ASC ORDER BY score DESC' at line 1 query: CREATE TEMPORARY TABLE temp_faceted_search_results_1 (nid int unsigned NOT NULL, PRIMARY KEY (nid)) Engine=HEAP SELECT n.nid AS nid, 5 * POW(2, (GREATEST(MAX(n.created), MAX(n.changed), MAX(c.last_comment_timestamp)) - 1297790406) * 6.43e-8) + 5 * (2.0 - 2.0 / (1.0 + MAX(c.comment_count) * 1)) AS score FROM node AS n LEFT JOIN node_comment_statistics AS c ON n.nid = c.nid WHERE ((n.status = 1) AND (n.type IN ('product'))) AND n.nid IN () GROUP BY n.nid ASC ORDER BY score DESC in /home/20/rtu.com.ua/www/sites/all/modules/faceted_search/faceted_search.inc on line 1182.
user warning: Table '20_1.temp_faceted_search_results_1' doesn't exist query: SELECT COUNT(*) FROM temp_faceted_search_results_1 in /home/20/rtu.com.ua/www/sites/all/modules/faceted_search/faceted_search.inc on line 1183.

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 16 февраля 2011 в 8:45

Проблему, какорая была у меня я описал в теме жирным. Это настройка во вьюхе. А вообще поищите на д.орг. и почитайте ридми к модулю.
Там есть инструкция по установке.

"<a href="mailto:ozoned@drupal.org">ozoned@drupal.org</a>" wrote:
Не хватает прав у пользователя БД.
Необходимо разрешить LOCK TABLES и CREATE TEMPORARY TABLES.

может быть и это.

Еще поглядите ишьюсы к молудю на д.орг

Аватар пользователя valero222 valero222 16 февраля 2011 в 8:57

Права есть!

Дело в том что когда я создаю "вид" модуль Faceted search его не видит, но есть доступные, но когда я начинаю их править (буквально: просто сохраню без изменений) они пропадают из поля выбора "Faceted search" использую Views 3. Повторюсь? если можно конечно, выложите скрин настройки Views.

Аватар пользователя valero222 valero222 16 февраля 2011 в 8:59

"<a href="mailto:Sentrashy@drupal.org">Sentrashy@drupal.org</a>" wrote:
Еще поглядите ишьюсы к молудю на д.орг

Если можно скиньте ссылку на 1 пример! Спасибо!

Аватар пользователя oleg220 oleg220 16 февраля 2011 в 19:39

А кто-нибудь может мне подсказать, как стандуртную форму для поиска (включается в настройках темы) заменить на форму, которая бы направляла на поиск через faced search? Вот тут я подробнее вопрос описывал http://drupal.ru/node/55890
Как вообще эти формы местами поменять (точнее, стандартную форму совсем можно выкинуть)?

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 16 февраля 2011 в 19:56

Стандартную форму поиска отключите в настройках темы. faceted search в зависимости от настроек дает один или больше дополнительных блоков с формами для поиска

Аватар пользователя oleg220 oleg220 21 февраля 2011 в 9:58

А какая нибудь переменная для вывода блока от faceted search в шаблоне есть?
Как для стандартного поиска: <?php print theme('grid_block'$search_box'search-box'); ?>