Symfony1 Symfony/条令可搜索行为:如何覆盖搜索功能?

Symfony1 Symfony/条令可搜索行为:如何覆盖搜索功能?,symfony1,doctrine,searchable,Symfony1,Doctrine,Searchable,事情是这样的,我已经在我的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 = '

事情是这样的,我已经在我的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子句,所以这两个单词必须是同一个项目的一部分才能相关。虽然要修改搜索的行为,我想覆盖搜索函数。但由于doctrine生成的表_索引未在我的schema.yml上声明,因此我无法对其执行查询


还有别的办法吗??谢谢

好吧,我的错,我认为访问table_索引是不可能的,因为没有在我的schema.yml上声明,但实际上是这样,这要感谢可搜索行

在我的搜索功能中,而不是

$q = Doctrine_Query::create()
  ->select('COUNT(e.keyword) AS relevance, e.id')
   ->from('Table_Index t');
我只需要删除索引表名称中的u

$q = Doctrine_Query::create()
  ->select('COUNT(e.keyword) AS relevance, e.id')
   ->from('TableIndex t');

好吧,我的错,我认为访问table_索引是不可能的,因为没有在我的schema.yml上声明,但实际上是这样,多亏了可搜索行

在我的搜索功能中,而不是

$q = Doctrine_Query::create()
  ->select('COUNT(e.keyword) AS relevance, e.id')
   ->from('Table_Index t');
我只需要删除索引表名称中的u

$q = Doctrine_Query::create()
  ->select('COUNT(e.keyword) AS relevance, e.id')
   ->from('TableIndex t');