2012-07-27 5 views
0

데이터베이스의 색인에 대해 많이 알지 못해서 내 질문이 바보가 될 수 있지만 ... 나는 사람 (이름, 성, 조직, 직업 등)에 대한 매개 변수를 가지고 있습니다. ""로 분해하여 상기 검색 문자열과doctrine을 사용하여 색인으로 검색

$this->search_index = $this->name.' '.$this->surname.' '.$this->orgnaization; 

, 그리고 search_index와 LIKE을 이용하여 각 부분을 비교 : 같이 prePersist()있어서, 뭔가 인덱스 문자열을 생성 해요.

그러나 이것은 매우 미친 것처럼 보입니다. 가장 좋은 방법은 무엇입니까? p.s. 내 샘플 코드 :

$queryBuilder = $this->createQueryBuilder('s'); 
foreach(explode(" ", $query) as $key=>$part){ 
    $queryBuilder->orWhere('s.searchindex LIKE:name'.$key) 
      ->setParameter('name'.$key, $part); 
} 

답변

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(); 
+0

그래서 문제는, 그 사용자는 다음과 같이 뭔가를 입력 할 수 있습니다 : "존 엔지니어 스티븐슨 " – user1081056

관련 문제