Sphinx и теги

Аватар пользователя ser_house ser_house 12 июля 2012 в 23:30

Прикрутил на локалке Sphinx. За основу модуля для Друпал взял Drupal 7.x Sphinx Search module. Ноды у меня помечаются тегами, читай — ключевыми словами и возможность поиска и по ним необходима. Добавил их джойнами и вместе с исходным из sphinxdrupal получилось аж 3 INNER JOIN:

sql_query =
  SELECT node.nid AS ID, node.title, node.status, node.created, f.body_value, taxonomy_term_data.name \
  FROM node \
  INNER JOIN field_data_field_tags ON node.nid = field_data_field_tags.entity_id \
  INNER JOIN taxonomy_term_data ON field_data_field_tags.field_tags_tid = taxonomy_term_data.tid \
  INNER JOIN field_data_body f ON (node.nid = f.entity_id) \
  WHERE node.status = 1 AND node.type = 'my_type';

Ествественно, индексация и поиск вместе с морфологией работают на ура, и больше мне ничего не надо, но смущает кол-во join. Может, это как-то иначе, «лучше», делается?

Комментарии

Аватар пользователя ser_house ser_house 17 июля 2012 в 14:02

Всем спасибо за неответы, видимо «лучше» — не делается. Отправлю в работу так.

Аватар пользователя chilic chilic 7 августа 2012 в 9:53

Можно вынести тэги в отдельный индекс. А в общем 3 джоина не так много.

Аватар пользователя NaZg NaZg 7 августа 2012 в 10:41

"chilic" wrote:
Лучше использовать SearchApi

чем лучше?

"ser_house" wrote:
Всем спасибо за неответы, видимо «лучше» — не делается. Отправлю в работу так.

Вам тут никто не обязан отвечать, если что.

Аватар пользователя chilic chilic 7 августа 2012 в 10:42

"NaZg" wrote:
чем лучше?

Интеграция с views, фасетный поиск, гибкая настройка индексов.
+ возможность использовать не только Sphinx

Аватар пользователя NaZg NaZg 7 августа 2012 в 10:46

"chilic" wrote:
Интеграция с views, фасетный поиск, гибкая настройка индексов.

возрадуйтесь
Но в принципе, сфинксовский демон даёт не всякий хостер, тут я согласен

Аватар пользователя ser_house ser_house 7 августа 2012 в 12:26

"NaZg" wrote:
Вам тут никто не обязан отвечать, если что.

Не надо искать подтексты там, где их нет)) Я имел в виду именно то, что написал — если никто не налетел меня дербанить за тупость, значит я не всё сделал неправильно))