2011-08-04 85 views
0

我想用codeigniter和原則進行全文搜索。 我的問題是,學說只對整體詞進行搜索。用原則搜索部分詞

舉例來說,如果我搜索「山」,我會得到每個詞與山詞。 但是,如果我搜索「坐騎」,我什麼也得不到。

+0

什麼是表列類型?爲什麼不使用LIKE? – Tom

回答

0

我與Symfony 1.4和Doctrine 1.2的可搜索行爲有同樣的問題,並遇到了這個問題。然後我發現你可以添加通配符(?或*)到適用於單詞的搜索詞。在你的情況下,「山*」將匹配山。在我的情況下,我將它應用於每個搜索詞並將其從用戶隱藏起來。

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

希望這可以幫助別人!

- 編輯 -

發佈有點倉促以上......這對一個單詞查詢的偉大工程,但在多個部分單詞再次失敗。這樣的事情應該會更好:

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