2013-01-25 554 views
2

Google或amazon如何在搜索框中實施自動建議。我正在尋找技術堆棧的算法。自動完成

PS:我在網上搜索,發現​​和this等等。但我更感興趣的不是他們做什麼,而是他們如何做。 NoSQL數據庫存儲階段?或者根據關鍵字的排序或散列?因此,重新提出這個問題:鑑於忽略個性化,地理位置等的不同搜索列表,他們如何存儲,管理和建議如此好。

+2

你需要問一位谷歌工程師,他們可能不會告訴你答案... –

+2

如果有人知道它是一個人,那麼這個人要麼死了,要麼我覺得很富有。 (地球上這個問題如何得到upvote?) – ppeterka

回答

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 

的有一個最大值弱勢族羣的文章是這個概念的一個非常方便和很好的解釋。

0

Google會根據RANK ID給出TOP4結果[如果結果較少,則返回參數爲空字符串]給不同的關鍵字,這些關鍵字由命中和未命中計數動態不同。 然後,他們進行搜索查詢並返回4個字段,其中包含JSON中的url,title和2個字段,然後多功能框使用Chrome主幹中的預填充函數填充數據。