我有一个表单,当我输入一个值时,我希望得到提交的结果;
如果我搜索fish
并且我有fishing
值,我想获取包含fish
值的所有数据;
在我的代码中,只有输入完整的fishing
字词,才能得到我需要的结果;
我正在搜索完整的表达式以及表达式中的每个单词;
$sphinx_search = Yii::app()->search;
$sphinx_search->setSelect('*');
$sphinx_search_final = '';
$sphinx_search_query = trim($this->q);
if (strlen($sphinx_search_query) > 0) {
$sphinx_search_query = str_replace('-', ' ', $sphinx_search_query);
$keys = explode(' ', $sphinx_search_query);
foreach ($keys as $k => $key) {
if ($key) {
$keys[$k] = $key;
} else {
unset($keys[$k]);
}
}
if (count($keys) > 0) {
$sphinx_search_final = ' @(position_name,employer_name,employer_first_name,employer_last_name,employer_position) ' . $sphinx_search_query .
' @(position_name,employer_name,employer_first_name,employer_last_name,employer_position) ' . implode('|', $keys);
}
}
答案 0 :(得分:2)
启用min_prefix_len
或min_infix_len
获得明确的子串匹配能力。
还要检查enable_star
,因为这会改变其行为的确切程度。
Alternativly也许阻止你正在寻找什么?通过morphology