Поисковое поведение Symfony/Doctrine: как переопределить функцию поиска?
Дело в том, что я реализовал поисковое поведение в моем проекте Symfony, и он работает нормально. Проблема в том, что я пытаюсь выполнить поиск по двум или более словам. Запрос, сгенерированный функцией поиска, выглядит так:
SELECT COUNT(keyword) AS relevance, id FROM table_index
WHERE id IN (SELECT id FROM table_index WHERE keyword = 'foo')
AND id IN (SELECT id FROM table_index WHERE keyword = 'bar')
GROUP BY id
ORDER BY relevance DESC
Поскольку при поиске используется предложение AND, эти два слова должны быть частью одного и того же элемента, чтобы быть релевантными. Хотя, чтобы изменить поведение поиска, я хотел бы переопределить функцию поиска. Но поскольку table_index, сгенерированный doctrine, не объявлен в моем schema.yml, я не могу выполнить запрос по нему.
Есть ли другой способ сделать это?? Спасибо
1 ответ
Хорошо, плохо, я думал, что доступ к table_index невозможен, потому что не объявлен в моем schema.yml, но на самом деле это так, благодаря строке поиска.
В моей функции поиска, а не
$q = Doctrine_Query::create()
->select('COUNT(e.keyword) AS relevance, e.id')
->from('Table_Index t');
Я просто должен был удалить _ в имени таблицы индекса
$q = Doctrine_Query::create()
->select('COUNT(e.keyword) AS relevance, e.id')
->from('TableIndex t');