mysql - 无法在 MYSQL 中为阿拉伯文本创建 FULLTEXT INDEX
问题描述
我有一个大型 MySQL 数据库。一张表“新闻”有超过 600 万条条目。两列是阿拉伯语文本。我可以使用以下方法为两列创建索引:
mysql> CREATE FULLTEXT INDEX news_index ON news(news_title, news_text);
但索引为空,当我尝试执行全文搜索时收到以下错误:
mysql> SELECT news_title FROM news WHERE MATCH(news_title) AGAINST('أردوغان');
ERROR 1191 (HY000): Can't find FULLTEXT index matching the column list
该数据库使用 InnoDB 和 UTF-8。列编码是utf8_unicode_ci,我认为这可能是问题,所以我将两列更改为utf8_general_ci。
当我创建索引时,索引列表显示:
+-------+------------+---------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+---------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| news | 0 | PRIMARY | 1 | news_id | A | 4293286 | NULL | NULL | | BTREE | | |
| news | 1 | fk_news_1_idx | 1 | news_country | A | 18 | NULL | NULL | | BTREE | | |
| news | 1 | news_index | 1 | news_title | NULL | 4293286 | NULL | NULL | YES | FULLTEXT | | |
| news | 1 | news_index | 2 | news_text | NULL | 4293286 | NULL | NULL | YES | FULLTEXT | | |
+-------+------------+---------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
我也尝试过仅使用以下方法创建索引:
mysql> ALTER TABLE news ADD FULLTEXT(news_title, news_text);
但同样,没有运气。我遗漏了一些东西,当我创建索引时,它运行了一个多小时,所以发生了一些事情。我错过了什么?
解决方案
由于您的全文索引应用于两news_title,news_text
列,因此您应该同时使用 to inMATCH()
关键字
SELECT news_title FROM news WHERE MATCH(news_title,news_text) AGAINST('أردوغان');
推荐阅读
- javascript - 从正则表达式模式中获取示例匹配文本
- sql - Is there a way to count how many strings in a specific column are seen for the 1st time?
- android - 为什么每次我在 recyclerview 中看到所有数据并写入任何内容时,索引 0 总是重新启动而我的写入消失了
- javascript - 我有最小和最大数量如何生成 n 个数组
- sass - 如何证明此文本块的合理性并将其放在图标前面?
- powershell - Powershell - 管理txt文件内容
- java - Java:检测 dbf 的字符集
- python - 如何用另一个数据框更新一个熊猫数据框(更新旧数据并添加新数据)
- reactjs - 如何在特定坐标的 MapBox 上显示文本?
- haskell - 从另一个模块导入一元的东西