如何解决全文搜索与索引以检查完全相同的文本
我有这么长的文本,超过了索引的字节数限制。 文本没有任何空格。它是 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
检查列中的“单词”。也就是说,他们做不同的事情。
请说明真实文本是什么样子以及真实查询是什么样子。然后我们可以就 FULLEXT
与 BTREE
提供建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。