自定义搜索索引算法“... WHERE字样'ab%'按相关性排序”

时间:2012-09-19 15:04:17

标签: algorithm search indexing

我有一个字符串和int对的数组。我想搜索字符串并按照相应的int值的顺序列出它们。

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

我想为此实现索引算法,但不知道要使用什么算法。

在SQL中它将是这样的:

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

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

算法应该非常快。

谢谢

1 个答案:

答案 0 :(得分:0)

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

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