關於搜尋引擎的研究論文
關於搜尋引擎的研究論文
摘要:搜尋引擎的出現, 把網際網路產品的技術水平提高到了一個新的高度。本文首先介紹搜尋引擎技術的發展歷程, 其次簡要介紹了搜尋引擎關鍵技術和產品;隨著移動終端智慧化和網際網路使用者個性化以及社交化為中心的融合趨勢下的發展, 催生了很多新型應用。結合目前管理資訊系統網際網路化的發展方向, 詳細介紹了搜尋引擎在管理資訊系統中的一整套應用案例。
關鍵詞:搜尋引擎; 搜尋引擎技術; 搜尋引擎產品; 搜尋引擎在管理資訊系統中案例; 搜尋引擎發展趨勢;
Discussion on search engine
Abstract:The emergence of search engine takes the Internet product technology to a new level. This article first introduces the development of search engine technology, then introduces search engine's key technologies and products.With the intelligent mobile terminals, services users personalized services, and social network integration as the center of the trend, a lot of new applications have emerged. Combined with the development direction of the current management MIS system, this article introduces the application case of search engine in MIS system.
Keyword:search engine; search engine technology; search engine product; search engine in management information system case; search engine development trend;
1、引言
搜尋引擎的誕生源自網際網路最根本的用途之一:資訊獲取。
在搜尋引擎出現之前, 網際網路缺少入口, 使用者往往需要自己記住有用的網站和網頁。為了滿足這種需求, 最早的“搜尋引擎”, 即分類目錄瀏覽式的引擎便出現了, Yahoo就是其中的代表。最初只是採用把一些有用的網站透過分類的方式手工組織起來, 便於使用者找到有用的資訊。能夠手工組織也是基於早年整個網際網路的網站數量也非常少, 可以透過人工方式實現組織。
隨著網際網路的壯大, 網頁網站數量越來越多, 手工組織的方式變為不可行, 於是由機器實現的全文檢索引擎便出現了。使用者可以透過關鍵字查詢來獲取相關的網頁。又隨著網頁數量的不斷增多, 任何關鍵字查詢都會返回大量的相關網頁, 如果對網頁進行評分和排序, 返回給使用者真正有價值的網頁便成為重點。基於網頁之間的連結關係為網頁進行評分, 成為很多搜尋引擎的網頁排序演算法基礎, Google的Page Rank演算法便是其中的代表者。
Google也以此為基礎成為搜尋引擎產品中的領先者, 為使用者提供了更好的搜尋結果相關性。現代搜尋引擎基本上也由此基本成型, 雖然後來的技術創新和改進很多, 但主要的思路基本上沒有變。
搜尋引擎發展到今天, 基礎架構和演算法在技術上都已經基本成型和成熟。搜尋引擎已經發展成為根據一定的策略、運用特定的計算機程式從網際網路上搜集資訊, 在對資訊進行組織和處理後, 為使用者提供檢索服務, 將使用者檢索相關的資訊展示給使用者的系統。
2、搜尋引擎技術
搜尋引擎所涉及和涵蓋的技術範圍非常廣, 涉及到了系統架構和演算法設計等許多方面。可以說由於搜尋引擎的出現, 把網際網路產品的技術水平提高到了一個新的高度;搜尋引擎無論是在資料和系統規模, 還是在演算法技術的研究應用深度上, 都遠超之前簡單的網際網路產品。
搜尋引擎涉及的關鍵技術點包含:爬蟲 (Crawling) 、索引結構 (Inverted Index) 、檢索模型 (VSM&TF-IDF) 、搜尋排序 (Relevance Ranking&Evaluation) 、連結分析 (Link Analysis) 、分類 (Document&Query Classification) 、自然語言處理 (NLP:Tokenization, Lemmatization, POS Tagging, NER, etc.) 、分散式系統 (Distributed Processing&Storage) .
雖然搜尋引擎涉及的技術方方面面, 但歸結起來最關鍵的幾點在於:
●系統:大規模分散式系統, 支撐大規模的資料處理容量和線上查詢負載。
●資料:資料處理和挖掘能力。
●演算法:搜尋相關性排序、查詢分析、分類等。
由此可見搜尋引擎系統是一個由許多模組組成的複雜系統, 核心模組通常包括爬蟲、索引、檢索和排序, 除了必需的核心模組之外, 通常還需要一些支援輔助模組, 常見的有連結分析、去重、反垃圾、查詢分析等。搜尋引擎中各關鍵功能模組功能簡介如下:
(1) 爬蟲:從網際網路爬取原始網頁資料, 儲存於文件知識庫伺服器。
(2) 文件知識庫伺服器:儲存原始網頁資料, 通常是分散式Key-Value資料庫, 能根據URL/UID快速獲取網頁內容。
(3) 索引:讀取原始網頁資料, 解析網頁, 抽取有效欄位, 生成索引資料。索引資料的生成方式通常是增量的, 分塊/分片的, 並會進行索引合併、最佳化和刪除。生成的索引資料通常包括:字典資料、倒排表、正排表、文件屬性等。生成的索引儲存於索引伺服器。
(4) 索引伺服器:儲存索引資料, 主要是倒排表, 通常是分塊、分片儲存, 並支援增量更新和刪除。資料內容量非常大時, 還根據類別、主題、時間、網頁質量劃分資料分割槽和分佈, 更好地服務線上查詢。
(5) 檢索:讀取倒排表索引, 響應前端查詢請求, 返回相關文件列表資料。
(6) 排序:對檢索器返回的文件列表進行排序, 基於文件和查詢的相關性、文件的連結權重等屬性。
(7) 連結分析:收集各網頁的連結資料和錨文字 (Anchor Text) , 以此計算各網頁連結評分, 最終會作為網頁屬性參與返回結果排序。
(8) 網頁去重:提取各網頁的相關特徵屬性, 計算相似網頁組, 提供離線索引和線上查詢的去重服務。
(9) 網頁反垃圾:收集各網頁和網站歷史資訊, 提取垃圾網頁特徵, 從而對線上索引中的網頁進行判定, 去除垃圾網頁。
(10) 查詢分析:分析使用者查詢, 生成結構化查詢請求, 指派到相應的類別、主題資料伺服器進行查詢。
(11) 頁面描述/摘要:為檢索和排序完成的網頁列表提供相應的描述和摘要。
(12) 前端:接受使用者請求, 分發至相應伺服器, 返回查詢結果。
3、搜尋引擎產品介紹
搜尋引擎產品其實包括很多種類, 並不限於我們最熟悉的全網搜尋引擎。具體包含如下幾種:
●全網搜尋:包括市場份額最高的幾大搜尋引擎巨頭, 如Google、Yahoo、Bing.
●中文搜尋:在中文搜尋市場中, 百度一家獨大, 其他幾家如搜狗、搜搜、有道的市場份額相對還比較小。全網搜尋和中文搜尋屬於傳統的搜尋引擎, 它們經過了十幾年的發展, 目前在技術和產品上都已走向逐漸穩定和成熟, 通用搜索的市場也基本進入飽和, 不像早些年一直呈現高增長率。
●垂直搜尋:傳統搜尋引擎穩定成熟的同時, 在各個垂直領域, 也出現了很多和產品結合得很好的垂直搜尋產品, 比如淘寶的購物搜尋、大眾點評的美食搜尋、去哪兒和酷訊的旅遊搜尋等, 也都在各自領域佔據了相當大的市場, 成為除了通用搜索引擎之外的重要的使用者入口。
●問答搜尋:專注於為問句式提供有效的答案, 比如Ask.com;其他的如問答社群像Quora和國內的知乎, 應該也會往這方面發展。
●知識搜尋:典型代表就是Wolfram Alpha, 區別於提供搜尋結果列表, 它會針對查詢提供更詳細的整合資訊。
●雲搜尋平臺:為其他產品和應用提供搜尋服務託管平臺 (Saa S或是Paa S) , Amazon剛剛推出它的Cloud Search, Index Tank在被Linkedin收購之前也是做這項服務的。
●其他:比如Duck Duck Go, 主打隱私保護, 也有部分使用者買賬。
各種搜尋產品在各自領域都需要解決特定的技術和業務問題, 所以也可以建立相對通用搜索的優勢, 來得到自己的市場和使用者。在開源領域, 各種開源產品和解決方案也逐漸發展成熟, 通用搜索技術不再為大公司所專有, 中小企業能夠以較低的成本實現自己的搜尋應用。現在搜尋引擎產品之間的競爭更多的在資料、應用方式和產品形態上, 在系統架構和基本演算法上區分並不大。
搜尋引擎在未來發展上, 一是搜尋將不僅僅以獨立產品的形式出現, 更多的會作為搜尋功能整合到更多的產品和應用中。在產品形態上, 基於傳統的搜尋引擎, 會演化出像推薦引擎、知識引擎、決策引擎等形式的產品, 更好地滿足和服務使用者需求。而搜尋引擎所涉及和發展起來的各種技術, 會更廣泛地應用到各種其他產品上, 比如自然語言處理、推薦和廣告、資料探勘等。
總之, 搜尋引擎對網際網路技術和產品帶來的影響是巨大的`, 未來也仍將有很大的發展和應用空間。
4、搜尋引擎未來發展的趨勢
搜尋引擎的快速發展就是近15年發生的, 這與網際網路的發展趨勢密切相關。最近幾年, 網際網路在經過了Web2.0的市場培育階段後, 迎來了以網際網路使用者的個性化和社交化為中心的趨勢。同時, 移動裝置的逐漸流行及兩大趨勢的融合, 催生了很多新型應用, 為了迎接和順應這種趨勢, 對搜尋引擎來說, 也產生了新的挑戰。
(1) 社會化搜尋
隨著Facebook的流行, 社交網路平臺和應用佔據了網際網路的主流, 社交網路平臺強呼叫戶之間的聯絡和互動, 這對傳統的搜尋技術提出了新的挑戰。
傳統搜尋技術強調搜尋結果和使用者需求的相關性, 社會化搜尋除了相關性外, 還額外增加了一個維度, 即搜尋結果的可信賴性。對某個搜尋結果, 傳統的結果可能成千上萬, 但如果處於使用者社交網路內其他使用者釋出的資訊、點評或驗證過的資訊則更容易信賴, 這是與使用者的心裡密切相關的。社會化搜尋為使用者提供更準確、更值得信任的搜尋結果。
國外的Dogpile等元搜尋引擎能夠得到發展和壯大, 主要得益於國外傳統搜尋過多, 並且企業實現共贏的理念, 但在國人思考的是如何把所有資源都掌握在自己手中, 百度、Google、Yahoo是不會看著自己在未來發展中落伍, 成為跟潮人, 現在這幾家都在不斷豐富自己的產品線, 並且觸及社會化搜尋, 來保證自己在這個行業中的地位。
(2) 實時搜尋
隨著微博的個人媒體平臺興起, 對搜尋引擎的實時性要求日益增高, 我想這也是搜尋引擎未來的一個發展方向。
實時搜尋最突出的特點是時效性強, 越來越多的突發事件首次釋出在微博上, 實時搜尋核心強調的就是“快”, 使用者釋出的資訊第一時間能被搜尋引擎搜尋到。
不過在國內, 實時搜尋由於各方面的原因無法普及使用, 比如Google的實時搜尋是被重置的, 百度也沒有明顯的實時搜尋入口。
(3) 移動搜尋
隨著智慧手機的快速發展, 基於手機的移動裝置搜尋日益流行, 但移動裝置有很大的侷限性, 比如螢幕太小, 可顯示的區域不多, 計算資源能力有限, 開啟網頁速度很慢, 手機輸入繁瑣等問題都需要解決。
目前, 隨著智慧手機的快速普及, 移動搜尋一定會更加快速的發展, 所以移動搜尋的市場佔有率會逐步上升, 而對於沒有移動版的網站來說, 百度也提供了“百度移動開放平臺”來彌補這個缺失。
(4) 個性化搜尋
個性化搜尋主要面臨兩個問題:如何建立使用者的個人興趣模型?在搜尋引擎裡如何使用這種個人興趣模型?
個性化搜尋的核心是根據使用者的網路行為, 建立一套準確的個人興趣模型。而建立這樣一套模型, 就要全民收集與使用者相關的資訊, 包括使用者搜尋歷史、點選記錄、瀏覽過的網頁、使用者E-mail資訊、收藏夾資訊、使用者釋出過的資訊、部落格、微博等內容。比較常見的是從這些資訊中提取出關鍵詞及其權重。
為不同使用者提供個性化的搜尋結果, 是搜尋引擎總的發展趨勢, 但現有技術有很多問題, 比如個人隱私的洩露, 而且使用者的興趣會不斷變化, 太依賴歷史資訊, 可能無法反映使用者的興趣變化。
(5) 地理位置感知搜尋
目前, 很多手機已經有GPS的應用了, 這是基於地理位置感知的搜尋, 而且可以透過陀螺儀等裝置感知使用者的朝向, 基於這種資訊, 可以為使用者提供準確的地理位置服務以及相關搜尋服務。目前, 此類應用已經大行其道, 比如手機地圖APP.
(6) 跨語言搜尋
這方面做得最好的是Google, Google目前已經能提供多種語言之間的跨語言搜尋, 比如搜尋“麻省理工”, 排在第一位的則是麻省理工學院的主頁。
如何將中文的使用者查詢翻譯為英文查詢, 目前主流的方法有3種:機器翻譯、雙語詞典查詢和雙語語料挖掘。對於一個全球性的搜尋引擎來說, 具備跨語言搜尋功能是必然的發展趨勢, 而其基本的技術路線一般會採用查詢翻譯加上網頁的機器翻譯這兩種技術手段。
(7) 多媒體搜尋
目前, 搜尋引擎的查詢還是基於文字的, 即使是圖片和影片搜尋也是基於文字方式。那麼未來的多媒體搜尋技術則會彌補查詢這一缺失。多媒體形式除了文字, 主要包括圖片、音訊、影片。
多媒體搜尋比純文字搜尋要複雜許多, 一般多媒體搜尋包含4個主要步驟:多媒體特徵提取、多媒體資料流分割、多媒體資料分類和多媒體資料搜尋引擎。
例如圖片搜尋, 一般的步驟為:第一步, 縮小尺寸;第二步, 簡化色彩;第三步, 計算平均值;第四步, 比較畫素的灰度;第五步, 計算雜湊值 (詳情可參見Google圖片搜尋的原理一文) .
(8) 情境搜尋
情境搜尋是融合了多項技術的產品, 上面介紹的社會化搜尋、個性化搜尋、地點感知搜尋等都是支援情境搜尋的, 目前Google在大力提倡這一概念。
所謂情境搜尋, 就是能夠感知人與人所處的環境, 針對“此時此地此人”來建立模型, 試圖理解使用者查詢的目的, 根本目標還是要理解人的資訊需求。比如某個使用者在蘋果專賣店附近發出“蘋果”這個搜尋請求, 基於地點感知及使用者的個性化模型, 搜尋引擎就有可能認為這個查詢是針對蘋果公司的產品, 而非對水果的需求。
5、搜尋引擎在應用系統中的應用現狀
伴隨應用系統 (例如OA系統) 的規模正在不斷擴大, 在網際網路上得到了成熟穩定發展的搜尋引擎技術可以大大提高應用系統的辦公使用效率。
5.1 重點關注的功能需求
搜尋引擎在管理資訊系統中的部署關注以下幾點的功能需求:
●透過整合多種資料來源, 提供統一的搜尋服務, 達到促進廣泛的資訊交流和知識共享的目的, 實現跨系統、平臺、應用、地域之間以及網際網路資訊的整合。
●提供統一、安全的資訊檢索介面系統, 為所有結構化、非結構化的資料提供標準的資料來源輸出介面功能。
●處理各種型別的文件, 並實現全文檢索。
●保證資訊檢索的迅速、準確, 提供高併發率的處理能力。
●系統提供關鍵的維護、管理、控制和監測功能, 採用統一的方式, 透過集中監控管理模組與所有搜尋服務進行通訊;同時, 提供圖形化的管理介面, 使系統管理員能夠對所有模組 (或服務) 進行本地或遠端管理操作。
●系統支援負載均衡和高可用性, 支援建立分散式的內部資料索引, 並實現對搜尋伺服器的叢集化部署, 支援水平靈活擴充套件。
5.2 建議包含的主要功能
搜尋系統將提供高效率的搜尋功能, 使用者透過在單一搜索介面上的操作, 可以在最短時間內, 完整、準確、及時地得到所需資訊。建議主要包括以下功能:
(1) 提供資訊的全文檢索
檢索範圍除各類檔案、資訊等的要素、關鍵字以外, 提供包括檔案正文內容和附件內容在內的全文檢索功能, 以滿足使用者對檔案檢索的要求。
(2) 支援各類檔案格式
支援HTML、PDF、ASCIIText、XML、MS Office格式 (Word、Power Point、Excel) 、壓縮檔案格式 (Zip、Gzip、Tar) 等格式的檢索。
(3) 相容各類資料來源系統
可以採集、處理和索引的資訊系統包括:網站 (HTML、J2EE、ASP、NET、PHP) 、檔案系統 (Windows、Linux、Unix) 、資料庫 (Oracle、SQL Server、DB2、Sybase、My SQL) 、公文流轉和郵件系統、門戶系統等, 以保證增加和更新的文件能夠及時地被搜尋到, 刪除的文件及時地從索引平臺中去除。增量索引支援可排程模式。增量索引時, 應不影響搜尋。
(4) 減少檢索功能對各系統的影響
搜尋系統與各系統採用松耦合的整合方式, 選擇在非工作時間更新資料庫索引, 從而避免在檔案、資訊生成時同步資料各系統帶來不利影響。
(5) 具備良好的系統擴充套件性與靈活性
透過搜尋系統的建立, 將對各類管理資訊提供統一的檢索。同時, 能夠靈活擴充套件, 快速、簡便地與各類新資料來源系統進行檢索整合。
(6) 搜尋結果集的相關性排序
平臺支援將檢索結果按相關度排序後交付給使用者, 以適應不同應用。
(7) 支援搜尋結果的個性化定製和動態更新
搜尋系統可以根據使用者個人的需要進行個性化定製搜尋。
(8) 結合許可權進行採集和搜尋
5.3 搜尋引擎在應用平臺中的技術架構
搜尋引擎在應用平臺上的技術架構總體上可以劃分為門戶、資料同步、語言處理、業務處理、系統排程、搜尋服務、資料反饋、統計分析、運營維護、系統管理等十大模組, 各模組之間在功能上相對獨立, 業務上又相互聯絡相互支撐, 共同協作從而實現了搜尋引擎應用平臺的整體服務架構。基於對業務需求的分析, 搜尋系統的技術架構如圖1所示。
門戶模組主要涵蓋了門戶、對外介面服務、對內介面服務、第三方開發介面、API等功能。
資料同步模組支援OA資料、關係形資料、文件形資料、網路資料爬取、論壇資料、知識庫等多種資料形式。該模組是搜尋引擎平臺數據獲取模組, 透過資料同步將其他業務系統中的資料作為資料來源提供給搜尋引擎應用平臺。
語言處理模組:主要功能包括分詞、糾錯、轉換、擴充套件及詞庫學習等。
業務處理模組:主要提供對搜尋請求及業務資料的處理, 包括搜尋任務封裝、結果過濾、資料關聯、編審支撐、缺失計算、資料排重等功能。
系統排程模組:提供了負載均衡、分佈快取、任務分配、資料分析、資料處理、資料儲存、資料備份、任務監控等功能, 主要負責將使用者的查詢任務進行分析、搜尋結果進行快取, 並監控管理整個搜尋週期。
搜尋引擎模組:提供資料索引的建立和管理、分散式儲存、任務處理、語義分析、資料分類、搜尋、排序、監控及日誌等功能。
統計分析模組:包括熱詞統計、趨勢統計、訪問量統計、業務統計、排行榜、效能統計等。主要提供搜尋應用平臺各項資料的統計分析服務。
運營維護模組:包括詞庫管理、排序管理、資料管理、同步管理、過濾管理、抓取管理等。主要提供運營業務系統的管理和配置服務。
系統管理模組:包括介面管理、許可權管理、日誌管理、安全管理、備份管理等。主要提供系統的基本管理及安全審計服務。
6、結束語
綜上所述, 搜尋引擎技術在移動終端智慧化和網際網路使用者個性化以及社交化為中心的融合趨勢下的發展, 催生了很多新型應用。搜尋引擎技術的發展直接推動了網際網路技術的迅速發展和網際網路+應用的擴充套件, 伴隨著管理資訊系統和業務應用系統的網際網路化, 搜尋引擎技術將廣泛地應用於管理資訊系統和業務應用系統中。本文結合搜尋引擎在管理資訊系統中的應用給大家提供了一個實用方案, 可供參考。