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 |艺术家|头衔|搜索|标签| 它在大多数情况下运行良好,但在其他一些情况下不起作用

两个主要问题是:

  • 如果我有两首带有这些搜索标签的歌曲:
  • a)
    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);
        }