自动完成

时间:2013-01-25 12:25:08

标签: algorithm autocomplete nosql

Google或亚马逊如何在搜索框中实施自动建议。我正在寻找具有技术堆栈的算法。

PS:我在网上搜索过,发现了thisthis等等。但我更感兴趣的不是他们做了什么,而是他们是如何做到的。 NoSQL数据库存储阶段?或者根据关键字进行排序或散列?所以重新解释这个问题:鉴于不同的搜索列表忽略个性化,地理位置等,他们如何存储,管理和建议它。

2 个答案:

答案 0 :(得分:2)

这属于stastical language processing problems的范围。看看spelling suggestion article by Norvig。自动完成将使用类似的机制。 这个想法是,从过去的搜索中,你知道短语的概率(或者更好地称为bigram,trigram,ngram)。对于每个这样的短语,自动完成选择具有最大值

的短语
P(phrase|word_typed) = P(word_typed|phrase) P(phrase) / P(word_typed) 
P(phrase|word_typed) = Probability that phrase is right phrase if word typed 
so far is word_typed

Norvig的文章对这个概念非常容易理解。

答案 1 :(得分:0)

谷歌接受你的输入并根据RANK ID给出TOP4结果[如果结果少于它将参数作为空字符串返回]给予不同的关键字,这些关键字由命中和未命中计数动态地不同。 然后,他们进行搜索查询并在Json中返回带有url,title和另外2个字段的4个字段,omnibox然后使用Chrome trunk中的预填充函数填充数据。