Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 自定义搜索索引算法的“;。。。如';ab%和#x27;“重新发布订单”;_Algorithm_Search_Indexing - Fatal编程技术网

Algorithm 自定义搜索索引算法的“;。。。如';ab%和#x27;“重新发布订单”;

Algorithm 自定义搜索索引算法的“;。。。如';ab%和#x27;“重新发布订单”;,algorithm,search,indexing,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树,但是我意识到一个

我有一个字符串和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树并不适合这个目的

算法应该很快

谢谢你(http://en.wikipedia.org/wiki/Trie)如果要查找以前缀开头的所有单词,则是一种良好的数据结构。您可以获取所有单词,然后根据相关性对它们进行排序


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

定义相关性。它应该根据levenstein距离吗?“在SQL中应该是这样的”-不,它不是。。。为什么
%
?多个单词在哪里?或者我误解了要求..是否要检索单词或出现的单词。如果查询显示的只是单词本身,那么相关性应该如何确定?每个字符串都有其相应的int值。这些int值通过一些后台逻辑增加。例如,我想搜索以“ab”开头的单词,其对应的“相关性”int值在以“ab”开头的单词中是最高的。所以,{Abba,20},{Abigail,50}应该返回Abigail,因为它的int值更高。Trie听起来很有希望,但我认为找到最相关的单词非常昂贵,因为你必须迭代所有的项目。比如说,如果我在搜索所有以字母“a”开头的单词,而有1000或10000个以“a”开头的单词,我必须全部阅读。