Ⅰ 中國的八大搜索引擎是哪些
中國的八大搜索引擎有網路、網易、雅虎、阿里巴巴、搜狗、谷歌、必應、中搜。
1、網路,全球最大的中文搜索引擎及最大的中文網站,全球領先的人工智慧公司。網路願景是:成為最懂用戶,並能幫助人們成長的全球頂級高科技公司。
網路擁有數萬名研發工程師,這是中國乃至全球最為優秀的技術團隊。這支隊伍掌握著世界上最為先進的搜索引擎技術,使網路成為中國掌握世界尖端科學核心技術的中國高科技企業,也使中國成為美國、俄羅斯、和韓國之外,全球僅有的4個擁有搜索引擎核心技術的國家之一。
2、網易公司是中國的互聯網公司,利用互聯網技術,加強人與人之間信息的交流和共享,實現「網聚人的力量」。
網易在推出了包括中文全文檢索、全中文大容量免費郵件系統、無限容量免費網路相冊、免費電子賀卡站、網上虛擬社區、網上拍賣平台、24小時客戶服務中心在內的業內領先產品或服務,還通過自主研發推出了國產網路游戲。網易公司推出了門戶網站、在線游戲、電子郵箱、在線教育、電子商務、在線音樂、網易bobo等多種服務。
3、雅虎是曾經的全球第一門戶搜索網站,業務遍及24個國家和地區,為全球超過5億的獨立用戶提供多元化的網路服務。
中國雅虎開創性地將全球領先的互聯網技術與中國本地運營相結合,成為中國互聯網界位居前列的搜索引擎社區與資訊服務提供商。中國雅虎一直致力於以創新、人性、全面的網路應用,為億萬中文用戶帶來最大價值的生活體驗,成為中國互聯網的「生活引擎」。
4、搜狗是搜狐公司的旗下子公司,於2004年8月3日推出,目的是增強搜狐網的搜索技能,主要經營搜狐公司的搜索業務。在搜索業務的同時,也推出搜狗輸入法、搜狗高速瀏覽器。
全球首個百億規模中文搜索引擎,收錄100億網頁,再創全球中文網頁收錄量新高。每日網頁更新達5億,用戶可直接通過網頁搜索而非新聞搜索,獲得最新新聞資訊。在導航型和信息型的兩種查詢結果中,分別以94%和67%的准確度領先業界。
5、微軟必應(英文名:Bing)是微軟公司於2009年5月28日推出,為符合中國用戶使用習慣,Bing中文品牌名為「必應」,作為全球領先的搜索引擎之一。
微軟在中國啟用全新明黃色必應搜索標志並去除Beta標識,這使必應成為繼Windows、Office和Xbox後的微軟品牌第四個重要產品線,也標志著必應已不僅僅是一個搜索引擎,更將深度融入微軟幾乎所有的服務與產品中。
6、中搜是中國國內領先的第三代搜索引擎服務及技術應用提供商。依託第三代搜索引擎和個性化微件,實現了人類知識和搜索技術的融合,通過兩大WEB站點、移動APP、雲服務平台等載體為網民及企業提供全新的第三代搜索引擎體驗。
Ⅱ web編程 製作分類搜索引擎
客戶端通過瀏覽器向Web伺服器請求搜索引擎程序,搜索引擎程序調用中間件進行搜索處理,這種搜索處理包括在本網站上資料庫中的搜索和對 Internet上其他伺服器的搜索。然後中間件伺服器把搜索結果返回給Web伺服器上的搜索引擎程序。搜索引擎程序再將數據封裝為HTML 或XML返回給客戶端的瀏覽器。
反觀現在的個人網站,大多使用的是提供商提供的免費空間,沒有 CGI 、沒有ASP、沒有執行和寫入許可權、沒有資料庫,還有的免費空間連1M以上的文件都不讓上傳(題外話),所以在個人網站上用上面的方法實現關鍵字搜索引擎是不現實的。我們要實現關鍵字搜索,就必須找到一種不需伺服器端動態腳本和資料庫的方法,而且它需要滿足以下條件:
1. 數據具有良好的結構性;
2. 有方便的數據訪問介面;
3. 有方便的數據查找介面;
4. 能夠生成具有良好封裝型的HTML。
我們可以通過這樣一種解決方案實現以上構想:
圖像
客戶端通過瀏覽器請求XML文檔和客戶端腳本語言,Web伺服器像返回HTML一樣返回給瀏覽器XML和客戶端腳本,在由瀏覽器進行計算,得出搜索結果。這樣做的優點是不需增加Web伺服器的負擔;缺點是
XML文檔在被計算之前需要完全下載到客戶端,假如存儲的記錄太多,就會在下載上浪費很多時間(熟悉網路程序的人會發現,這實際上繼承了分布式網路應用出現之前的結構)。
讓我們看一看這種方案的性能:
1.數據的結構性
讓我們比較一下傳統資料庫的表和XML
ID
Name
Phone
1
張三
61111111
2
李四
62222222
3
王五
63333333
我們從右圖可以看出:XML文檔有媲美資料庫的良好文檔結構。
圖像
2.數據訪問介面
在Internet Explorer 中,微軟提供了XML文檔對象模型(XMLDOM),這樣我們可以通過對XML文檔對象的操作輕松訪問XML
文檔,我們以一個存儲文章信息的XML文檔TECH.XML 為例:
'VBScript
Dim xmldoc
Set xmldoc = CreateObject("Microsoft.XMLDOM")
xmldoc.load "tech.xml"
以上代碼段首先創建一個XML文檔對象,然後調用其load 方法從TECH.XML 裝載XML
文檔
3.數據查找介面
'VBScript
Set objNodeList = xmldoc.getElementsByTagName("title")
Set objdiscList = xmldoc.getElementsByTagName("discribe")
Set objhrefList = xmldoc.getElementsByTagName("href")
這三行代碼分別從XML文檔對象中查找出標簽為"title"、"discribe"、"href" 的元素,存放到XMLDOM提供的NodeList (節點列表)對象中。
4.數據的封裝型
由於IE 和Netscape支持XML。所以可以直接顯示XML,也可以在腳本程序中使用微軟提供的文檔對象模型(DOM)寫出一定格式。
完整代碼見下:
search.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>搜索</title>
<script language="VBScript">
<!--
Dim xmldoc
Set xmldoc = CreateObject("Microsoft.XMLDOM")
xmldoc.load "tech.xml"
function search()
if keyword.Value="" then
msgbox "Input the keyword first!!!"
else
key=keyword.value
document.writeln "<html><head><meta http-equiv=Content-Type content=text/html; charset=gb2312>
<title>Cyber Class 網站文章檢索(從標題查詢)</title></head><body>Cyber Class
網站文章檢索<br>
<br><table border=1 cellpadding=0 cellspacing=0 width=100% bordercolor=#000000
bordercolorlight=#000000bordercolordark=#FFFFFF><tr><td bgcolor=#108cd8><font color=#FFFFFF>
Title</font></td><td bgcolor=#108cd8><font color=#FFFFFF>Discribe</font></td><td bgcolor=#108cd8>
<font color=#FFFFFF>GO!</font></td></tr>"
Set objNodeList = xmldoc.getElementsByTagName("title")
Set objdiscList = xmldoc.getElementsByTagName("discribe")
Set objhrefList = xmldoc.getElementsByTagName("href")
For i = 0 To (objNodeList.length - 1)
if InStr(objNodeList.Item(i).Text,key)<>0 then
document.write "<tr><td>" & objNodeList.Item(i).Text & "</td>"
document.write "<td>" & objdiscList.Item(i).Text & "</td>"
document.write "<td><a href=" & objhrefList.Item(i).Text & " target=_blank>" & objhrefList.Item(i).Text &
"</a></td></tr>"
end if
Next
document.writeln "</table><a href=search.htm>返回</a><br><br><br>
注意:該查詢系統
<font color=#ff0000>大小寫敏感</font>,查詢英文時若未返回結果請改換大小寫再試。<br>
<p align=center>Powered by Lynne@ Cyber Class</p></body></html>"
end if
end function
function searchboth()
if keyword.Value="" then
msgbox "Input the keyword first!!!"
else
key=keyword.value
document.writeln "<html><head><meta http-equiv=Content-Type content=text/html; charset=gb2312>
<title>Cyber Class網站文章檢索(從標題和摘要查詢)</title></head><body>Cyber Class網站文章檢索
<br><br><table border=1 cellpadding=0 cellspacing=0 width=100% bordercolor=#000000
bordercolorlight=#000000 bordercolordark=#FFFFFF><tr><td bgcolor=#108cd8><font color=#FFFFFF>
Title</font></td><td bgcolor=#108cd8><font color=#FFFFFF>Discribe</font></td><td bgcolor=#108cd8>
<font color=#FFFFFF>GO!</font></td></tr>"
Set objNodeList = xmldoc.getElementsByTagName("title")
Set objdiscList = xmldoc.getElementsByTagName("discribe")
Set objhrefList = xmldoc.getElementsByTagName("href")
For i = 0 To (objNodeList.length - 1)
if (InStr(objNodeList.Item(i).Text,key)<>0) or (InStr(objdiscList.Item(i).Text,key)<>0) then
document.write "<tr><td>" & objNodeList.Item(i).Text & "</td>"
document.write "<td>" & objdiscList.Item(i).Text & "</td>"
document.write "<td><a href=" & objhrefList.Item(i).Text & " target=_blank>" & objhrefList.Item(i).Text &
"</a></td></tr>"
end if
Next
document.writeln "</table><a href=search.htm>返回</a><br><br><br>
注意:該查詢系統
<font color=#ff0000>大小寫敏感</font>,查詢英文時若未返回結果請改換大小寫再試。<br>
<p align=center>Powered by Lynne @ Cyber Class 2001/6</p>
</body></html>"
end if
end function
-->
</script>
</head>
<body>
Cyber Class網站文章檢索<br>
<br>Input the keyword:
<input type="text" id="keyword"><br><br>
<input type="button" value="僅在標題中查詢" onclick="search()">
<input type="button" value="在標題和摘要中查詢" onclick="searchboth()">
<br><br><br>
Ⅲ 在www伺服器中,用戶的信息檢索可以從一台Web伺服器自動搜索到另一台Web伺服器,所用的技術是什麼
Web通過超文本的方式,把Internet上不同計算機中的信息有機的結合在一起,並通過超文本傳輸協議(HTTP)從一台Web伺服器轉到另一台Web伺服器上檢索信息或鏈接其他Internet資源,用戶只要單擊這些超文本或超媒體,就能立即跳到與之相關的內容。由於Web信息資源數量十分龐大,用戶在利用現有搜索引擎檢索信息時面臨一個海量數據的查詢問題,往往造成在消耗巨大的通信資源後依然存在資源查不準、查不全的問題。目前基於單一系統映射的Web伺服器集群系統能把若干伺服器用區域網連接成一個整體,並使其從客戶端看來就如同一台伺服器在服務,這使得在邏輯上合並、組織地理位置分布的信息資源成為可能。∮∵慲怑鎃☆ 的感言: 謝謝咯...!
Ⅳ 電腦web伺服器在哪打開
以Windows10系統為例,web伺服器指的是網站伺服器,可以瀏覽web文檔,也可以放置網站文件,具體web文件的位置打開電腦--開始--控制面板--Internet Information Services後,在展開的節點里就可以看到相應的web程序信息了。
總的來說,web伺服器就是一組提供web訪問頁面的伺服器,Web伺服器是一個程序,運行在物理伺服器上,等待著客戶端發送請求,當收到請求後,它會生成響應返回給客戶端。嚴格意義上Web伺服器只負責處理HTTP協議,只能發送靜態頁面的內容。所以web伺服器一般也被稱為HTTP伺服器。
Ⅳ 搜索引擎是運行在Web上的_____軟體系統
。。。。這種蛋疼的題目誰出的。
我猜下答案:
資料庫
蜘蛛
機器人
智能
伺服器
資料庫 這個答案相當准確。。但是其他答案也沒錯。。
Ⅵ WEB伺服器是指什麼
Web伺服器是指駐留於網際網路上某種類型計算機的程序。當Web瀏覽器(客戶端)連到伺服器上並請求文件時,伺服器將處理該請求並將文件發送到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。伺服器使用HTTP(超文本傳輸協議)進行信息交流,這就是人們常把它們稱為HTTPD伺服器的原因。
Web伺服器不僅能夠存儲信息,還能在用戶通過Web瀏覽器提供的信息的基礎上運行腳本和程序。例如,假設你要提供免費公司資訊,只要建立一張免費請求表單,它就會要求你的讀者輸入郵寄及公司信息;讀者填完表後,點擊提交按鈕,該表單將送至伺服器計算機上的某一程序,它負責處理該請求,並用E-mail給讀者發一份免費資訊。你還可以讓該程序把客戶提供的信息發給你,以便用於某資料庫上。用於執行這些功能的程序或腳本稱為網關腳本/程序,或稱為CGI(通用網關界面)腳本。在Web上,你所見到的大多數表單和搜索引擎上都使用了該技術。
Web伺服器可駐留於各種類型的計算機,從常見的PC到巨型的UNIX網路,以及其他各種類型的計算機。它們通常經過一條高速線路與網際網路連接,如果對性能無所謂,則也可使用低速連接(甚至是數據機),但對於架設電子商店來說,性能絕對是要考慮的問題。
Ⅶ web與搜索引擎的聯系
以下觀點是個人觀點(本人做才做2年的C#程序員,經驗不足,有說得不對,請指教)
智能搜索引擎技術是web2.0中的一種應用,
Web2.0是以 Flickr、Craigslist、Linkedin、Tribes、Ryze、 Friendster、Del.icio.us、43Things.com等網站為代表,以Blog、TAG、SNS、RSS、wiki等應用為核心,依據六度分隔、xml、ajax等新理論和技術實現的互聯網新一代模式。
智能搜索引擎技術:也用到了ajax技術,如網路知道裡面,就可以不用刷新整個頁面而更新部分內容,好多訪問都是在後台進行的,界面友好,實時,同時也減少整頁訪問給伺服器帶來負擔。雖然網路採用什麼格式反應更新內容,但我猜想一定也用到了XML格式。
Ⅷ web搜索引擎屬於人工智慧嗎
web搜索引擎是屬於人工智慧的。
web(World Wide Web)即全球廣域網,也稱為萬維網,它是一種基於超文本和HTTP的、全球性的、動態交互的、跨平台的分布式圖形信息系統。
是建立在Internet上的一種網路服務,為瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易於訪問的直觀界面,其中的文檔及超級鏈接將Internet上的信息節點組織成一個互為關聯的網狀結構。
web的表現形式:
超文本是一種用戶介面方式,用以顯示文本及與文本相關的內容。現時超文本普遍以電子文檔的方式存在,其中的文字包含有可以鏈接到其他欄位或者文檔的超文本鏈接,允許從當前閱讀位置直接切換到超文本鏈接所指向的文字。
超文本的格式有很多,目前最常使用的是超文本標記語言(Hyper Text Markup Language,HTML)及富文本格式 (Rich Text Format,RTF)。我們日常瀏覽的網頁上的鏈結都屬於超文本。
超文本鏈接一種全局性的信息結構,它將文檔中的不同部分通過關鍵字建立鏈接,使信息得以用交互方式搜索。
超媒體是超級媒體的簡稱。是超文本(hypertext)和多媒體在信息瀏覽環境下的結合。用戶不僅能從一個文本跳到另一個文本,而且可以激活一段聲音,顯示一個圖形,甚至可以播放一段動畫。
Internet採用超文本和超媒體的信息組織方式,將信息的鏈接擴展到整個Internet上。Web就是一種超文本信息系統,Web的一個主要的概念就是超文本鏈接。
它使得文本不再像一本書一樣是固定的線性的,而是可以從一個位置跳到另外的位置並從中獲取更多的信息,還可以轉到別的主題上。想要了解某一個主題的內容只要在這個主題上點一下,就可以跳轉到包含這一主題的文檔上。正是這種多連接性把它稱為Web。
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議。
Ⅸ web伺服器問題
例如,假設你要提供免費公司資訊,只要建立一張免費請求表單,它就會要求你的讀者輸入郵寄及公司信息;讀者填完表後,點擊提交按鈕,該表單將送至伺服器計算機上的某一程序,它負責處理該請求,並用E-mail給讀者發一份免費資訊。你還可以讓該程序把客戶提供的信息發給你,以便用於某資料庫上。用於執行這些功能的程序或腳本稱為網關腳本/程序,或稱為CGI(通用網關界面)腳本。在Web上,你所見到的大多數表單和搜索引擎上都使用了該技術。 Web伺服器可駐留於各種類型的計算機,從常見的PC到巨型的UNIX網路,以及其他各種類型的計算機。它們通常經過一條高速線路與網際網路連接,如果對性能無所謂,則也可使用低速連接(甚至是數據機),但對於架設電子商店來說,性能絕對是要考慮的問題。 1) 虛擬主機 虛擬主機是使用特殊的軟硬體技術,把一台計算機主機分成一台台"虛擬"的主機,每一台虛擬主機都具有獨立的域名和IP地址(或共享的IP地址),具有完整的網際網路伺服器功能。虛擬主機之間完全獨立,在外界看來,每一台虛擬主機和一台獨立的主機完全一樣,用戶可以利用它來建立完全屬於自己的WWW、FTP和E-mail伺服器。 虛擬主機技術的出現,是對網際網路技術的重大貢獻,是廣大網際網路用戶的福音。由於多台虛擬主機共享一台真實主機的資源,每個用戶承受的硬體費用、網路維護費用、通訊線路費用均大幅度降低,使網際網路真正成為人人用得起的網路。現在,幾乎所有的美國公司(包括一些家庭)均在網路上設立了自己的Web伺服器。 虛擬主機服務提供者的伺服器硬體構成的性能比較高,通訊線路也比較通暢,可以達到非常高的數據傳輸速度(可達45Mb/s),為用戶提供了一個良好的外部環境;用戶還不用負責機器硬體的維護、軟體設置、網路監控、文件備份等工作。因而也就不需要為這些工作頭痛和花錢了。 2) 伺服器託管 伺服器託管即租用ISP機架位置,建立企業Web服務系統。企業主機放置在ISP機房內,由ISP分配IP地址,提供必要的維護工作,由企業自己進行主機內部的系統維護及數據的更新。
Ⅹ 常用的搜索引擎有哪些
索引擎(search engines)是對互聯網上的信息資源進行搜集整理,然後供你查詢的系統,它包括信息搜集、信息整理和用戶查詢三部分。 搜索引擎是一個為你提供信息「檢索」服務的網站,它使用某些程序把網際網路上的所有信息歸類以幫助人們在茫茫網海中搜尋到所需要的信息。 早期的搜索引擎是把網際網路中的資源伺服器的地址收集起來,由其提供的資源的類型不同而分成不同的目錄,再一層層地進行分類。人們要找自己想要的信息可按他們的分類一層層進入,就能最後到達目的地,找到自己想要的信息。這其實是最原始的方式,只適用於網際網路信息並不多的時候。隨著網際網路信息按幾何式增長,出現了真正意義上的搜索引擎,這些搜索引擎知道網站上每一頁的開始,隨後搜索網際網路上的所有超級鏈接,把代表超級鏈接的所有詞彙放入一個資料庫。這就是現在搜索引擎的原型。 隨著yahoo!的出現,搜索引擎的發展也進入了黃金時代,相比以前其性能更加優越。現在的搜索引擎已經不只是單純的搜索網頁的信息了,它們已經變得更加綜合化,完美化了。以搜索引擎權威yahoo!為例,從1995年3月由美籍華裔楊致遠等人創辦yahoo!開始,到現在,他們從一個單一的搜索引擎發展到現在有電子商務、新聞信息服務、個人免費電子信箱服務等多種網路服務,充分說明了搜索引擎的發展從單一到綜合的過程。 然而由於搜索引擎的工作方式和網際網路的快速發展,使其搜索的結果讓人越來越不滿意。例如,搜索「電腦」這個詞彙,就可能有數百萬頁的結果。這是由於搜索引擎通過對網站的相關性來優化搜索結果,這種相關性又是由關鍵字在網站的位置、網站的名稱、 標簽等公式來決定的。這就是使搜索引擎搜索結果多而雜的原因。而搜索引擎中的資料庫因為網際網路的發展變化也必然包含了死鏈接。 這篇文章中,我們介紹了google,它是一個大型的搜索引擎(of a large-scale search engine)的原型,搜索引擎在超文本中應用廣泛。Google的設計能夠高效地抓網頁並建立索引,它的查詢結果比其它現有系統都高明。這個原型的全文和超連接的資料庫至少包含24『000『000個網頁。我們可以從http://google.stanford.e/ 下載。 設計搜索引擎是一項富有挑戰性的工作。搜索引擎為上億個網頁建立索引,其中包含大量迥然不同的詞彙。而且每天要回答成千上萬個查詢。在網路中,盡管大型搜索引擎非常重要,但是學術界卻很少研究它。此外由於技術的快速發展和網頁的大量增加,現在建立一個搜索引擎和三年前完全不同。 本文詳細介紹了我們的大型搜索引擎,據我們所知,在公開發表的論文中,這是第一篇描述地如此詳細。除了把傳統數據搜索技術應用到如此大量級網頁中所遇到的問題,還有許多新的技術挑戰,包括應用超文本中的附加信息改進搜索結果。 本文將解決這個問題,描述如何運用超文本中的附加信息,建立一個大型實用系統。任何人都可以在網上隨意發布信息,如何有效地處理這些無組織的超文本集合,也是本文要關注的問題。 關鍵詞 World Wide Web,搜索引擎,信息檢索,PageRank, Google 1 緒論 Web 給信息檢索帶來了新的挑戰。Web上的信息量快速增長,同時不斷有毫無經驗的新用戶來體驗Web這門藝術。人們喜歡用超級鏈接來網上沖浪,通常都以象Yahoo這樣重要的網頁或搜索引擎開始。大家認為List(目錄)有效地包含了大家感興趣的主題,但是它具有主觀性,建立和維護的代價高,升級慢,不能包括所有深奧的主題。基於關鍵詞的自動搜索引擎通常返回太多的低質量的匹配。使問題更遭的是,一些廣告為了贏得人們的關注想方設法誤導自動搜索引擎。 我們建立了一個大型搜索引擎解決了現有系統中的很多問題。應用超文本結構,大大提高了查詢質量。我們的系統命名為google,取名自googol的通俗拼法,即10的100次方,這和我們的目標建立一個大型搜索引擎不謀而合。 1.1網路搜索引擎—升級換代(scaling up):1994-2000 搜索引擎技術不得不快速升級(scale dramatically)跟上成倍增長的web數量。1994年,第一個Web搜索引擎,World Wide Web Worm(WWWW)可以檢索到110,000個網頁和Web的文件。到1994年11月,頂級的搜索引擎聲稱可以檢索到2『000』000(WebCrawler)至100『000』000個網路文件(來自 Search Engine Watch)。可以預見到2000年,可檢索到的網頁將超過1『000』000『000。同時,搜索引擎的訪問量也會以驚人的速度增長。在1997年的三四月份,World Wide Web Worm 平均每天收到1500個查詢。 在1997年11月,Altavista 聲稱它每天要處理大約20』000』000個查詢。隨著網路用戶的增長,到2000年,自動搜索引擎每天將處理上億個查詢。我們系統的設計目標要解決許多問題,包括質量和可升級性,引入升級搜索引擎技術(scaling search engine technology),把它升級到如此大量的數據上。 1.2 Google:跟上Web的步伐(Scaling with the Web)建立一個能夠和當今web規模相適應的搜索引擎會面臨許多挑戰。抓網頁技術必須足夠快,才能跟上網頁變化的速度(keep them up to date)。存儲索引和文檔的空間必須足夠大。索引系統必須能夠有效地處理上千億的數據。處理查詢必須快,達到每秒能處理成百上千個查詢(hundreds to thousands per second.)。隨著Web的不斷增長,這些任務變得越來越艱巨。然而硬體的執行效率和成本也在快速增長,可以部分抵消這些困難。 還有幾個值得注意的因素,如磁碟的尋道時間(disk seek time),操作系統的效率(operating system robustness)。在設計Google的過程中,我們既考慮了Web的增長速度,又考慮了技術的更新。Google的設計能夠很好的升級處理海量數據集。它能夠有效地利用存儲空間來存儲索引。優化的數據結構能夠快速有效地存取(參考4.2節)。進一步,我們希望,相對於所抓取的文本文件和HTML網頁的數量而言,存儲和建立索引的代價盡可能的小(參考附錄B)。對於象Google這樣的集中式系統,採取這些措施得到了令人滿意的系統可升級性(scaling properties)。 1. 3設計目標 1.3.1提高搜索質量我們的主要目標是提高Web搜索引擎的質量。1994年,有人認為建立全搜索索引(a complete search index)可以使查找任何數據都變得容易。根據Best of the Web 1994 -- Navigators ,「最好的導航服務可以使在Web上搜索任何信息都很容易(當時所有的數據都可以被登錄)」。然而1997年的Web就迥然不同。近來搜索引擎的用戶已經證實索引的完整性不是評價搜索質量的唯一標准。用戶感興趣的搜索結果往往湮沒在「垃圾結果Junk result」中。實際上,到1997年11月為止,四大商業搜索引擎中只 有一個能夠找到它自己(搜索自己名字時返回的前十個結果中有它自己)。導致這一問題的主要原因是文檔的索引數目增加了好幾個數量級,但是用戶能夠看的文檔數卻沒有增加。用戶仍然只希望看前面幾十個搜索結果。因此,當集合增大時,我們就需要工具使結果精確(在返回的前幾十個結果中,有關文檔的數量)。由於是從成千上萬個有點相關的文檔中選出幾十個,實際上,相關的概念就是指最好的文檔。高精確非常重要,甚至以響應(系統能夠返回的有關文檔的總數)為代價。令人高興的是利用超文本鏈接提供的信息有助於改進搜索和其它應用 。尤其是鏈接結構和鏈接文本,為相關性的判斷和高質量的過濾提供了大量的信息。Google既利用了鏈接結構又用到了anchor文本(見2.1和2.2節)。 1.3.2搜索引擎的學術研究隨著時間的流逝,除了發展迅速,Web越來越商業化。1993年,只有1.5%的Web服務是來自.com域名。到1997年,超過了60%。同時,搜索引擎從學術領域走進商業。到現在大多數搜索引擎被公司所有,很少技公開術細節。這就導致搜索引擎技術很大程度上仍然是暗箱操作,並傾向做廣告(見附錄A)。Google的主要目標是推動學術領域在此方面的發展,和對它的了解。另一個設計目標是給大家一個實用的系統。應用對我們來說非常重要,因為現代網路系統中存在大量的有用數據(us because we think some of the most interesting research will involve leveraging the vast amount of usage data that is available from modern web systems)。例如,每天有幾千萬個研究。然而,得到這些數據卻非常困難,主要因為它們沒有商業價值。我們最後的設計目標是建立一個體系結構能夠支持新的關於海量Web數據的研究。為了支持新研究,Google以壓縮的形式保存了實際所抓到的文檔。設計google的目標之一就是要建立一個環境使其他研究者能夠很快進入這個領域,處理海量Web數據,得到滿意的結果,而通過其它方法卻很難得到結果。系統在短時間內被建立起來,已經有幾篇論文用到了Google建的資料庫,更多的在起步中。我們的另一個目標是建立一個宇宙空間實驗室似的環境,在這里研究者甚至學生都可以對我們的海量Web數據設計或做一些實驗。 2. 系統特點 Google搜索引擎有兩個重要特點,有助於得到高精度的搜索結果。 第一點,應用Web的鏈接結構計算每個網頁的Rank值,稱為PageRank,將在98頁詳細描述它。 第二點,Google利用超鏈接改進搜索結果。 2.1 PageRank:給網頁排序 Web的引用(鏈接)圖是重要的資源,卻被當今的搜索引擎很大程度上忽視了。我們建立了一個包含518『000』000個超鏈接的圖,它是一個具有重要意義的樣本。這些圖能夠快速地計算網頁的PageRank值,它是一個客觀的標准,較好的符合人們心目中對一個網頁重要程度的評價,建立的基礎是通過引用判斷重要性。因此在web中,PageRank能夠優化關鍵詞查詢的結果。對於大多數的主題,在網頁標題查詢中用PageRank優化簡單文本匹配,我們得到了令人驚嘆的結果(從google.stanford.e可以得到演示)。對於Google主系統中的全文搜索,PageRank也幫了不少忙。 2.1.1計算PageRank 文獻檢索中的引用理論用到Web中,引用網頁的鏈接數,一定程度上反映了該網頁的重要性和質量。PageRank發展了這種思想,網頁間的鏈接是不平等的。 PageRank定義如下: 我們假設T1…Tn指向網頁A(例如,被引用)。參數d是制動因子,使結果在0,1之間。通常d等於0.85。在下一節將詳細介紹d。C(A)定義為網頁A指向其它網頁的鏈接數,網頁A的PageRank值由下式給出: PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn)) 注意PageRank的形式,分布到各個網頁中,因此所有網頁的PageRank和是1。 PageRank或PR(A)可以用簡單的迭代演算法計算,相應規格化Web鏈接矩陣的主特徵向量。中等規模的網站計算26『000』000網頁的PageRank值要花費幾小時。還有一些技術細節超出了本文論述的范圍。 2.1.2直覺判斷 PageRank被看作用戶行為的模型。我們假設網上沖浪是隨機的,不斷點擊鏈接,從不返回,最終煩了,另外隨機選一個網頁重新開始沖浪。隨機訪問一個網頁的可能性就是它的PageRank值。制動因子d是隨機訪問一個網頁煩了的可能性,隨機另選一個網頁。對單個網頁或一組網頁,一個重要的變數加入到制動因子d中。這允許個人可以故意地誤導系統,以得到較高的PageRank值。我們還有其它的PageRank演算法,見98頁。 另外的直覺判斷是一個網頁有很多網頁指向它,或者一些PageRank值高的網頁指向它,則這個網頁很重要。直覺地,在Web中,一個網頁被很多網頁引用,那麼這個網頁值得一看。一個網頁被象Yahoo這樣重要的主頁引用即使一次,也值得一看。如果一個網頁的質量不高,或者是死鏈接,象Yahoo這樣的主頁不會鏈向它。PageRank處理了這兩方面因素,並通過網路鏈接遞歸地傳遞。 & nbsp; 2.2鏈接描述文字(Anchor Text)我們的搜索引擎對鏈接文本進行了特殊的處理。大多數搜索引擎把鏈接文字和它所鏈向的網頁(the page that the link is on)聯系起來。另外,把它和鏈接所指向的網頁聯系起來。這有幾點好處。 第一,通常鏈接描述文字比網頁本身更精確地描述該網頁。 第二,鏈接描述文字可能鏈向的文檔不能被文本搜索引擎檢索到,例如圖像,程序和資料庫。有可能使返回的網頁不能被抓到。注意哪些抓不到的網頁將會帶來一些問題。在返回給用戶前檢測不了它們的有效性。這種情況搜索引擎可能返回一個根本不存在的網頁,但是有超級鏈接指向它。然而這種結果可以被挑出來的,所以此類的問題很少發生。鏈接描述文字是對被鏈向網頁的宣傳,這個思想被用在World Wide Web Worm 中,主要因為它有助於搜索非文本信息,能夠用少量的已下載文檔擴大搜索范圍。我們大量應用鏈接描述文字,因為它有助於提高搜索結果的質量。有效地利用鏈接描述文字技術上存在一些困難,因為必須處理大量的數據。現在我們能抓到24『000』000個網頁,已經檢索到259『000』000多個鏈接描述文字。 2.3其它特點除了PageRank和應用鏈接描述文字外,Google還有一些其它特點。 第一,所有hit都有位置信息,所以它可以在搜索中廣泛應用鄰近性(proximity)。 第二,Google跟蹤一些可視化外表細節,例如字型大小。黑體大號字比其它文字更重要。 第三,知識庫存儲了原始的全文html網頁。 3有關工作 Web檢索研究的歷史簡短。World Wide Web Worm()是最早的搜索引擎之一。後來出現了一些用於學術研究的搜索引擎,現在它們中的大多數被上市公司擁有。與Web的增長和搜索引擎的重要性相比,有關當今搜索引擎技術的優秀論文相當少。根據Michael Mauldin(Lycos Inc的首席科學家)) ,「各種各樣的服務(包括Lycos)非常關注這些資料庫的細節。」雖然在搜索引擎的某些特點上做了大量工作。具有代表性的工作有,對現有商業搜索引擎的結果進行傳遞,或建立小型的個性化的搜索引擎。最後有關信息檢索系統的研究很多,尤其在有組織機構集合(well controlled collections)方面。在下面兩節,我們將討論在信息檢索系統中的哪些領域需要改進以便更好的工作在Web上。 3.1信息檢索信息檢索系統誕生在幾年前,並發展迅速。然而大多數信息檢索系統研究的對象是小規模的單一的有組織結構的集合,例如科學論文集,或相關主題的新聞故事。實際上,信息檢索的主要基準,the Text Retrieval Conference(),用小規模的、有組織結構的集合作為它們的基準。 大型文集基準只有20GB,相比之下,我們抓到的24000000個網頁佔147GB。在TREC上工作良好的系統,在Web上卻不一定產生好的結果。例如,標准向量空間模型企圖返回和查詢請求最相近的文檔,把查詢請求和文檔都看作由出現在它們中的詞彙組成的向量。在Web環境下,這種策略常常返回非常短的文檔,這些文檔往往是查詢詞再加幾個字。例如,查詢「Bill Clinton」,返回的網頁只包含「Bill Clinton Sucks」,這是我們從一個主要搜索引擎中看到的。網路上有些爭議,用戶應該更准確地表達他們想查詢什麼,在他們的查詢請求中用更多的詞。我們強烈反對這種觀點。如果用戶提出象「Bill Clinton」這樣的查詢請求,應該得到理想的查詢結果,因為這個主題有許多高質量的信息。象所給的例子,我們認為信息檢索標准需要發展,以便有效地處理Web數據。 3.2有組織結構的集合(Well Controlled Collections)與Web的不同點 Web是完全無組織的異構的大量文檔的集合。Web中的文檔無論內在信息還是隱含信息都存在大量的異構性。例如,文檔內部就用了不同的語言(既有人類語言又有程序),詞彙([email]地址,鏈接,郵政編碼,電話號碼,產品號),類型(文本,HTML,PDF,圖像,聲音),有些甚至是機器創建的文件(log文件,或資料庫的輸出)。可以從文檔中推斷出來,但並不包含在文檔中的信息稱為隱含信息。隱含信息包括來源的信譽,更新頻率,質量,訪問量和引用。不但隱含信息的可能來源各種各樣,而且被檢測的信息也大不相同,相差可達好幾個數量級。例如,一個重要主頁的使用量,象Yahoo 每天瀏覽數達到上百萬次,於此相比無名的歷史文章可能十年才被訪問一次。很明顯,搜索引擎對這兩類信息的處理是不同的。 Web與有組織結構集合之間的另外一個明顯區別是,事實上,向Web上傳信息沒有任何限制。靈活利用這點可以發布任何對搜索引擎影響重大的信息,使路由阻塞,加上為牟利故意操縱搜索引擎,這些已經成為一個嚴重的問題。這些問題還沒有被傳統的封閉的信息檢索系統所提出來。它關心的是元數據的努力,這在Web搜索引擎中卻不適用,因為網頁中的任何文本都不會向用戶聲稱企圖操縱搜索引擎。甚至有些公司為牟利專門操縱搜索引擎。 4 系統分析(System Anatomy)首先,我們提供高水平的有關體系結構的討論。然後 ,詳細描述重要的數據結構。最後,主要應用:抓網頁,索引,搜索將被嚴格地檢查。 Figure 1. High Level Google Architecture 4.1Google體系結構概述這一節,我們將看看整個系統是如何工作的(give a high level),見圖1。本節不討論應用和數據結構,在後幾節中討論。為了效率大部分Google是用c或c++實現的,既可以在Solaris也可以在Linux上運行。 Google系統中,抓網頁(下載網頁)是由幾個分布式crawlers完成的。一個URL伺服器負責向crawlers提供URL列表。抓來的網頁交給存儲伺服器storeserver。然後,由存儲伺服器壓縮網頁並把它們存到知識庫repository中。每個網頁都有一個ID,稱作docID,當新URL從網頁中分析出時,就被分配一個docID。由索引器和排序器負責建立索引index function。索引器從知識庫中讀取文檔,對其解壓縮和分析。每個文檔被轉換成一組詞的出現情況,稱作命中hits。Hits紀錄了詞,詞在文檔中的位置,最接近的字型大小,大小寫。索引器把這些hits分配到一組桶barrel中,產生經過部分排序後的索引。索引器的另一個重要功能是分析網頁中所有的鏈接,將有關的重要信息存在鏈接描述anchors文件中。該文件包含了足夠的信息,可以用來判斷每個鏈接鏈出鏈入節點的信息,和鏈接文本。 URL分解器resolver閱讀鏈接描述anchors文件,並把相對URL轉換成絕對URL,再轉換成docID。為鏈接描述文本編制索引,並與它所指向的docID關聯起來。同時建立由docID對組成的鏈接資料庫。用於計算所有文檔的PageRank值。用docID分類後的barrels,送給排序器sorter,再根據wordID進行分類,建立反向索引inverted index。這個操作要恰到好處,以便幾乎不需要暫存空間。排序器還給出docID和偏移量列表,建立反向索引。一個叫DumpLexicon的程序把這個列表和由索引器產生的字典結合在一起,建立一個新的字典,供搜索器使用。這個搜索器就是利用一個Web伺服器,使用由DumpLexicon所生成的字典,利用上述反向索引以及頁面等級PageRank來回答用戶的提問。 4.2主要數據結構經過優化的Google數據結構,能夠用較小的代價抓取大量文檔,建立索引和查詢。雖然近幾年CPU和輸入輸出速率迅速提高。磁碟尋道仍然需要10ms。任何時候Google系統的設計都盡可能地避免磁碟尋道。這對數據結構的設計影響很大。 4.2.1大文件大文件BigFiles是指虛擬文件生成的多文件系統,用長度是64位的整型數據定址。多文件系統之間的空間分配是自動完成的。BigFiles包也處理已分配和未分配文件描述符。由於操縱系統不能滿足我們的需要,BigFiles也支持基本的壓縮選項。 4.2.2知識庫 Figure 2. Repository Data Structure 知識庫包含每個網頁的全部HTML。每個網頁用zlib(見RFC1950)壓縮。壓縮技術的選擇既要考慮速度又要考慮壓縮率。我們選擇zlib的速度而不是壓縮率很高的bzip。知識庫用bzip的壓縮率接近4:1。而用zlib的壓縮率是3:1。文檔一個挨著一個的存儲在知識庫中,前綴是docID,長度,URL,見圖2。訪問知識庫不需要其它的數據結構。這有助於數據一致性和升級。用其它數據結構重構系統,我們只需要修改知識庫和crawler錯誤列表文件。 4.2.3文件索引文件索引保存了有關文檔的一些信息。索引以docID的順序排列,定寬ISAM(Index sequential access mode)。每條記錄包括當前文件狀態,一個指向知識庫的指針,文件校驗和,各種統計表。如果一個文檔已經被抓到,指針指向docinfo文件,該文件的寬度可變,包含了URL和標題。否則指針指向包含這個URL的URL列表。這種設計考慮到簡潔的數據結構,以及在查詢中只需要一個磁碟尋道時間就能夠訪問一條記錄。還有一個文件用於把URL轉換成docID。它是URL校驗和與相應docID的列表,按校驗和排序。要想知道某個URL的docID,需要計算URL的校驗和,然後在校驗和文件中執行二進制查找,找到它的docID。通過對這個文件進行合並,可以把一批URL轉換成對應的docID。URL分析器用這項技術把URL轉換成docID。這種成批更新的模式是至關重要的,否則每個鏈接都需要一次查詢,假如用一塊磁碟,322『000』000個鏈接的數據集合將花費一個多月的時間。 4.2.4詞典詞典有幾種不同的形式。和以前系統的重要不同是,詞典對內存的要求可以在合理的價格內。現在實現的系統,一台256M內存的機器就可以把詞典裝入到內存中。現在的詞典包含14000000詞彙(雖然一些很少用的詞彙沒有加入到詞典中)。它執行分兩部分—詞彙表(用null分隔的連續串)和指針的哈希表。不同的函數,詞彙表有一些輔助信息,這超出了本文論述的范圍。 4.2.5 hit list hit list是一篇文檔中所出現的詞的列表,包括位置,字型大小,大小寫。Hit list占很大空間,用在正向和反向索引中。因此,它的表示形式越有效越好。我們考慮了幾種方案來編碼位置,字型大小,大小寫—簡單編碼(3個整型數),緊湊編碼(支持優化分配比特位),哈夫曼編碼。Hit的詳細信息見圖3。我們的緊湊編碼每個hit用2位元組。有兩種類型hit,特殊hit和普通hit。特殊hit包含URL,標題,鏈接描述文字,meta tag。普通hit包含其它每件事。它包括大小寫特徵位,字型大小,12比特用於描述詞在文檔中的位置(所有超過4095的位置標記為4096)。字型大小採用相對於文檔的其它部分的相對大小表示,佔3比特(實際只用7個值,因為111標志是特殊hit)。特殊hit由大小寫特徵位,字型大小位為7表示它是特殊hit,用4比特表示特殊hit的類型,8比特表示位置。對於anchor hit八比特位置位分出4比特用來表示在anchor中的位置,4比特用於表明anchor出現的哈希表hash of the docID。短語查詢是有限的,對某些詞沒有足夠多的anchor。我們希望更新anchor hit的存儲方式,以便解決地址位和docIDhash域位數不足的問題。