• 沒有找到結果。

以.NET 技術實作個人化Internet 網頁 搜尋服務

N/A
N/A
Protected

Academic year: 2021

Share "以.NET 技術實作個人化Internet 網頁 搜尋服務"

Copied!
49
0
0

加載中.... (立即查看全文)

全文

(1)逢. 甲. 大. 學. 資訊工程學系專題報告 以.NET 技術實作個人化 Internet 網頁 搜尋服務. 學生:鄭宗碩(四乙) 指導教授:劉安之 中華民國九十三年五月.

(2) 以.NET技術實作個人化Internet網頁搜尋服務. 目錄 圖目錄…………………………………………………………………IV 表目錄…………………………………………………………………VI 摘要………………………………………………………………………1 第一章 導論……………………………………………………………3 1.1 搜尋引擎種類簡介……………………………………………3 1.2 來源搜尋引擎介紹……………………………………………5 1.2.1. 來源搜尋引擎進階功能比較…………………………6. 1.2.2. 來源搜尋引擎搜尋結果一覽…………………………7. 1.2.2.1 GAIS 搜尋引擎搜尋結果顯示……………………7 1.2.2.2 Google 台灣搜尋引擎搜尋結果顯示………………8 1.2.2.3 MSN 台灣搜尋引擎搜尋結果顯示………………10 1.2.2.4 Yahoo 奇摩搜尋引擎搜尋結果顯示………………12 第二章 系統架構與資料處理流程……………………………………13 2.1 系統介面及功能介紹…………………………………………13 2.1.1. 一般搜尋介面………………………………………13. 2.1.2. 一般搜尋結果………………………………………14. 2.1.3. 熱 門 搜 尋 介 面 … … … … … … … … … … … … … 14. 2.1.4. 檢視搜尋結果連結狀態……………………………15 -I逢甲大學 e-Paper (92學年度).

(3) 以.NET技術實作個人化Internet網頁搜尋服務. 2.1.5. 顯示排名分析結果…………………………………16. 2.2 搜尋流程介紹…………………………………………………17 2.3 搜尋結果排名方法介紹………………………………………19 2.4 資料表設計……………………………………………………21 第三章 系統實作介紹…………………………………………………22 3.1 取得外站搜尋結果資訊………………………………………22 3.1.1. 送出搜尋 Request…………………………………22. 3.1.2. 接收網頁串流及取回資料的編碼問題……………25. 3.2 利用 Regular Expression 處理串流資料……………………26 3.2.1. 搜尋結果來源 HTML 原始碼一覽……………………26. 3.2.2. 產生對應的C#語言 Regular Expression 規則……29. 3.3 多執行緒於本專題實作應用介紹………………………… 31 3.4 資料彙整…………………………………………………… 32 3.4.1. 利 用 ArrayList 物件儲存自訂 SearchedEntry 物件…………………………………… ……………… 33. 3.4.2. 實作 ICompare 介面來快速排序搜尋結果…………33. 3.5 偵測搜尋結果連結狀態功能介紹……………………………35 3.6 實 際 效 能 檢 測 … … … … … … … … … … … … … … … … 3 7 第四章 結論……………………………………………………………40 - II 逢甲大學 e-Paper (92學年度).

(4) 以.NET技術實作個人化Internet網頁搜尋服務. 4.1 總結………………………………………………………… 40 4.2 遭遇到的困難……………………………………………… 40 4.3 未來展望…………………………………………………… 41. - III 逢甲大學 e-Paper (92學年度).

(5) 以.NET技術實作個人化Internet網頁搜尋服務. 圖目錄. 圖 1.1. 以 「逢甲大學」為關鍵字搜尋 GAIS 搜尋引擎. 所得結果情況一………………………………………………6 圖 1.2. 以「逢甲大學」為關鍵字搜尋 GAIS 搜尋引擎. 所得結果情況二…………………………………………………8 圖 1.3. 以「逢甲大學」為關鍵字搜尋 Google 台灣. 所得結果情況一…………………………………………………8 圖 1.4. 以「逢甲大學」為關鍵字搜尋 Google 台灣. 所得結果情況二…………………………………………………9 圖 1.5. 以「逢甲大學」為關鍵字搜尋 Google 台灣. 所得結果情況三…………………………………………………9 圖 1.6 以「Excel」為關鍵字搜尋 Google 台灣所得結果情況一……9 圖 1.7 以「Excel」為關鍵字搜尋 Google 台灣所得結果情況二……9 圖 1.8 以「簡報」為關鍵字搜尋 Google 台灣所得結果情況一……10 圖 1.9 以「簡報」為關鍵字搜尋 Google 台灣所得結果情況二……10 圖 1.10. 以 「 逢 甲 大 學 」為關鍵字搜尋 M S N 台 灣 搜 尋 引 擎. 所得結果情況一………………………………………………11. - IV 逢甲大學 e-Paper (92學年度).

(6) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 1.11 以「逢甲大學」為關鍵字搜尋 MSN 台灣引擎 所得結果情況二……………………………………………………11 圖 1.12 以「逢甲大學」為關鍵字搜尋 MSN 台灣引擎 所得結果情況三……………………………………………………11 圖 1.13. 以 「逢甲大學」為關鍵字搜尋 MSN 台灣引擎. 所得結果情況四……………………………………………………11 圖 1.14. 以「簡報」為關鍵字搜尋 MSN 台灣引擎. 所得結果情況一……………………………………………………12 圖 1.15. 以 「逢甲大學」為關鍵字搜尋 Yahoo 台灣引擎. 所得結果情況………………………………………………………12 圖 2.1 搜尋功能選項…………………………………………………13 圖 2.2 一般搜尋的結果………………………………………………14 圖 2.3 熱門搜尋………………………………………………………15 圖 2.4 連結正常且開啟速度小於 10 秒的搜尋結果網頁……………16 圖 2.5 無法連結或者開啟速度太慢的搜尋結果網頁………………16 圖 2.6 顯示排名分析搜尋結果………………………………………17 圖 2.7 本專題實驗搜尋引擎搜尋流程圖……………………………18 圖 2.8 資料表設計……………………………………………………21 圖 3.1 搜尋效能實測數據曲折圖……………………………………39 -V逢甲大學 e-Paper (92學年度).

(7) 以.NET技術實作個人化Internet網頁搜尋服務. 表目錄 表 1.1 五種搜尋引擎種類分類,優缺點比較及代表性搜尋引擎……5 表 1.2 四家搜尋引擎所提供的進階搜尋功能選項比較圖……………6 表 3.1 GAIS 搜尋結果 HTML 原始碼及內碼…………………………27 表 3.2 Google 台灣搜尋結果 HTML 原始碼及內碼…………………28 表 3.3 MSN 台灣搜尋結果 HTML 原始碼及內碼……………………28 表 3.4. Yahoo 台灣搜尋結果 HTML 原始碼……………………………29. 表 3.5. GAIS 轉換成.NET. Framework 適用之. Regular Expression……………………………………………30 表 3.6. Google 台灣轉換成.NET Framework 適用之. Regular Expression……………………………………………30 表 3.7. MSN 台灣轉換成.NET. Framework 適用之. Regular Expression……………………………………………30 表 3.8. YAHOO 奇摩轉換成.NET Framework 適用之. Regular Expression……………………………………………31 表 3.9 搜尋效能實測數據列表………………………………………38. - VI 逢甲大學 e-Paper (92學年度).

(8) 以.NET技術實作個人化Internet網頁搜尋服務. 摘要. 在網際網路的時代,搜尋引擎幾乎是人們賴以取得所需資訊的重 要管道。 然而面對各大入口網站的搜尋引擎所產生的幾乎是數以萬 計的資訊,如何在大量資訊中取得知識又是一項非常值得探討的議題。 Meta Search Engine 亦是搜尋引擎的一種。 它利用回收其他搜 尋引擎的搜尋結果來做處理並加以彙整成新的搜尋結果,提供使用者 另類的資訊來源。 在本專題實驗將利用微軟.NET 技術實作一個 Meta Search Engine。 針對目前國內四個極具盛名的入口網站,GAIS(Global Area Information Servers) 、Google 台灣網站、微軟 MSN 台灣網站及 Yahoo 奇摩,四家搜尋引擎所產生的結果加以彙整、分析,提供一份新的搜 尋結果給使用者。. 並針對使用者在使用時所遇到的一些問題加以提. 出解決之道,讓使用者能夠省下更多的時間並獲得更多的資訊。. 以下為本專題實驗報告各章節內容扼要的簡介:. 第一章、導論。 了解搜尋引擎還能為使用者提供什麼功能。 介紹 目前搜尋引擎的種類,以及本專題實驗所採用的四家搜尋引 -1逢甲大學 e-Paper (92學年度).

(9) 以.NET技術實作個人化Internet網頁搜尋服務. 擎的特點比較。 並描述使用者在使用搜尋引擎時所遭遇到 的狀況。 第二章、系統架構與資料處理流程介紹。. 介紹本搜尋引擎的架構及. 所提供的功能,還有取得資料之後彙整出新結果的處理流程。. 第三章、系統實作介紹。 介紹本專題實驗所實作的各項功能及原 理;並利用測試搜尋字串集合來檢測本搜尋引擎在大量使用 者使用之下所能達到的最大效能平均值。. 第四章、討論與未來展望。. 並針對本專題實驗報告作檢討,提出在. 開發的過程中所遭遇的困難以及將來能夠再繼續改進的地 方。. -2逢甲大學 e-Paper (92學年度).

(10) 以.NET技術實作個人化Internet網頁搜尋服務. 第一章、 導論. 使用者在使用搜尋引擎時,常常有些資料在某個搜尋引擎的搜尋 結果中出現,有些資料則在另外的搜尋引擎的搜尋結果中出現。 如 果兩部分的資料對使用者來說都有必然的重要性,有沒有一種方法能 夠整合這些搜尋的結果,然後重新整現一份新的結果,更能夠滿足使 用者的要求呢? 當使用者搜尋一份結果時,嘗試點選了搜尋結果的連結,卻發現 竟是無法顯示網頁或者網頁不存在的錯誤訊息,是否能夠有辦法事先 知道哪些連結可用,哪些連結無法使用,避免因為點選後因為等待所 付出的時間代價呢? 我們將在本專題實驗中實作這個整合搜尋服務。. 提供使用者一. 份整合的搜尋結果,並能事先檢查搜尋結果目標網頁的狀態,藉此讓 這些搜尋服務時能夠更加滿足使用者的需求。. 1.1 搜尋引擎種類的簡介: 相較於歷史上印刷產業快速發展的年代造成的資訊爆炸,如今網 際網路在短時間內的驚人發展,彷彿也開始進行一場另類的資訊大爆 炸。 面對與日俱增的 Internet 網頁以及各種資源,搜尋引擎似乎是 -3逢甲大學 e-Paper (92學年度).

(11) 以.NET技術實作個人化Internet網頁搜尋服務. 人們所仰賴及使用來獲得所需資訊的工具。 一般來說搜尋引擎共分成以下五類:Internet 網頁內文全文搜 尋、目錄式搜尋、網站網頁內文全文檢索、網站版代理搜尋及個人版 代理搜尋*(如表 1.1)。 本專題實驗實作的搜尋引擎屬於「個人版代理搜尋」 ,即是摘要中 所說明的 Meta Search Engine。. 主要運作模式為將使用者欲搜尋字. 串的 Request 送到各來源搜尋引擎,並取得 Response 回來的搜尋結果。 然後取得其中有意義的資訊並加以彙整,再利用 3.4 節所介紹的排名 規則產生一份整理過的搜尋結果,提供使用者對於搜尋結果的另外一 個選擇。 也利用使用者的點選習慣來調整排名順序,希望藉以提高 搜尋結果的準確度。. -4逢甲大學 e-Paper (92學年度).

(12) 以.NET技術實作個人化Internet網頁搜尋服務. 種類. 優點. 缺點. 代表網站. Internet 網頁 內文全文搜尋. 搜尋範圍擴及整 個 Internet. 查詢到的資料 筆數太多. GAIS、 Openfind. 目錄式搜尋. 以網站分類的觀 念,幫助使用者 歸納站台. 無法立即更 新,時效性差. Yahoo、Yahoo 奇摩、Yam、MSN. 網站網頁內文 全文檢索. 以特定網站為搜 無法提供範圍 尋範圍,檢索資料 外的功能查詢 的精確度高. GAIS、龍捲風. 網站版代理搜 尋. 可以同時使用多 個搜尋引擎查詢. MetaCrawler、 Inference Find 龍捲風. 使用者費用. *個人版代理搜 除了網站版代理 使用者費用 尋 搜尋的功能外,使 用者可以針對這 些站台,加以分 類,配合自己的查 詢習慣. 表 1.1 五種搜尋引擎種類分類,優缺點比較及代表性搜尋引擎 資料來源: http://www.ctjh.tpc.edu.tw/www/center/computer/www/content12 -c32.htm. 1.2 來源搜尋引擎介紹: 本專題實驗所採用的四個搜尋引擎來源 - 分別為 GAIS、Google -5逢甲大學 e-Paper (92學年度).

(13) 以.NET技術實作個人化Internet網頁搜尋服務. 台灣、MSN 台灣及 Yahoo 奇摩 - 都有各自的特色並提供的不同的附加 功能。 1.2.1來源搜尋引擎進階功能比較: 以下則將進一步了解這四大搜尋引擎能夠提供哪些更進階的搜尋 功能: (參考下表 1.2). GAIS. Google 台灣 MSN 台灣 Yahoo 奇摩. 字串. ˇ. ˇ. 輸出結果筆數. ˇ. ˇ. 查詢網頁語言 更新日期選擇. ˇ ˇ. 字詞位置. ˇ. ˇ ˇ. ˇ. ˇ ˇ. ˇ. ˇ. ˇ. ˇ ˇ. 網域搜尋 完整字句. ˇ ˇ. ˇ ˇ. 任一字句. ˇ. ˇ. ˇ. 不包含字詞 搜尋特定網頁. ˇ. ˇ ˇ. ˇ ˇ. 結果排序. ˇ. ˇ. 網頁地區 檔案類型. ˇ ˇ. ˇ ˇ. 文件目錄層級. ˇ. ˇ. 單網域單結果 找圖. ˇ. 找新聞. ˇ. ˇ ˇ. 找新聞群組 找產品 網站組群功能. ˇ. ˇ ˇ ˇ. 表 1.2 四家搜尋引擎所提供的進階搜尋功能選項比較圖. -6逢甲大學 e-Paper (92學年度).

(14) 以.NET技術實作個人化Internet網頁搜尋服務. 1.2.2來源搜尋引擎搜尋結果一覽: 首先讓我們了解所採用的搜尋引擎搜尋完畢之後所提供的資訊有 哪些。 利於我們取得其中我們所需要的資訊。 本實驗中我們將從搜尋結果取得的資訊有:搜尋結果於單一搜尋 引擎的排名順序,搜尋結果網頁內容的 Title 內容、URL 網址及摘要內 容。. 1.2.2.1. GAIS 搜尋引擎搜尋結果顯示:. GAIS 引擎的搜尋結果所提供的資訊有搜尋排名順序、搜尋結果網 頁內容的 Title 內容、URL 網址及摘要內容。 此外還提供了「暫存網 頁」、「相關網頁」等連結以及網頁大小及維護更新日期。 此外也 提供了「網頁內容別名」的額外資訊更利於搜尋的比對。. 圖 1.1 以「逢甲大學」為關鍵字搜尋 GAIS 搜尋引擎所得結果情況一. -7逢甲大學 e-Paper (92學年度).

(15) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 1.2 以「逢甲大學」為關鍵字搜尋 GAIS 搜尋引擎所得結果情況二. 1.2.2.2. Google 台灣搜尋引擎搜尋結果顯示:. GAIS 引擎的搜尋結果所提供的資訊有搜尋結果網頁內容的 Title 內容、URL 網址及摘要內容。 此外還提供了「暫存網頁」、「相關網 頁」連結、網頁大小及維護更新日期等資訊。 GAIS 引擎也提供了搜 尋結果目標的檔案型態標記顯示,有一般 HTML 檔案(預設內容無標 示)、[ DOC ]型態表示微軟 Word 檔、[PPT]形態表示微軟 PowerPoint 檔、[XLS]形態表示微軟 Excel 檔以及 [PDF]形態表示 Acrobat PDF 檔。. 圖 1.3 以「逢甲大學」為關鍵字搜尋 Google 台灣所得結果情況一 -8逢甲大學 e-Paper (92學年度).

(16) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 1.4 以「逢甲大學」為關鍵字搜尋 Google 台灣所得結果情況二. 圖 1.5 以「逢甲大學」為關鍵字搜尋 Google 台灣所得結果情況三. 圖 1.6 以「Excel」為關鍵字搜尋 Google 台灣所得結果情況一. 圖 1.7 以「Excel」為關鍵字搜尋 Google 台灣所得結果情況二. -9逢甲大學 e-Paper (92學年度).

(17) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 1.8 以「簡報」為關鍵字搜尋 Google 台灣所得結果情況一. 圖 1.9 以「簡報」為關鍵字搜尋 Google 台灣所得結果情況二. 1.2.3.3. MSN 台灣搜尋引擎搜尋結果顯示:. MSN 台灣的搜尋結果所提供的資訊有搜尋排名順序、搜尋結果網頁 內容的 Title 內容、URL 網址及摘要內容。 除此之外還提供了搜尋結 果目標的檔案型態標記顯示,有一般 HTML 檔案(預設內容無標示)、 [ Microsoft Word ]型態表示微軟 Word 檔、[Microsoft Powerpoint] 形態表示微軟 PowerPoint 檔、[Microsoft Excel]形態表示微軟 Excel 檔以及 [PDF/Adobe Acrobat]形態表示 Acrobat PDF 檔。. - 10 逢甲大學 e-Paper (92學年度).

(18) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 1.10 以「逢甲大學」為關鍵字搜尋 MSN 台灣搜尋引擎所得結果情 況一. 圖 1.11 以「逢甲大學」為關鍵字搜尋 MSN 台灣引擎所得結果情況二. 圖 1.12 以「逢甲大學」為關鍵字搜尋 MSN 台灣引擎所得結果情況三. 圖 1.13 以「逢甲大學」為關鍵字搜尋 MSN 台灣引擎所得結果情況四. - 11 逢甲大學 e-Paper (92學年度).

(19) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 1.14 以「簡報」為關鍵字搜尋 MSN 台灣引擎所得結果情況一. 1.2.3.4. Yahoo TW 搜尋引擎搜尋結果顯示:. GAIS 引擎的搜尋結果所提供的資訊有搜尋結果網頁內容的 Title 內容、URL 網址及摘要內容。 此外還提供了「庫存頁面」、「同類網 頁」連結、網頁大小、維護更新日期等資訊。. 圖 1.15 以「逢甲大學」為關鍵字搜尋 Yahoo 台灣引擎所得結果情況. 以上為本專題實驗所採用的四家來源搜尋引擎的搜尋結果。 先 了解搜尋結果所有可能出現的狀況後,才能針對取回的資料作處理, 取出我們所需要的有意義的資訊。. - 12 逢甲大學 e-Paper (92學年度).

(20) 以.NET技術實作個人化Internet網頁搜尋服務. 第二章、 系統架構與資料處理流程. 2.1 系統介面及功能介紹:. 以下將一一介紹我們所實作的系統使用介面以及該控制項所提供 的功能: 2.1.1 一般搜尋介面: 如圖 2.1 所示,這部份依序包含了關鍵字串輸入盒、開始搜尋按 鈕、搜尋深度選擇、顯示筆數選擇、搜尋結果網站狀態檢視及顯示搜 尋結果分析資訊。 其中搜尋深度選擇功能的意義是指從每個搜尋引擎所回收的資料 量。. 當設定的深度越深,將可取得越多的資訊,但相對地會需要花. 費更多的時間。 詳細的花費時間平均請參考 3.6 節-實際效能檢測 的結果。. 圖 2.1 搜尋功能選項 - 13 逢甲大學 e-Paper (92學年度).

(21) 以.NET技術實作個人化Internet網頁搜尋服務. 2.1.2 一般搜尋結果: 在一般的搜尋結果當中,每次的搜尋都會顯示搜尋結果的排名、 Title 內容以及摘要內容。 此外也會將該連結的 URL 設為超連結供使 用者直接點選。 並顯示本次搜尋所花費的時間,以秒為單位(如圖 2.2 所示)。. 圖 2.2 一般搜尋的結果. 2.1.3 熱門搜尋介面: 在這個控制項當中(如圖 2.3),我們利用紀錄使用者搜尋過的關 鍵字串,並加以統計,找出前五名最常被搜尋的關鍵字串,顯示為熱. - 14 逢甲大學 e-Paper (92學年度).

(22) 以.NET技術實作個人化Internet網頁搜尋服務. 門搜尋。 其他使用者若是對這熱門搜尋的字串有興趣的,便可直接 點選,從站內的資料庫中找到搜尋的結果,而不需要再送出要求給其 他搜尋引擎並花費時間等待結果回收並整合。. 圖 2.3 熱門搜尋. 2.1.4 檢視搜尋結果連結狀態: 搜尋結果網站狀態檢視功能則是會自動偵測搜尋結果的各個連結 目前的狀態。 若是搜尋結果的連結是可以連通的,則在顯示結果中 顯示如圖 2.4 的正大拇指符號;反之則出現 2.5 的反大拇指符號。 藉 此以圖形化活潑的風格告知使用者目前該連結的狀態:. - 15 逢甲大學 e-Paper (92學年度).

(23) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 2.4 連結正常且開啟速度小於 10 秒的搜尋結果網頁. 圖 2.5 無法連結或者開啟速度太慢的搜尋結果網頁. 2.1.5顯示排名分析結果: 顯示搜尋結果分析資訊的選項將會在結果顯示中顯示該連結在四 個來源搜尋引擎中排名的位置,如下圖圖 2.6 顯示。. 提供使用者了. 解該搜尋結果在各個不同的搜尋引擎中所排列的重要性。. - 16 逢甲大學 e-Paper (92學年度).

(24) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 2.6 顯示排名分析搜尋結果. 2.2 搜尋流程介紹:. 搜尋流程請參照圖 2.7 。. 如同一般搜尋引擎,就是等待使用者. 輸入搜尋字串然後做搜尋。 為了避免每次使用者輸入搜尋字串之後 都得等候到其他搜尋引擎搜尋的結果,我們會將每一次的搜尋結果先 存放在本地伺服器端。 則每次使用者在搜尋時我們會先檢索站內是 否已有搜尋的結果,如果是已有資料存在,我們則直接從資料庫輸出, 否則送出 Request 到其他外部的搜尋引擎搜尋並取得結果。 回收結 果之後再存在本地伺服器資料庫並輸出給使用者。. - 17 逢甲大學 e-Paper (92學年度).

(25) 以.NET技術實作個人化Internet網頁搜尋服務. 圖 2.7 本專題實驗搜尋引擎搜尋流程圖. - 18 逢甲大學 e-Paper (92學年度).

(26) 以.NET技術實作個人化Internet網頁搜尋服務. 2.3 搜尋結果排名方法介紹:. 由於搜尋結果是由四個來源搜尋引擎的結果所彙總起來的,每一 個搜尋結果在四個來源搜尋引擎其中之一都有其各自的排名順序,所 以排名的方式也就勢必需要有所調整。. 因此我們提供了簡單的排名方法,也就是最簡單的平均法。每一 個搜尋結果都會有四個排名值,也就是以該連結之於搜尋關鍵字在 GAIS、Google 台灣、MSN 台灣及 Yahoo 奇摩各自的排名值。. 而當有一個連結只出現在 GAISGAIS、Google 台灣及 MSN 台灣的搜 尋結果,則將該連結的 Yahoo 奇摩排名值設為本次搜尋中 Yahoo 奇摩 搜尋結果總數再加一計算。. 以下為兩搜尋結果 A 與 B。 以 A1、A2、A3、A4 分別代表 A 結果於 本次搜尋出現在四個搜尋引擎的排名,數值越低表示排名越前面;B1、 B2、B3、B4 以此類推。 另外以 M1、M2、M3、M4 分別代表四個搜尋結果的 總數。 假設一函數 f(x)的值表示某 x 連結在一次搜尋中的鍵值,以下為 - 19 逢甲大學 e-Paper (92學年度).

(27) 以.NET技術實作個人化Internet網頁搜尋服務. A與B結果的 f(x)值:. 則兩連結的相對排名順序以 f(A)及 f(B)為排序依據,越低的值具 有較高的排名。 因此我們能夠得到一個結論:當一個結果出現的次 數越高,會有較低的平均值,也將能得到較高的排名。 又以 M1、M2、M3、M4 當作四個搜尋引擎各自搜尋結果的全部個數。 假設現在 A 的結果並沒有出現在第四個搜尋引擎的結果中,則將 A4 設 為(M4 + 1 ). 若 B 的結果有出現在第四個搜尋引擎的結果中,則 (M4 + 1) 必 然大於 B4。 也因為這樣會使得 f (A) 變大,依照之前所訂的排名規 格,A 連結的排名將會往後拉。. 依照我們所訂定的規則,將會使得. 出現在四個搜尋引擎的搜尋結果中越多次的連結,將能夠獲得較好的 排名。 - 20 逢甲大學 e-Paper (92學年度).

(28) 以.NET技術實作個人化Internet網頁搜尋服務. 2.4 資料表設計:. 由於最初所設定的搜尋引擎種類是實作 meta search engine,所 以在資料表的設計上我們採取如圖 2.8 的設計:. 圖 2.8 資料表設計. 圖 2.8 的資料表中,搜尋記錄資料表所記錄的是使用者所搜尋過 的字串、搜尋時間及被搜尋的次數。 其中我們可以利用被搜尋的次 數來判定熱門搜尋字串的結果。 而搜尋結果記錄資料表所記錄的是使用者所搜尋的搜尋字串及所. - 21 逢甲大學 e-Paper (92學年度).

(29) 以.NET技術實作個人化Internet網頁搜尋服務. 取得的每一筆資料內容:包含了 URL 位置、各家搜尋引擎中出現的排 名數、網頁的鏢頭內容及網頁的摘要內容顯示。. 這部份是最後輸出. 時所顯示的內容。 使用者個人資料夾資料表所記錄的是使用者所搜尋過的關鍵字串 以及搜尋結果中對使用者自己本身有用的資訊,由使用者自己選取記 錄起來,可供下次需要時快速點選。. 第三章、 系統實作介紹. 3.1 取得外站搜尋結果資訊:. Meta search engine 實作的第一步就是先收集其他搜尋引擎的搜 尋結果。 我們所利用的方法是先了解四個來源搜尋引擎的 URL 參數 及編碼方式,如此一來我們就可以送出 URL 的 Request 來取得串流 (stream)型態的資料流。 再透過字串剖析的方式來取得我們要的 資訊。. 3.1.1 送出搜尋 Request - 22 逢甲大學 e-Paper (92學年度).

(30) 以.NET技術實作個人化Internet網頁搜尋服務. 我們在利用.NET Framework 的 HttpWebRequest 物件送出 URL 查詢 字串。 URL 查詢字串包含了來源搜尋引擎的網址以及編碼過的使用者 搜尋字串,. 亦或者包含其他代表不同功能的參數屬性。. 首先我們先來了解四個來源搜尋引擎的 URL 以及其參數的意義。 l GAIS 搜尋引擎: http://gais.cs.ccu.edu.tw/cgi-bin/GAIS30/gaisweb.cgi?q= "使用者所要搜尋的字串 " & p= "起始面數" & u="zh-TW(表台灣地 區)" l Google 台灣搜尋引擎: http://www.google.com.tw/search?q="使用者所要搜尋的字串 " & start= "起始面數" & hl="zh-TW(表台灣地區)"。 l MSN 台灣搜尋引擎: http://search.msn.com.tw/advresults.aspx?q="使用者所要搜 尋的字串 "。 l Yahoo 奇摩搜尋引擎: http://tw.search.yahoo.com/search/kimo?p="使用者所要搜尋 的字串 "。. - 23 逢甲大學 e-Paper (92學年度).

(31) 以.NET技術實作個人化Internet網頁搜尋服務. 此外,為了符合來源搜尋引擎的所能接受的使用者搜尋字串,我 們必須將伴隨著 URL 送出的使用者搜尋字串加以編碼。. 在此我們利. 用.NET Framework 的 HttpUtility 物件的 UrlEncode 方法來作編碼的 動作。 編碼方式常見的有兩種:UTF-8 (數字代碼 65001)及 Big-5 (數 字代碼 950)。 其中 Google 台灣及 MSN 台灣採用的 URL 編碼是 UTF-8; 而 GAIS 及 Yahoo 奇摩採用的 URL 編碼則為 Big-5。 在實作上,我們建了一個 SendQueryAndGetResponse ( ) 副程式 規格如下: protected string SendQueryAndGetResponse (string QueryURL,int usedencode). 其中 QueryURL 所代表的是四個來源搜尋引擎的 URL 以及其參數。 usedencode 則代表是四個來源搜尋引擎的所採用的編碼。 並將所輸 入的 URL 當作參數然後利用 HttpWebRequest 物件送出 URL,再利用 HttpWebResponse 物件取得 HttpWebRequest 物件所獲得的回應。. //建立 Uri 物件代表所要檢查的 URL 位置 Uri HttpSite = new Uri(QueryURL); //建立 HttpWebRequest 物件並送出 HttpSite 物件的 Request HttpWebRequest userRequest = (HttpWebRequest) - 24 逢甲大學 e-Paper (92學年度).

(32) 以.NET技術實作個人化Internet網頁搜尋服務. WebRequest.Create(HttpSite); //取得 HttpWebResponse 物件的結果 HttpWebResponse userResponse = (HttpWebResponse) userRequest.GetResponse(); 如此就完成送出 Request 的動作了。 3.1.2 接收網頁串流及取回資料的編碼問題. 接著我們必須將取得的所接收的資料串流,如下我們宣告 Stream 型態的物件來接收回傳的資料串流:. //宣告 Stream 型態的物件來接荍所取得的串流資料 Stream RespStream = userResponse.GetResponseStream(); 接下來則是將 Stream 物件寫到暫存的 StringWriter 物件中,等候 後續處理。. 接著我們從 StringWriter 物件中將資料一個 Byte 一個. Byte 給取出來到 Byte 陣列 StringData 中並做編碼,最後才傳回編碼 過後的字串型態內容到 strContainer 回傳。 //宣告 Encoding 物件的 targetEncoding 並設定編碼為(65001) Encoding targetEncoding; targetEncoding = Encoding.GetEncoding(65001); Char[] CharData = new char[40000]; String StringData = ConsoleWriter.ToString(); Byte[] ByteData = targetEncoding.GetBytes(StringData); //進行 ByteData 陣列內容的編碼 targetEncoding.GetChars(ByteData,0,ByteData.Length,CharDa ta,0); //將編碼過後的字串型態加到 strContainer 回傳 - 25 逢甲大學 e-Paper (92學年度).

(33) 以.NET技術實作個人化Internet網頁搜尋服務. string strContainer = new string(CharData);. 3.2 利用 Regular Expression 處理串流資料:. 從來源搜尋引擎端取得搜尋結果回來之後,是以串流型態來儲存 的,而串流的內容其實就是大量的 HTML 原始碼及一些內碼。. 一般我. 們是利用瀏覽器避開不需要的內碼而將 HTML 轉換成我們所熟悉的網頁 內容,但在此我們則將要利用 Regular Expression 的表示式來進行剖 析,跳過 HTML 的 Tag 及其他無用的內碼將網頁中對我們有意義的資料 給擷取出來。. 3.2.1 一覽搜尋結果來源 HTML 原始碼 現在我們先來了解從四個來源搜尋引擎取得的串流的 HTML 碼以及 內碼的內容有哪些,再來進行下一步的剖析的準備工作。 首先我們先來看看從 GAIS 搜尋引擎取回的 HTML 原始碼及內碼內 容,如下表(表 3.1):. - 26 逢甲大學 e-Paper (92學年度).

(34) 以.NET技術實作個人化Internet網頁搜尋服務. [空白]<dl>[跳行] [空白]<dt>[跳行] [空白]<font color="#000000">[該搜尋結果於總搜尋結果之排 名]. </font><a href=" [搜尋結果目標 URL] "> [搜尋結果目標網頁之 Title 內容]</a>[跳行] [空白] [ <a href="[站存網頁連結網址]" target="_blank"><font color=#cc6600 size=-1>暫存網頁</font></a> ] [跳行] [跳行] [空白] [ <a href=" [其他相關網頁連結網址]"> <font color=#cc6600 size=-1>此站其它相關網頁</font></a> ] [跳行] [跳行] [空白] </dt>[跳行] [跳行] [空白] <dd>[跳行] [空白] <font class=Abstract> [搜尋結果目標網頁之摘要內 容]</font>[跳行] [空白] </dd>[跳行] [空白] <dd>[跳行] [空白]<font size="-1">[跳行] [空白]網址:<font color="#008000">[搜尋結果目標 URL]</font>[跳行] [空白]大小:<font color="#008000">[檔案大小以位元組為單 位]</font>[跳行] [空白]日期:<font color="#008000">[最近更新日 期]</font>[跳行] [空白]<!-Score:<font color="#008000">[搜尋內含 值]</font> -->[跳行] [空白]<!-(##SCORE##) -->[跳行] [空白]</font>[跳行] [空白]</dd>[跳行] [跳行] [空 白]<dd>[跳行] [空白]<font class=Abstract>別名: [搜尋結果目標網頁之別 名]</font>[跳行] [空白]</dd>[跳行] [跳行] [空白]</dl>[跳 行] 表 3.1 GAIS 搜尋結果 HTML 原始碼及內碼. - 27 逢甲大學 e-Paper (92學年度).

(35) 以.NET技術實作個人化Internet網頁搜尋服務. <p>[跳行] <a onmousedown="return clk(排名,this)" style="color: #00c; font-family" href="[搜尋結果目標 URL]">[跳行] [搜尋結果目標網頁之 Title 內容]</a><br>[跳行] <font size="-1"> [搜尋結果目標網頁之摘要內容] <b>...</b> <br>[跳行] <font color="#008000">[搜尋結果目標 URL] – [資料大小] -[跳 行] </font>[跳行] <a class="fl" href="[庫存頁面網址連結]">[跳行] 頁庫存檔</a> <a class="fl" href="[同類網站網址連結]">[跳行] 類似網頁</a></font> </p>[跳行] 表 3.2 Google 台灣搜尋結果 HTML 原始碼及內碼. <ol style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"> <li><a class="t" href="[搜尋結果目標 URL]"> [搜尋結果目標網頁之 Title 內容]</a><div> <span class="d">[搜尋結果目標網頁之摘要內容] </span><br> <span class="u">[搜尋結果目標 URL]</span></div> </li></ol>. 表 3.3 MSN 台灣搜尋結果 HTML 原始碼及內碼. - 28 逢甲大學 e-Paper (92學年度).

(36) 以.NET技術實作個人化Internet網頁搜尋服務. [空白]<LI><BIG><A href="" target="_blank"> [搜尋結果目標網頁之 Title 內容]</A></BIG>[跳行] [空白] [跳 行] [空白]<br>[跳行] [空白] [搜尋結果目標網頁之摘要內容] <BR> [跳行] [空白] [跳行] [空白]<span class="wurl">[搜尋結果目標 URL] [跳行] [空白]- 27K[跳行] [空白] [跳行] [空白]- 2004/02/17[跳行] [空白]<a href="[庫存頁面網址連結]">庫存頁面</a>[跳行] [空白] [跳行] [空白]</span><br>[跳行] [空白] <img src="http://tw.yimg.com/i/tw/search/lookin.gif" width="15" height="9" alt="網站分類" hspace="3"><font color="#666666">更多同類網站: <A href="[同類網站網址連結]">[同類網站 Title 介 紹]</A></font><br>[跳行] [空白]<br></LI>[跳行] 表 3.4 Yahoo 台灣搜尋結果 HTML 原始碼. 3.2.2 產生對應的 C#語言 Regular Expression 規則. 微軟.NET Framework 提供 Regular Expression 的物件提供使用者 進行特定規則文字的剖析。 所在類別函式庫為 System.Text.RegularExpressions。. 在此我們利用 Regular. Expression 的字詞剖析能力來將取得的字串流(stream)中滿足我們 所需要取得的資訊給擷取出來。 表為.NET Framework 提供的 Regular - 29 逢甲大學 e-Paper (92學年度).

(37) 以.NET技術實作個人化Internet網頁搜尋服務. Expression 的剖析規則: 依照.NET Framework 所提供的 Regular Expressions 的剖析規 則,我們可以將 3.1 節的 GAIS 搜尋引擎的 HTML 結果轉成如下表(表) 的 Regular Expression 規則:. <dl>\\s+<dt>\\s+<font\\s\\S+>\\d+\\.\\s</font><a[^>]*>\\s+(?<TIT LE>.+)\\s*</a>\\s+(?:(\\[.+\\]\\s+)|(\\[.+\\]\\s+\\[.+href=\"(?< Relative>[^\"]*)\".+\\]\\s+))\\s+</dt>\\s+<dd>\\s+<[^>]*> (?<CONTENT>.+)</font>\\s+</dd>\\s+<dd>\\s+.+\\s+.+>(?<URL>http[^ <]*)</font>\\s+.+>(?<SIZE>\\d+)<.+\\s+.+>(?<DATE>\\d+/\\d+/\\d+) <.+\\s+". 表 3.5 GAIS 轉換成.NET Framework 適用之 Regular Expression. <p\\s*class=g><a\\s*href=(?<URL>http[^>]*)>(?<TITLE>[^<]*)</a >(?<CONTENT>[^<]*)<[^>]*>. 圖 3.6 Google 台灣轉換成.NET Framework 適用之 Regular Expression. <li><a\\s*href=\"(?<URL>http[^\"]*)\"\\s*class=\"t\">(?<TITLE >[^<]*)</a><div><span class=\"d\">(?<CONTENT>[^<]*)<br/>. 圖 3.7 MSN 台灣轉換成.NET Framework 適用之 Regular Expression. - 30 逢甲大學 e-Paper (92學年度).

(38) 以.NET技術實作個人化Internet網頁搜尋服務. <LI><BIG><A\\s*href=[^\\*]*\\*(?<URL>http://[^\\s*]*)\\s*targ et=_blank> (?<TITLE>[^<]*)</A></BIG>(?:(\\s*)|(\\s+<[^>]*> 簡)|(\\s+<^>]*>英))\\s+(?<CONTENT> (?:([^<]*<BR>)|(\\S+)))\\s+<span\\s*class=wurl>. 圖 3.8 YAHOO 奇摩轉換成.NET Framework 適用之 Regular Expression. 3.3 多執行緒於本專題實作應用介紹: 微軟.NET Framework提供了多執行緒的功能,方便使用者能夠同時 執行多道指令。 這對於撰寫網路程式設計的我們更是受益匪淺。 在本專題實驗中,由於需要大量地向站外作送出Request及接收 Response的動作,且在於網路狀況並不總是很穩定的情況下,多執行 緒網路程式可以利用等待前一個Request或者Response的時間再來執 行其他指令或者程式。 以下片段程式的功能是將送出查詢及接收回傳資料串的副程式加 到程式的多緒執行。 先宣告一個Thread物件,然後引入所要執行的 副程式,然後將該Thread物件啟動( eg. t1.Start( ) ),然後再將 Thread物件加入到多執行緒的佇列中執行( eg. t1.Join( ) ):. - 31 逢甲大學 e-Paper (92學年度).

(39) 以.NET技術實作個人化Internet網頁搜尋服務. try { //宣告ThreadStart物件啟動SearchProcess物件的搜尋函式多緒 ThreadStart SearchGAIS = new ThreadStart(this.GaisQuery); ThreadStart SearchGoogle = new ThreadStart(this.GoogleQuery); ThreadStart SearchYahooTW = new ThreadStart(this.YahooTWQuery); ThreadStart SearchMSN = new ThreadStart(this.MSNQuery); //宣告t0、t1、t2、t3四個Thread物件 Thread t0 = new Thread(SearchGAIS); Thread t1 = new Thread(SearchGoogle); Thread t2 = new Thread(SearchMSN); Thread t3 = new Thread(SearchYahooTW); //將t0、t1、t2、t3使作用 t0.Start(); t1.Start(); t2.Start(); t3.Start(); //將t0、t1、t2、t3加入到執行行列 t0.Join(); t1.Join(); t2.Join(); t3.Join(); }. 我們透過多緒執行能夠有效地利用傳送查詢及接收回傳資料這之 間的等候時間,再送出其他的查詢。 如此一來可以省下大量的時間, 也能進而加快整個程式執行的速度。. 3.4 資料彙整:. 由於取回來的資料包含了四家搜尋引擎的搜尋結果,這之中有許 多可能是重複的連結,或者需要利用一些排名值的順序來做最後結果 的排序,我們利用.NET Framework 提供的 ArrayList 物件來快速地儲. - 32 逢甲大學 e-Paper (92學年度).

(40) 以.NET技術實作個人化Internet網頁搜尋服務. 存回收的結果,並利用 ICompare 物件來快速依搜尋條件做搜尋。. 3.4.1 利用 ArrayList 物件儲存自訂 SearchedEntry 物件 ArrayList 是.NET Framework 所提供用來儲存資料的資料結構。 他的原理如同C語言的 Link List 能夠隨時新增資料內容,又能透過 繼承的 ToArray( )將 ArrayList 的內容當成陣列利用 Index 來使用。 在實作中,我們宣告了兩個 ArrayList 物件 ResultContainer 及 filter。. ResultContainer 紀錄的是搜尋完之後全部的結果,而. filter 儲存的則是 ResultContainer 做完彙整的內容。 public ArrayList ResultContainer = new ArrayList(); public ArrayList filter = new ArrayList();. 新增資料時只要利用 Add( )函式來新增資料內容即可。 新增的 資料型態則依使用者個人的需求來新增不受限制,但同一個 ArrayList 內的資料型態必須一致。. 3.4.2 實作 ICompare 介面來快速排序搜尋結果 接下來要介紹的是利用我們用來儲存資料內容的 SearchedEntry 類別繼承 ICompare 類別並實作排序函式。 如此一來我們能夠利用以 - 33 逢甲大學 e-Paper (92學年度).

(41) 以.NET技術實作個人化Internet網頁搜尋服務. 下如同 CompareTo( )函式及 SortBtURL( )函式只要定義排序的條件就 能快速地排序一個資料結構的內容。. //與現行的物件互相比較,比較的物件為 SearchedEntry 型態物件 //的 intOrder 屬性內容 public int CompareTo(object obj) { SearchedEntry se2; se2 = (SearchedEntry) obj; return intOrder.CompareTo(se2.intOrder); } //將現行的兩SearchedEntry型態物件的 strHref屬性依照 string 型態 //的排序比較方式做排序 public class SortByURL:IComparer { public int Compare(object obj1,object obj2) { SearchedEntry test1 = (SearchedEntry) obj1; SearchedEntry test2 = (SearchedEntry) obj2; return (string.Compare(test1.strHref,test2.strHref)); } } 最後我們只要如下地叫用即可快速地完成排序工作: //所使用的排序規則為 CompareTo 所定義的比較方式 filter.Sort(); //所使用的排序規則為自訂的 SortByURL 所定義的比較方式 ResultContainer.Sort((IComparer)new SearchedEntry.SortByURL()); - 34 逢甲大學 e-Paper (92學年度).

(42) 以.NET技術實作個人化Internet網頁搜尋服務. 3.5 偵測搜尋結果連結狀態功能介紹:. 這項功能最主要的意義是在於利用.NET Framework 所提供的多執 行緒功能幫助使用者先行檢測所搜尋的結果目標網頁連結是否為死連 結;亦或者連線狀態很慢,幫使用者在結果中做標記供參考。 在實作的部分,當使用者勾「選檢視搜尋結果連結狀態」選項時, 系統會將 IfCheckStatus 的值設為 true 並將儲存已經排序過搜尋結果 的 ArrayList 物件內容的 strURL 屬性所代表的 URL 加到多執行緒的佇 列中呼叫 CheckStatus( )副程式執行檢測目標網頁連結的狀態。. if (IfCheckStatus == true) { for(index = 0;index<filter.Count;index++) { ThreadStart thtest = new ThreadStart(this.CheckStatus); Thread t0 = new Thread(thtest); t0.Start(); t0.Join(10000); } }. CheckStatus( )副程式所執行的功能其實與 3.1.1 節的功能是一樣 的。. 唯一不同的是我們利用 HttpWebResponse 物件所取得的. - 35 逢甲大學 e-Paper (92學年度).

(43) 以.NET技術實作個人化Internet網頁搜尋服務. Response StatusCode 屬性的結果來判定狀態。 當回傳值為 OK 時,表 示目前所檢查的 URL 連線狀態是成功的,反之則為死連結。. public void CheckStatus() { //將代表目前所要檢查的 SearchEntry 物件實體化為 temp SearchedEntry temp = (SearchedEntry) this.filter[index]; try { Uri HttpSite = new Uri(temp.strHref); HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create(HttpSite); HttpWebResponse myResponse = (HttpWebResponse) //取得 HttpWebResponse 物件的結果 myRequest.GetResponse(); if (myResponse.StatusCode.ToString() == "OK") //回傳值為 OK 則將代表狀態的屬性 StatusCode 設為 true temp.StatusCode = true; else //回傳值為 OK 則將代表狀態的屬性 StatusCode 設為 false temp.StatusCode = false; } catch { //例外發生則將代表狀態的屬性 StatusCode 設為 false temp.StatusCode = false; } } 最後版面輸出時就會依照代表該搜尋結果的 StatusCode 來輸出如 圖 2.4 及圖 2.5 一樣的輸出標記告知使用者目前網頁連結的狀態。 - 36 逢甲大學 e-Paper (92學年度).

(44) 以.NET技術實作個人化Internet網頁搜尋服務. 3.6 實際效能檢測:. 因為 meta search engine 在絕大部分的時候,都必須到站外的其 他搜尋引擎作搜尋獲得資訊,所以會比一般站內已具存有大量資料的 搜尋引擎要花費更多的時間。 如果我們能夠了解所需要花費的平均 時間,也就代表著搜引擎的執行效能,至少在等待時能夠知道還需要 多少的時間。 要獲取搜尋的平均時間,我們利用從其他搜尋引擎獲得搜尋結果 的方法 - 即送出 URL 參數的 Request 並獲得 Response 的網頁的方 法,計時每次搜尋需要多少時間,最後取平均值來了解每次的平均搜 尋時間。 以下是我們利用 2004 年 5 月 3 日,Yahoo 奇摩的熱門搜尋排行榜 的前十大熱門搜尋作為實驗樣本,每次搜尋結果回收 2 到 6 頁結果, 不啟動任何特殊功能所得的平均時間結果:. - 37 逢甲大學 e-Paper (92學年度).

(45) 以.NET技術實作個人化Internet網頁搜尋服務. 回收頁數. 2. 3. 4. 5. 6. reesion. 1.125. 1.75. 1.781. 2.844. 3.922. 琉璃仙境音樂網. 1.469. 1.234. 1.89. 2.782. 5.969. 瘋狂阿給 遊戲區. 1.297 0.984. 1.204 0.922. 1.641 1.688. 3.187 2.531. 4.01 3.297. 天堂官方網站. 1.625. 1.282. 1.984. 2.375. 4.515. 仙境傳說 希望. 0.781 1.078. 0.688 0.906. 2 2.703. 2.828 2.688. 4.282 3.5. 史萊姆. 0.937. 0.953. 1.766. 3.297. 3.563. 104 遊戲基地. 0.766 1.031. 1.172 1.375. 2.015 2.297. 3.078 2.843. 3.672 3.64. 音樂網. 0.938. 0.719. 1.422. 2.547. 2.781. 王心凌 天堂 2. 0.75 0.844. 0.766 0.797. 1.593 1.485. 2.125 2.172. 3.313 2.953. 中華電信. 0.766. 0.703. 1.484. 2.187. 2.891. 小遊戲 加總. 0.781 14.391. 0.75 14.471. 1.641 25.749. 2.281 37.484. 3.172 52.308. 平均. 0.9594 0.964733. 1.7166 2.498933. 3.4872. 搜尋字串. 表 3.9 搜尋效能實測數據列表. - 38 逢甲大學 e-Paper (92學年度).

(46) 以.NET技術實作個人化Internet網頁搜尋服務. 7 reesion 琉璃仙境音樂網. 6. 瘋狂阿給 遊戲區. 5. 天堂官方網站 仙境傳說. 4. 希望 史萊姆 104. 3. 遊戲基地 音樂網. 2. 王心凌 天堂2. 1. 中華電信 小遊戲. 0. 平均 2. 3. 4. 5. 6. 圖 3.1 搜尋效能實測數據曲折圖. 以上為利用 2004 年 5 月 3 日 Yahoo 奇摩熱門關鍵字為測試搜尋字 串樣本集合之結果, (X 軸座標表示回收的頁面數;Y 軸表示所花費的 時間,單位為秒)。 由以上的數據可以了解到這必然的道理,當需要同時回收更多的 搜尋結果頁面時,勢必是需要大量時間。 不過我們利用 .NET Framework 多執行緒的優點就能夠大幅減少等待時間。. 這也是. 我們選擇以微軟.NET 技術來實作的理由之一。 - 39 逢甲大學 e-Paper (92學年度).

(47) 以.NET技術實作個人化Internet網頁搜尋服務. 第四章、結論. 4.1 總結:. 最後的成果,是完成一個能夠蒐集各家搜尋引擎搜尋結果的整合 工具。 又能讓使用者花費些許時間來預先偵測搜尋結果網頁的狀 態,並能查看搜尋結果在各家搜尋引擎的重要性排名。. 目前這個搜. 尋工具已經以控制項的型態內嵌在本校.NET 社群網站內,另外亦提供 使用者記錄自己搜尋過的結果,節省使用者再次搜尋所花費的時間。. 4.2 遭遇到的困難:. 在開發這個工具的過程當中,所遭遇到最大的困難就是在於語言 的熟悉度。 由於第一次使用微軟的.NET 技術的 C#語言及 SQL Server 2000 來開程式,面對具有物件導向程式設計能力的 C#語言,著實花費 了不少功夫在熟悉語言的使用上。 此外在剖析處理回傳資料時也花費了很大的時間,才漸漸地抓到 利用 Regular Expression 剖析大量文字串的訣竅,將所要處理的大量 文字串的規律式解析出來,進而利用其強大的能力來幫助我們完成這 - 40 逢甲大學 e-Paper (92學年度).

(48) 以.NET技術實作個人化Internet網頁搜尋服務. 項工作。. 4.3 未來展望:. 其實在開發的過程當中,發覺了幾項非常值得探討的問題方向。 在以下將一一提出說明,以提供未來接續開發人員可以繼續鑽研開發 的方向: 一、 搜尋字串的選擇:. 其實目前的搜尋引擎所能做到的最基本. 的功能就是比對使用者輸入的字串內容,然後找出字串比對 符合率最高的結果,並加以排名輸出。. 然而選擇搜尋字串. 有很多小技巧,使用者能透過增加或者減少搜尋字串的內容 來找到的幾乎完全不同的搜尋結果。 如果能夠找出這些被 新增或者減少的關鍵子字串所搜尋的結果與使用者所需求的 資訊的關係,或許能進而建議使用者改變搜尋字串已取得可 能是更符合使用者需求的搜尋結果。 二、 取得並剖析不規則的網路資源內容: 在這個實驗中所取得 的資料來源是非常有規律的搜尋結果內容。 但更積極的搜 尋引擎應該要有能力自行在網際網路上探索,找尋資源並能 剖析所找到的資源內容,再加到自身的資料庫當中以供查詢。 - 41 逢甲大學 e-Paper (92學年度).

(49) 以.NET技術實作個人化Internet網頁搜尋服務. 這個部份由於無法善用 Regular Expression 的優點,所以必 須利用堆疊來剖析網頁資源的 HTML 標籤,以取得網頁上有意 義的資訊。 三、 資料的分類: 這其實是很大的一個學問。 由二的網路探 索之後所取得的資源內容應該要能被分類儲存,才能更有效 率地被搜尋。 目前的分類式搜尋引擎都是利用人工的方式 來做分類。. 將來若是本搜尋服務也能將鎖探索得到的資訊. 加以分類來儲存,在搜尋速度及準確度上將能更為有效率及 準確。. - 42 逢甲大學 e-Paper (92學年度).

(50)

數據

圖 1.2  以「逢甲大學」為關鍵字搜尋 GAIS 搜尋引擎所得結果情況二  1.2.2.2  Google 台灣搜尋引擎搜尋結果顯示:  GAIS 引擎的搜尋結果所提供的資訊有搜尋結果網頁內容的 Title 內容、URL 網址及摘要內容。  此外還提供了「暫存網頁」、「相關網 頁」連結、網頁大小及維護更新日期等資訊。  GAIS 引擎也提供了搜 尋結果目標的檔案型態標記顯示,有一般 HTML 檔案(預設內容無標 示)、[ DOC ]型態表示微軟 Word 檔、[PPT]形態表示微軟 PowerPoint
圖 2.7  本專題實驗搜尋引擎搜尋流程圖
表 3.2  Google 台灣搜尋結果 HTML 原始碼及內碼
表 3.4  Yahoo 台灣搜尋結果 HTML 原始碼

參考文獻

相關文件

 當化合物是由兩種元素組成時,則稱為二元化 合物(binary compound)。二元離子化合物的實

表演藝術:1.認識 世界傳統舞蹈類 型實際學習體驗 原民舞蹈與文化 2.實際體驗舞台 與劇場藝術魅 力。3.透過街頭 藝術、國際藝術 節的介紹,體驗

二、查現行法務部所屬矯 正機關辦理收容人專 案檢定之主體包含監 獄、技能訓練所、看 守所、矯正學校、戒 治所等單位,為使實

一、訓練目標:增進在職人員對自動化機械控制的原理、實務技術與相關專業知

一、訓練目標:增進在職人員對自動化機械控制的原理、實務技術與相關專業知

本案件為乳癌標準化化學藥物治療與個人化化學治 療處方手術前化學治療療效比較之國內多中心研 究,於 2008 年 8 月 1 日由

2.醫療院所體檢表(體檢項目:身高、體重、視力、血壓及胸部

例如 : http ( 網頁伺服器所用的協定 ) 定義了 client 如何向 server request 網頁及 server 如何 將網頁及其中的各種內容回傳給 client 。. 提供服務給 application layer