微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

全文搜索与索引以检查完全相同的文本

如何解决全文搜索与索引以检查完全相同的文本

我有这么长的文本,超过了索引的字节数限制。 文本没有任何空格。它是 dbname 和 table_name 之类的组合。

我只会查询完全相同的检查 select * from table where column='text' 要么 如果我使用全文搜索,它可能会喜欢这个。 select * from table where Match (column) Against(text)

我不知道以下两个选项中哪一个最好。 我将使用 text_example = '{dbname}/{tableName}' 来解释,但实际上,它是至少 5 种字符串的组合。

选项 1。使用全文搜索

选项 2。使用索引 要使用索引,我必须将 text_example 拆分为 5types。然后为每种类型创建索引。

create table info (
  dbname text,tableName text,index dbIdx (dbname),index tableIdx (tableName)
);

通常会插入查询

在这种情况下,哪个是存储的最佳方面? 性能怎么样?

或者有什么好的方法可以改进带有这么长文本的选择查询? 仅供参考,我使用 MysqL 8.0

解决方法

  • 标点符号,例如 /,用于分隔“单词”以用于 FULLTEXT
  • "dbname/tablename" 不是很长的文本 -- 可能限制为 129 个字符。 (所以,我不明白“索引的字节数限制”从何而来。)
  • col = 'text' 检查整列; MATCH..AGAINST 检查列中的“单词”。也就是说,他们做不同的事情。

请说明真实文本是什么样子以及真实查询是什么样子。然后我们可以就 FULLEXTBTREE 提供建议。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。