gpt4 book ai didi

php - 使用 utf8 的 MySQL 全文搜索(波斯语/阿拉伯语)

转载 作者:行者123 更新时间:2023-11-29 01:43:59 26 4
gpt4 key购买 nike

我在使用 UTF8/Unicode 波斯语/阿拉伯语进行全文搜索时遇到问题(查询中未找到任何内容)。

  • 表的编码设置为 utf8/utf8_persian_ci。
  • 使用 mysql_query("SET NAMES 'UTF8'"); 进行 Unicode 查询。
  • 英文字符串工作正常。

以下是我的搜索代码:

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

哪里出了问题,或者如何用 Unicode 语言进行全文搜索?

最佳答案

索引列必须 <= 1000 字节编码。

您不能对波斯字母进行全文搜索,因为其编码超过 1000 字节。如前所述here .

例如,您的آòمایشی 具有以下字符编码字节映射:

Array
(
[0] => 1570
[1] => 1586
[2] => 1605
[3] => 1575
[4] => 1740
[5] => 1588
[6] => 1740
)

关于php - 使用 utf8 的 MySQL 全文搜索(波斯语/阿拉伯语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12073163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com