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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么