用学说搜索部分词

时间:2011-08-04 20:14:47

标签: search orm doctrine full-text-search

我正在尝试使用codeigniter和doctrine执行全文搜索。 我的问题是,Doctrine只对整个单词进行搜索。

例如,我正在寻找“山”,我得到的每个条目都是山。 但如果我在寻找“坐骑”,我什么也得不到。

1 个答案:

答案 0 :(得分:1)

我在Symfony 1.4和Doctrine 1.2中遇到了与Searchable行为相同的问题,并遇到了这个问题。然后我发现你可以在适用于单词的搜索词中添加通配符(?或*)。在你的情况下,“mount *”将匹配山。在我的情况下,我将其应用于每个搜索词并从用户隐藏它。

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

希望这有助于某人!

- 编辑 -

稍微匆匆发布一下......这对单字查询很有用,但在多个部分单词上再次失败。这样的事情会更好:

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