Доброе время суток!
Есть такой конфиг Sphinx
source txtcontent : ru_config
{
sql_query = SELECT `id` as `txt_id`, 1 as index_id, `type_id`,`content_type_id`, `title`, `annonce`, `content` FROM `TxtContent` WHERE `status` = 1 AND `content_type_id` != 14
sql_attr_uint = index_id
sql_attr_uint = type_id
}
Вся таблица индексируется, и хранится в одном большом поисковом индексе. Когда речь идет о том что бы найти что то в ней то все работает ОК
Но сегодня встала задача выполнить поиск по категории. Категории описаны в поле type_id и имеют тип int.
Как в php через SphinxAPI выполнить такой поиск?
Стандартный поиск выглядит вот так.
$sphinxClient = new SphinxClient();
$sphinxClient->SetServer("127.0.0.1", 3312 );
$sphinxClient->SetLimits( 0, 700,700 );
$sphinxClient->SetSortMode(SPH_SORT_RELEVANCE);
$sphinxClient->SetArrayResult( true );
$result = $sphinxClient->Query( $this->query, 'txtcontent provider item');
Я пробовал добавлять $sphinxClient->SetFilter('type_id','1'); чтобы выполнить поиск только там, где type_id = 1, но это не помогло.
Собственно: как мне выполнить поиск по конкретной категории? Вариант найти все и на php выкинуть из результата лишние не рассматривается, (иначе поиск тогда будет затератся существующим лимитом) как это сделать "правильно" через API, не помещая каждую тему в отдельный поисковый индекс?
Короче сам решил свою проблему, трабла была в том что В поисковых индексах provider item не были проиндексированы с type_id в то время как txtcontent был, надо добавить type_id для других индексов и тогда фильтрация пройдет нормально.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости