我很好奇根据前缀存储和检索大量单词的最佳方法是什么。该表将包含约 200,000 个单词。我需要根据给定的前缀(长度为 2 个字符)查找/返回所有匹配的单词
例。表包含 = "abc""abcd"aef"
给定前缀“ab”返回“abc”、“abcd”
我目前拥有的是:
select *
from table
where word like 'ab%'
但我觉得这不是最好的实现方式
最佳答案
如果 SQLite 可以使用索引进行查找,则此查询非常有效。
LIKE
不区分大小写,所以
- 该列必须有
TEXT
affinity ,也就是说,它应该声明为word TEXT
或类似的东西;和 索引必须是created as case insensitive ,即像这样的东西:
CREATE INDEX MyTable_word_index ON MyTable(word COLLATE NOCASE);
如果你想要区分大小写的比较,你可以使用任何普通索引和一些普通比较运算符:
SELECT *
FROM MyTable
WHERE word >= 'ab'
AND word < 'ac'
关于database - 根据前缀在表中查找单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17666067/