2011-08-04 10 views
0

codeigniter 및 doctrine을 사용하여 전체 텍스트 검색을 수행하려고합니다. 제 문제는 Doctrine이 전체 단어에 대해서만 검색을 수행한다는 것입니다.doctrine을 사용하여 부분 단어 검색

예를 들어 '산'을 검색하면 산이라는 단어로 모든 항목을 가져옵니다. 그러나 "mount"를 검색하면 아무 것도 얻지 못합니다.

+0

테이블 열 유형은 무엇입니까? 왜 LIKE를 사용하지 않습니까? – Tom

답변

0

필자는 Symfony 1.4와 Doctrine 1.2에서 Searchable 동작과 동일한 문제를 겪었으며이 문제를 발견했습니다. 그런 다음 단어에 적용되는 검색어에 와일드 카드 (? 또는 *)를 추가 할 수 있음을 알았습니다. 귀하의 경우에는 "마운트 *"산을 일치합니다. 필자의 경우에는 각 검색어에이 키워드를 적용하여 사용자로부터 숨 겼습니다.

$results = $table->search('*'.$search_string.'*'); 

희망이 있으면 도움이 될 것입니다.

- 편집 -

이 한 단어 쿼리에 대해 잘 작동하지만, 여러 부분 단어에 다시 실패 ... 급하게 위의 약간을 기록했다. 이 같은 것이 더 잘 작동해야합니다.

$actual_search_string = '*'.implode('* *', explode(' ', $search_string)).'*'; 
$results = $table->search($actual_search_string); 
관련 문제