Searchstring是:“警察丹佛”。
我需要结果就是这样,警察在丹佛。现在我得到丹佛的每一个警察和一切。
这就是我所拥有的,这是指定搜索应该是完全还是任何的部分。但它并没有像我想的那样工作。 “警察丹佛”没有任何结果,警察丹佛导致芝加哥警方,丹佛消防员等等......
(代码来自k2 joomla扩展,开源)
$sql .= " AND MATCH(i.title, i.introtext, i.`fulltext`,i.image_caption,i.image_credits,i.video_caption,i.video_credits,i.extra_fields_search,i.metadesc,i.metakey) ";
if ($type == 'exact')
{
$text = JString::trim($search, '"');
$escaped = K2_JVERSION == '15' ? $db->getEscaped($text, true) : $db->escape($text, true);
$text = $db->Quote('"'.$db->getEscaped($text, true).'"', false);
}
else //this is search for any of the words
{
$search = JString::str_ireplace('*', '', $search);
$words = explode(' ', $search);
for ($i = 0; $i < count($words); $i++)
{
$words[$i] .= '*';
}
$search = implode(' ', $words);
$escaped = K2_JVERSION == '15' ? $db->getEscaped($search, true) : $db->escape($search, true);
$text = $db->Quote($escaped, false);
}
$sql .= " AGAINST ({$text} IN BOOLEAN MODE)";
}
return $sql;
答案 0 :(得分:0)
在我找到方法时自己回答:
我刚刚添加了
$words[$i] = "+".$words[$i];
在for()循环中并且它可以工作。