MySQL全文搜索无法正常工作

时间:2014-10-28 21:36:13

标签: php mysql full-text-search

我的这张桌子上有歌曲标题,艺术家等。


| id |艺术家|标题| search_tags |

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);
    }

在大多数情况下它可以正常工作,但对其他一些情况不起作用。

两个主要问题是:

  1. 如果我有两首带有这些搜索标签的歌曲:
  2. a)era isterfi money per money

    b)era istrefi e dehun

    当我使用此查询进行搜索时:era e dehun它会显示era istrefi money per money作为结果。为什么会这样? Are single chars a problem?

    和2。 如果我有一首带有search_tags:23 miley cyrus的歌曲,并且我使用23作为搜索查询,则表明我没有结果。如果我以前搜索麦莉,一切都会正常。

0 个答案:

没有答案