根据前缀查找表中的单词



我很好奇基于前缀存储和检索大量单词的最佳方式是什么。该表将包含约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%'

最新更新