2013-10-29 73 views
0

我想建立一個具有智能自適應搜索引擎(可以說汽車)的應用程序。如果我搜索4x4,那麼數據庫將返回我擁有的所有4x4汽車(100輛汽車) - 但隨着時間的推移,我開始檢查汽車,喜歡它們,評論它們等,搜索結果的順序應該是不同的。這意味着1個月後,當搜索4x4時,我應該得到相同的結果集,按照我之前與該網站的交互進行排序。如果我主要喜歡和評論德國汽車,寶馬應該位居前列,陸地巡洋艦應該會進一步下滑。 (例如:汽車起源,用戶年齡,用戶位置,汽車類型[4x4,轎跑車,掀背車],價格範圍)。這個排名應該基於我捕捉用戶交互的屬性。因此,對於我得到的每一輛車的結果,我將根據它在上述5個屬性上的表現有多好來衡量它。排名/稱重搜索結果

我打算使用數據庫作爲存儲庫,並在服務器上進行排名和思考。我的問題是,我應該使用什麼樣的算法來衡量/排列我的搜索結果?

謝謝。

回答

0

你基本上說,你已經有了幾個排序方案:喜歡的汽車的類別

  • 關鍵字搜索結果
  • 可能其他人,如普及,某種形式的日期,等

你做的就是做了一個新的方案是什麼,把它相關

  • 相關= W * keyword_score + W * likes_score + ...

和排序的相關性。試驗重量W ,W ,...,直到你找到有用的東西。

從我的理解搜索引擎工作在這個原則。谷歌已經投入了200多種不同的投入進入相關性分數,而PageRank只是其中之一。這種方法的優點在於,它可以讓你調整每件事的重要性(甚至是針對每個查詢),並且可以讓你添加額外的輸入,而不用把所有東西搞砸。

+0

謝謝...我同意,唯一的事情是我想我可能需要更復雜的稱重公式......例如,如果一個用戶搜索了30輛4x4汽車和20輛德國汽車,那將會有點困難在您的公式中替換這些值... – biso

+0

@biso好吧,您有兩套類別:汽車類型(4x4,轎車等)和國籍(德語,美國等)。據推測,汽車的類型會更高。 – Adam