我对数据库中的索引知之甚少,所以我的问题可能很愚蠢,但......
我有人(姓名,组织,工作等)的参数,现在我在prePersist()
方法中创建索引字符串,如下所示:
$this->search_index = $this->name.' '.$this->surname.' '.$this->orgnaization;
进一步搜索带有“”的爆炸字符串,并使用LIKE
将每个部分与search_index进行比较。
但这看起来很疯狂。什么是最佳做法? 附:我的示例代码:
$queryBuilder = $this->createQueryBuilder('s');
foreach(explode(" ", $query) as $key=>$part){
$queryBuilder->orWhere('s.searchindex LIKE:name'.$key)
->setParameter('name'.$key, $part);
}
答案 0 :(得分:0)
如果我理解你是对的,我想那时你正在寻找这样的东西:
$collection = Doctrine::getTable('User')->createQuery('u');
->where('column_name LIKE ?', $this->name)
->orWhere('column_surname LIKE ?', $this->surname)
->orWhere('column_organization LIKE ?', $this->organization)
->execute();