我很好奇基于前缀存储和检索大量单词的最佳方法是什么。该表将包含约 200,000 个单词。我需要根据给定的前缀(长度为 2 个字符)查找/返回所有匹配的单词
前任。表包含 = "abc" "abcd" aef"
给定前缀“ab”返回“abc”、“abcd”
我目前拥有的是:
select *
from table
where word like 'ab%'
但我不觉得这是最好的实现
如果 SQLite 可以为此查找使用索引,则此查询非常有效。
LIKE
不区分大小写,所以
TEXT
affinity,即,它应该被声明为word TEXT
或类似的东西;和索引必须创建为不区分大小写,即,如下所示:
CREATE INDEX MyTable_word_index ON MyTable(word COLLATE NOCASE);
如果你想要一个区分大小写的比较,你可以使用任何正常的索引和一些正常的比较运算符:
SELECT *
FROM MyTable
WHERE word >= 'ab'
AND word < 'ac'
SELECT * FROM tableName WHERE word LIKE 'ab%'