Comments 8
спасибо! многим думаю будет полезно ;)
Перенести бы это в местный блог CakePHP (http://habrahabr.ru/blogs/cakephp/)
Если мне не изменяет память, Сфинкс требует отдельной таблицы для поиска, со сквозной нумерацией, было бы великолепно если бы этот Behavior умел бы еще данные для нее подготавливать.
Если мне не изменяет память, Сфинкс требует отдельной таблицы для поиска, со сквозной нумерацией, было бы великолепно если бы этот Behavior умел бы еще данные для нее подготавливать.
нет, отдельной таблицы не нужно, достаточно просто правильно подготовить данные для него.
в моем случае это выглядит так:
sql_query = \
SELECT Film.id, Film.film_type_id, Film.title, Film.title_en, Film.year, \
Film.imdb_rating, UNIX_TIMESTAMP(Film.modified) as modified, Film.hits, MediaRating.rating \
FROM films AS Film \
LEFT JOIN film_types AS FilmType ON (Film.film_type_id = FilmType.id) \
LEFT JOIN media_ratings AS MediaRating ON (MediaRating.type=«film» AND MediaRating.object_id = Film.id) \
WHERE Film.active = 1
в моем случае это выглядит так:
sql_query = \
SELECT Film.id, Film.film_type_id, Film.title, Film.title_en, Film.year, \
Film.imdb_rating, UNIX_TIMESTAMP(Film.modified) as modified, Film.hits, MediaRating.rating \
FROM films AS Film \
LEFT JOIN film_types AS FilmType ON (Film.film_type_id = FilmType.id) \
LEFT JOIN media_ratings AS MediaRating ON (MediaRating.type=«film» AND MediaRating.object_id = Film.id) \
WHERE Film.active = 1
Вилен, респект огромный :)
Возможно стоит назвать behavior как-нибудь вроде «indexableBySphinx», что бы при подключении строчка $actsAs = array('indexableBySphinx') читалась.
добавил в избранное, заканчиваю изучение кейка, так что пригодится
Sign up to leave a comment.
Cakephp Sphinx behavior