我很好奇基于前缀存储和检索大量单词的最佳方式是什么。该表将包含约200000字。我需要根据给定的前缀(2个字符长)查找/返回所有匹配的单词
Ex。表包含="abc"abcd"aef"
如果前缀为"ab",则返回"abc"、"abcd"
我目前拥有的是:
select *
from table
where word like 'ab%'
但我觉得这不是最好的实现
如果SQLite可以使用索引进行查找,则此查询非常有效。
LIKE
不区分大小写,因此
- 列必须具有
TEXT
亲和性,即它应该声明为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%'