dongyi9330 2012-08-22 12:28 采纳率: 100%
浏览 153
已采纳

使用utf8进行MySQL全文搜索(波斯语/阿拉伯语)

I have problem with full text search just on UTF8/Unicode Persian/Arabic Language (nothing found from querys).

  • Tables are set with utf8/utf8_persian_ci on encoding.
  • Using mysql_query("SET NAMES 'UTF8'"); for Unicode Querys.
  • English strings work fine.

Below is My search codes:

<?php
mysql_connect("localhost", "user", "password");
mysql_select_db("search");
mysql_query("SET NAMES 'UTF8'"); 

$q = $_GET['q'];

?>
<form action="<?php $_SERVER['PHP_SELF']; ?>">
<input type="text" name="q" value="<?php echo $q; ?>">
<input type="submit" value="Search!">
</form>
<hr>
<?php
if (isset($q)) 
{
    $res = mysql_query("SELECT *, MATCH(name, description) AGAINST ('$q') AS score from search_test WHERE MATCH (name, description) AGAINST('$q') order by score desc");
    $ant = mysql_num_rows($res);
    if ($ant > 0) 
    { // query provided results – display results
        echo ("<br/><h2>Search results for \"$q\":</h2>");
        while ($result = mysql_fetch_array($res)) 
        {
            echo ("<h3>{$result['name']} ({$result['score']})</h3>{$result['description']}<br/><br/>");
        }
    }
    else 
    { // query provided 0 results – display 0 hit message
        echo ("<br/><h2>Nothing Found \"$q\" query</h2>");
    }
}
?>

where is the problem or how can I search with full-text on Unicode language ?

  • 写回答

2条回答 默认 最新

  • doqw89029 2012-08-22 13:34
    关注

    Indexed columns must <= 1000 byte encoding.

    You cannot do a FULLTEXT search on Persian letters as the have > 1000 byte encoding. As it is stated here.

    for example your آزمایشی has the following character encoding bytes map:

    Array
    (
        [0] => 1570
        [1] => 1586
        [2] => 1605
        [3] => 1575
        [4] => 1740
        [5] => 1588
        [6] => 1740
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算