2012-09-19 28 views
0

我有一个字符串数组和int对。我想搜索字符串并按照它们相应的int值的顺序列出它们。自定义搜索索引算法“... WHERE字状的relevace‘AB%’秩序”

class WordClass 
{ 
public string Word; 
public int Relevance; 
} 
WordClass words[]; 

我想实现一个索引算法,但不知道使用什么算法。

在SQL它会是这样的:

SELECT word FROM table WHERE word like 'ab%' order by relevance 

我已经创建了一个AVL树,但我意识到,一个AVL树是不是真的适合这个目的。

的算法应该是非常快的。

谢谢

+0

定义*相关*。它应该根据levenstein距离吗? – amit

+0

“在SQL中它会是这样的” - 不,它不是......为什么'%'?多个词在哪里?或者我误解了要求.. –

+0

你想检索单词或单词的出现吗?如果您的查询所暗示的仅仅是单词,那么相关性应该如何确定? –

回答

0

特里树(http://en.wikipedia.org/wiki/Trie)是一个很好的数据结构,如果你想找到所有以前缀开头的单词。你可以得到所有的单词,然后按相关性对它们进行排序。

但是这不会是非常有效的,如果你只是想,只选择前k最高相关的词。

+0

特里听起来前途,但我想找到最相关的词是非常昂贵的,因为你必须遍历所有项目。假设我正在搜索以字母“a”开头的所有单词,并且有1000或10000个以“a”开头的单词,我必须阅读所有这些单词。 – Zsolt