У меня есть следующие таблицы MySQL:Sphinx PHP Один-ко-многим Поиск
CREATE TABLE `video` (
`video_id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`description` text NOT NULL,
PRIMARY KEY (`video_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `video_categories` (
`cat_id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`cat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `video_category` (
`video_id` int(11) unsigned NOT NULL default '0',
`cat_id` int(11) unsigned NOT NULL default '0',
KEY `video_id` (`video_id`),
KEY `cat_id` (`cat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `video_tags` (
`tag_id` int(11) unsigned NOT NULL auto_increment,
`video_id` int(11) unsigned NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
KEY `video_id` (`video_id`),
KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Я создал файл конфигурации сфинкса и я могу искать с PHP. Проблема в том, когда я хочу искать похожие видео, связанное с ними видео должно быть в той же категории, что и видео, которое я ищу. Я могу сделать это с помощью MVA и SetFilter (например, «категории», массив (3)), однако общее количество результатов совпадений является глобальным (мне нужно всего, чтобы отображать разбиение на страницы с помощью ajax), а не та, что в категории.
Любые идеи, как я могу искать видео (документы в сфинксе), которые находятся только в определенной категории?
Thanks, Adrian.
Работает ли это, даже если видео находится в нескольких категориях? – Adrian
Для этого вы можете использовать многозначные атрибуты: http://sphinxsearch.com/docs/manual-0.9.9.html#mva –
Я использовал MVA с SetFilter. Мне нужно общее количество связанных видео в указанной категории. MVA фактически выполняет глобальный поиск (во всех категориях), а затем я могу использовать SetFilter для фильтрации моих результатов. – Adrian