2011-08-04 126 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);