gpt4 book ai didi

php - 在 MEDIUMTEXT 上使用 MySQL 进行全词搜索

转载 作者:行者123 更新时间:2023-11-30 22:47:28 26 4
gpt4 key购买 nike

我知道这个问题已经讨论过很多次了。不管怎样,我想再弄清楚。

好吧,我的表“articles”包含这些字段:

  • 标题(varchar 255)
  • 关键字(varchar 255)
  • content_body_1(中文本)
  • content_body_2(中文本)

“标题”和“关键词”都有索引。但是,MEDIUMTEXT 字段上没有索引。

我需要对所有这些字段执行“全词”搜索。我现在正在使用 REGEXP 执行此操作:

SELECT * FROM `articles` WHERE `content_body_1` REGEXP '[[:<:]]"keyword"[[:>:]]'

等等。 100 篇文章没问题,但 1000 篇文章就非常慢(2-3 秒)。 REGEXP 在 MySQL 中不使用索引。如果我有 10000 篇文章怎么办?有什么方法可以更快地搜索整个关键字吗?

我怎样才能得到它? FULLTEXT 快得多吗?如果是 - 我该如何设计我的数据库?还有我应该如何处理 FULLTEXT 搜索的最小字符数限制?

谢谢。

最佳答案

FULLTEXT 在应用时比 REGEXP 快很多。作为测试,我在 0.06 秒内从 173,979 行中找到了 4 行中的一个词。

您需要执行 ALTER TABLE tbl ADD FULLTEXT(content_body_1); 为该列构建 FT 索引。

您可以将多个列组合成一个 FT 索引——如果您想要搜索所有列。如果您还想搜索单个列,则添加单列 FT 索引。

研究细节; MyISAM 有一组注意事项; InnoDB 有一个不同的集合。

关于php - 在 MEDIUMTEXT 上使用 MySQL 进行全词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29198226/

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