Php MySQL全文搜索无法正常工作
我有这张桌子,上面有歌曲名称、艺术家等Php MySQL全文搜索无法正常工作,php,mysql,full-text-search,Php,Mysql,Full Text Search,我有这张桌子,上面有歌曲名称、艺术家等 |id |艺术家|头衔|搜索|标签| 它在大多数情况下运行良好,但在其他一些情况下不起作用 两个主要问题是: 如果我有两首带有这些搜索标签的歌曲: a) i每种货币的金额 b) era istrefi e dehun 当我使用这个查询进行搜索时:era e dehun结果显示era istrefi money per money。为什么会这样单字符是否存在问题? 二,。 如果我有一首带有搜索标签的歌曲:23麦莉赛勒斯,我使用23作为搜索查询,它不会显示任
|id |艺术家|头衔|搜索|标签| 它在大多数情况下运行良好,但在其他一些情况下不起作用 两个主要问题是:
i每种货币的金额
b) era istrefi e dehun
当我使用这个查询进行搜索时:era e dehun
结果显示era istrefi money per money
。为什么会这样<代码>单字符是否存在问题?
二,。
如果我有一首带有搜索标签的歌曲:
23麦莉赛勒斯
,我使用23
作为搜索查询,它不会显示任何结果。如果我先搜索麦莉的ex.第二个问题,你需要至少3个字符进行全文搜索(这可以更改,但要小心)第一个好era
匹配-全文搜索可能会返回更多错误匹配,您可能需要应用一些相关性分数,并且只显示特定分数的结果。谢谢您的回答@达贡
if(isset($_POST["search_value"]) && $_POST["search_value"] != null) {
$search_value = $db->mysqli->real_escape_string($_POST["search_value"]);
//hiq apostrofet
//hiq pikat
$search = array("\'", ".", " ");
$replace = array("", "", " +");
$search_value = str_replace($search, $replace, $search_value);
$query = "
select * from `music`
where
match(`search_tags`) against ('+$search_value*' IN BOOLEAN MODE)
order by views desc
limit 1
";
//+ vihet per t paren
$run_query = $db->mysqli->query($query);
$result = $run_query->fetch_assoc();
if($run_query->num_rows > 0)
echo json_encode($result);
}