1

我很好奇基于前缀存储和检索大量单词的最佳方法是什么。该表将包含约 200,000 个单词。我需要根据给定的前缀(长度为 2 个字符)查找/返回所有匹配的单词

前任。表包含 = "abc" "abcd" aef"

给定前缀“ab”返回“abc”、“abcd”

我目前拥有的是:

select *
from table
where word like 'ab%'

但我不觉得这是最好的实现

4

2 回答 2

2

如果 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'
于 2013-07-16T06:59:29.370 回答
0

SELECT * FROM tableName WHERE word LIKE 'ab%'

于 2013-07-16T00:35:11.470 回答