Задать вопрос
@Zeraks

Как через php sphinxapi сделать поиск по конкретному полю?

При работе из консоли запрос where match('@category_id 42') выдаёт совпадения по полю category_id.
Через мой код:
$cl = new SphinxClient();
$cl->SetServer(SLAVE_HOST, 9312);
$cl->_limit = 300000;
$cl->SetLimits(0, 10000, 10000);
$cl->setMatchMode(SPH_MATCH_EXTENDED2);
$keyword = '@category_id 42';
$keyword = $cl->EscapeString($keyword);
$result = $cl->Query($keyword, 'customers');

Не находит совпадений. Подскажите в чём может быть ошибка.
  • Вопрос задан
  • 2566 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Zeraks Автор вопроса
В общем ответ найден проблема в этой строчке
$keyword = $cl->EscapeString($keyword);
Она экранировала знак @ и запрос читался неправильно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AxisPod
@AxisPod
Если category_id является аттрибутом, то здесь надо использовать функцию setFilter. А в полнотекстовый индекс такие поля засовывать наверное не стоит.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы