搜尋引擎背後的技術




搜尋引擎就像一個巨大的圖書館,背後還涉及網頁爬蟲就可類比於收集書籍的人,索引就是圖書館的目錄,排名算法就是決定哪本書最受歡迎的方法,而使用者介面就是你在圖書館看到的書架和指示牌。

網頁爬蟲 (Web Crawlers)
想像一個自動的機器人在網路上不停地「爬」,訪問各種網站,並收集網頁的內容。
這些機器人會按照連結從一個網頁跳到另一個網頁,就像我們點擊網頁上的連結一樣。

爬蟲訪問網頁的兩種主要策略會用深度優先搜索 (DFS) 和 廣度優先搜索 (BFS)
DFS 會優先訪問一個網頁的所有子頁面,而 BFS 則是優先訪問同一層級的所有網頁。

索引 (Indexing)
當機器人收集到網頁內容後,搜尋引擎會將這些內容儲存到一個巨大的「目錄」中。
這個目錄會將每個詞語和它出現的網頁相關聯,方便之後快速查找。

TF-IDF (Term Frequency-Inverse Document Frequency):一種衡量詞語在文檔中重要性的方法。

公式為: TF-IDF(,)=TF(,)×IDF()

其中,TF(t, d) 是詞語 t 在文檔 d 中的出現次數。
IDF(t) 是詞語 t 的逆文檔頻率,公式為:
IDF(t)=log(DF(t)N)

N 是文檔總數,DF(t) 是包含詞語 t 的文檔數。


語義搜尋 (Semantic Search)
BERT、Transformer:這些是近年來用於自然語言處理的深度學習模型,能夠理解查詢的語境,提供更精確的搜尋結果。



排名算法 (Ranking Algorithms)
當你在搜尋框輸入一個查詢時,搜尋引擎會在它的目錄中查找相關的網頁。
但通常會有很多網頁都與你的查詢相關,所以搜尋引擎需要一個方法來決定哪些網頁應該排在前面。這就是所謂的排名算法。
這些算法會考慮很多因素,例如網頁的內容、其他網站是否連結到這個網頁、網頁的新舊程度等等。

PageRank:是 Google 初期用來評估網頁重要性的算法。

PR(pi)=(1d)+d×pjM(pi)L(pj)PR(pj)

其中, 是目標網頁,() 是連結到 的網頁集合,() 是網頁 的外部連結數,d 是阻尼因子,通常設為 0.85。


使用者介面 (User Interface)
這是你看到的搜尋框和結果頁面。當你輸入查詢後,搜尋引擎會將排名最高的結果顯示給你。







留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header