如何在sql中执行T9搜索方法?

时间:2011-12-30 01:15:23

标签: sql search

我是sql数据库的新手,目前我想做一个可以执行T9搜索方法的数据库,但我不知道如何制作它。任何人都可以指导我吗?提前致谢

3 个答案:

答案 0 :(得分:1)

假设你不太担心效率,并且有一个包含这种形式的整个字典的表:Dictionary([id],[hashed],[word])

其中[哈希]字段是用其组符号替换每个字符(例如'a','b'和'c'可以替换为'A')

假设我们有一个'hash'存储函数,使得hash([word])= [hashed]。

然后你可以简单地运行这个查询: Select word from Dictionary where [hashed] like (hash(input)+'%')

答案 1 :(得分:0)

您应该知道的第一件事是LIKE运算符,用于自动完成:

http://www.w3schools.com/sql/sql_like.asp

SQL查询不是T9样式查询的最佳方式。

有更高效的数据结构支持针对此类问题的可扩展,强大的解决方案。 (例如,特里:http://en.wikipedia.org/wiki/Trie

答案 2 :(得分:0)

在android中,我使用GLOB执行T9搜索,例如GLOB'[ABC] [DEF] *'

db.rawQuery("SELECT _id, word, freq FROM dicttable WHERE word GLOB '"+searchWord+"*' ORDER BY freq DESC",
            null);

希望这可以提供帮助