我正在尝试使用codeigniter和doctrine执行全文搜索。 我的问题是,Doctrine只对整个单词进行搜索。
例如,我正在寻找“山”,我得到的每个条目都是山。 但如果我在寻找“坐骑”,我什么也得不到。
答案 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);