1. 程式人生 > >學著站在巨人的肩膀上

學著站在巨人的肩膀上

不好意思讓大家久等了,前一陣一直在忙考試,終於結束了。呵呵!廢話不多說了下面我們開始吧!

TSE用的是將抓取回來的網頁文件全部裝入一個大文件,讓後對這一個大文件內的資料整體統一的建索引,其中包含了幾個步驟。

view plaincopy to clipboardprint?
1.  The document index (Doc.idx) keeps information about each document.  
 
It is a fixed width ISAM (Index sequential access mode) index, orderd by docID.  
 
The information stored in each entry includes a pointer into the repository,  
 
a document length, a document checksum.  
 
 
 
//Doc.idx  文件編號 文件長度    checksum hash碼  
 
0   0   bc9ce846d7987c4534f53d423380ba70  
 
1   76760   4f47a3cad91f7d35f4bb6b2a638420e5  
 
2   141624  d019433008538f65329ae8e39b86026c  
 
3   142350  5705b8f58110f9ad61b1321c52605795  
 
//Doc.idx   end  
 
 
 
  The url index (url.idx) is used to convert URLs into docIDs.  
 
 
 
//url.idx  
 
5c36868a9c5117eadbda747cbdb0725f    0 
 
3272e136dd90263ee306a835c6c70d77    1 
 
6b8601bb3bb9ab80f868d549b5c5a5f3    2 
 
3f9eba99fa788954b5ff7f35a5db6e1f    3 
 
//url.idx   end  
 
 
 
It is a list of URL checksums with their corresponding docIDs and is sorted by  
 
checksum. In order to find the docID of a particular URL, the URL's checksum  
 
is computed and a binary search is performed on the checksums file to find its  
 
docID.  
 
 
 
    ./DocIndex  
 
        got Doc.idx, Url.idx, DocId2Url.idx //Data資料夾中的Doc.idx DocId2Url.idx和Doc.idx中  
 
 
 
//DocId2Url.idx  
 
0  

http://*.*.edu.cn/index.aspx  
 
1   http://*.*.edu.cn/showcontent1.jsp?NewsID=118  
 
2   http://*.*.edu.cn/0102.html  
 
3   http://*.*.edu.cn/0103.html  
 
//DocId2Url.idx end  
 
 
 
2.  sort Url.idx|uniq > Url.idx.sort_uniq    //Data資料夾中的Url.idx.sort_uniq  
 
 
 
//Url.idx.sort_uniq  
 
//對hash值進行排序  
 
000bfdfd8b2dedd926b58ba00d40986b    1111 
 
000c7e34b653b5135a2361c6818e48dc    1831 
 
0019d12f438eec910a06a606f570fde8    366 
 
0033f7c005ec776f67f496cd8bc4ae0d    2103 
 
 
 
3. Segment document to terms, (with finding document according to the url)  
 
    ./DocSegment Tianwang.raw.2559638448        //Tianwang.raw.2559638448為爬回來的檔案 ,每個頁面包含http頭  
 
        got Tianwang.raw.2559638448.seg       
 
 
 
//Tianwang.raw.2559638448   爬取的原始網頁檔案在文件內部每一個文件之間應該是通過version,</html>和回車做標誌位分割的  
 
version: 1.0 
 
url:
http://***.105.138.175/Default2.asp?lang=gb
  
 
origin: http://***.105.138.175/  
 
date: Fri, 23 May 2008 20:01:36 GMT  
 
ip: 162.105.138.175 
 
length: 38413 
 
 
 
HTTP/1.1 200 OK  
 
Server: Microsoft-IIS/5.0 
 
Date: Fri, 23 May 2008 11:17:49 GMT  
 
Connection: keep-alive  
 
Connection: Keep-Alive  
 
Content-Length: 38088 
 
Content-Type: text/html; Charset=gb2312  
 
Expires: Fri, 23 May 2008 11:17:49 GMT  
 
Set-Cookie: ASPSESSIONIDSSTRDCAB=IMEOMBIAIPDFCKPAEDJFHOIH; path=/  
 
Cache-control: private 
 
 
 
 
 
 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 
"
http://www.w3.org/TR/html4/loose.dtd
">  
 
<html>  
 
<head>  
 
<title>Apabi數字資源平臺</title>  
 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
 
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">  
 
<META NAME="DESCRIPTION" CONTENT="數字圖書館 方正數字圖書館 電子圖書 電子書 ebook e書 Apabi 數字資源平臺">  
 
<link rel="stylesheet" type="text/css" href="css\common.css">  
 
 
 
<style type="text/css">  
 
<!--  
 
.style4 {color: #666666}  
 
-->  
 
</style>  
 
 
 
<script LANGUAGE="vbscript">  
 
...  
 
</script>  
 
 
 
<Script Language="javascript">  
 
...  
 
</Script>  
 
</head>  
 
<body leftmargin="0" topmargin="0">  
 
</body>  
 
</html>  
 
//Tianwang.raw.2559638448   end  
 
 
 
//Tianwang.raw.2559638448.seg   將每個頁面分成一行如下(注意中間沒有回車作為分隔)  
 

 
...  
 
...  
 
...  
 

 
...  
 
...  
 
...  
 
//Tianwang.raw.2559638448.seg   end  
 
 
 
//下是 Tiny search 非必須因素  
 
4. Create forward index (docic-->termid)     //建立正向索引  
 
    ./CrtForwardIdx Tianwang.raw.2559638448.seg > moon.fidx  
 
 
 
//Tianwang.raw.2559638448.seg 將每個頁面分成一行如下<BR>//分詞   DocID<BR>1<BR>三星/  s/  手機/  論壇/  ,/  手機/  鈴聲/  下載/  ,/  手機/  圖片/  下載/  ,/  手機/<BR>2<BR>...<BR>...<BR>... 

1.  The document index (Doc.idx) keeps information about each document.

It is a fixed width ISAM (Index sequential access mode) index, orderd by docID.

The information stored in each entry includes a pointer into the repository,

a document length, a document checksum.

//Doc.idx  文件編號 文件長度 checksum hash碼

0 0 bc9ce846d7987c4534f53d423380ba70

1 76760 4f47a3cad91f7d35f4bb6b2a638420e5

2 141624 d019433008538f65329ae8e39b86026c

3 142350 5705b8f58110f9ad61b1321c52605795

//Doc.idx end

  The url index (url.idx) is used to convert URLs into docIDs.

//url.idx

5c36868a9c5117eadbda747cbdb0725f 0

3272e136dd90263ee306a835c6c70d77 1

6b8601bb3bb9ab80f868d549b5c5a5f3 2

3f9eba99fa788954b5ff7f35a5db6e1f 3

//url.idx end

It is a list of URL checksums with their corresponding docIDs and is sorted by

checksum. In order to find the docID of a particular URL, the URL's checksum

is computed and a binary search is performed on the checksums file to find its

docID.

 ./DocIndex

  got Doc.idx, Url.idx, DocId2Url.idx //Data資料夾中的Doc.idx DocId2Url.idx和Doc.idx中

//DocId2Url.idx

//DocId2Url.idx end

2.  sort Url.idx|uniq > Url.idx.sort_uniq //Data資料夾中的Url.idx.sort_uniq

//Url.idx.sort_uniq

//對hash值進行排序

000bfdfd8b2dedd926b58ba00d40986b 1111

000c7e34b653b5135a2361c6818e48dc 1831

0019d12f438eec910a06a606f570fde8 366

0033f7c005ec776f67f496cd8bc4ae0d 2103

3. Segment document to terms, (with finding document according to the url)

 ./DocSegment Tianwang.raw.2559638448  //Tianwang.raw.2559638448為爬回來的檔案 ,每個頁面包含http頭

  got Tianwang.raw.2559638448.seg  

//Tianwang.raw.2559638448 爬取的原始網頁檔案在文件內部每一個文件之間應該是通過version,</html>和回車做標誌位分割的

version: 1.0

date: Fri, 23 May 2008 20:01:36 GMT

ip: 162.105.138.175

length: 38413

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Fri, 23 May 2008 11:17:49 GMT

Connection: keep-alive

Connection: Keep-Alive

Content-Length: 38088

Content-Type: text/html; Charset=gb2312

Expires: Fri, 23 May 2008 11:17:49 GMT

Set-Cookie: ASPSESSIONIDSSTRDCAB=IMEOMBIAIPDFCKPAEDJFHOIH; path=/

Cache-control: private

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

<html>

<head>

<title>Apabi數字資源平臺</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">

<META NAME="DESCRIPTION" CONTENT="數字圖書館 方正數字圖書館 電子圖書 電子書 ebook e書 Apabi 數字資源平臺">

<link rel="stylesheet" type="text/css" href="css\common.css">

<style type="text/css">

<!--

.style4 {color: #666666}

-->

</style>

<script LANGUAGE="vbscript">

...

</script>

<Script Language="javascript">

...

</Script>

</head>

<body leftmargin="0" topmargin="0">

</body>

</html>

//Tianwang.raw.2559638448 end

//Tianwang.raw.2559638448.seg 將每個頁面分成一行如下(注意中間沒有回車作為分隔)

1

...

...

...

2

...

...

...

//Tianwang.raw.2559638448.seg end

//下是 Tiny search 非必須因素

4. Create forward index (docic-->termid)  //建立正向索引

 ./CrtForwardIdx Tianwang.raw.2559638448.seg > moon.fidx

//Tianwang.raw.2559638448.seg 將每個頁面分成一行如下//分詞   DocID1三星/  s/  手機/  論壇/  ,/  手機/  鈴聲/  下載/  ,/  手機/  圖片/  下載/  ,/  手機/2.........view plaincopy to clipboardprint?
//Tianwang.raw.2559638448.seg end  
 
 
//moon.fidx  
 
//每篇文件號對應文件內分出來的    分詞  DocID  
 
都會  2391 
 
使   2391 
 
那些  2391 
 
擁有  2391 
 
它   2391 
 
的   2391 
 
人   2391 
 
的   2391 
 
視野  2391 
 
變   2391 
 
窄   2391 
 
在   2180 
 
研究生部    2180 
 
主頁  2180 
 
培養  2180 
 
管理  2180 
 
欄目  2180 
 
下載  2180 
 
)   2180 
 
、   2180 
 
關於  2180 
 
做好  2180 
 
年   2180 
 
國家  2180 
 
公派  2180 
 
研究生 2180 
 
專案  2180 
 
//moon.fidx end  
 
 
 
5.# set | grep "LANG" 
 
LANG=en; export LANG;  
 
sort moon.fidx > moon.fidx.sort  
 
 
 
6. Create inverted index (termid-->docid)    //建立倒排索引  
 
    ./CrtInvertedIdx moon.fidx.sort > sun.iidx  
 
 
 
//sun.iidx  //檔案規模大概減少1/2  
 
花工   236 
 
花海   2103 
 
花卉   1018 1061 1061 1061 1730 1730 1730 1730 1730 1852 949 949 
 
花蕾   447 447 
 
花木   1061 
 
花呢   1430 
 
花期   447 447 447 447 447 525 
 
花錢   174 236 
 
花色   1730 1730 
 
花色品種     1660 
 
花生   450 526 
 
花式   1428 1430 1430 1430 
 
花紋   1430 1430 
 
花序   447 447 447 447 447 450 
 
花絮   136 137 
 
花芽   450 450 
 
//sun.iidx  end  
 
 
 
TSESearch   CGI program for query  
 
Snapshot    CGI program for page snapshot  
 
 
<P>  
author:http://hi.baidu.com/jrckkyy  
 
author:http://blog.csdn.net/jrckkyy  
</P> 

相關推薦

巨人肩膀

不好意思讓大家久等了,前一陣一直在忙考試,終於結束了。呵呵!廢話不多說了下面我們開始吧! TSE用的是將抓取回來的網頁文件全部裝入一個大文件,讓後對這一個大文件內的資料整體統一的建索引,其中包含了幾個步驟。 view plaincopy to clipboardprint?1.  The do

紅領巾,巨人肩膀登鼻臉,文化或浮躁?

sof 慢慢 pan 們的 inf copyright 怎麽 去那 alt 一、紅芯事件   事件描述:8月15日,完成2.5億c輪融資的“自主研發”紅芯瀏覽器,被爆虛假宣傳,實為基於Chrome內核修改而來。 二、我的評論 三、我認同的觀點   以下從我國歷史文化、社

巨人肩膀的牛頓:Kubernetes和SAP Kyma

這周Jerry在SAP上海研究院參加了一個為期4天的Kubernetes培訓,度過了忙碌而又充實的4天。Jason,Benny和Peng三位大神的培訓乾貨滿滿,藉此機會,Jerry和過去的兩位老領導Patrick和Evan敘了敘舊,也拜見了上海SAP圈子裡的幾位大佬。以前在網路上久聞大名

小米開源:巨人肩膀的創新

7月22日訊息,    小米4 手機今天釋出,又一次掀起了業界關於“小米現象”的討論熱潮。藉著這股東風,我們來了解一下“開源”文化在這個炙手可熱的科技公司中佔據什麼地位。 作為一款Android系的產品,小米手機天然具有開源的基因。小米的MIUI系統,被認為是利用開源Android作業系統的成功典範。最新

[iOS開發巨人肩膀]之How to avoid memory leaks in iPhone applications

Introduction This article lists some tips to avoid memory leaks in your iPhone apps. Ownership Ownership is the overall idea behind

巨人肩膀,C++開源庫大全

windows應用 pcr ram perl t對象 rest 容器 企業應用 聲音 程序員要站在巨人的肩膀上,C++擁有豐富的開源庫,這裏包括:標準庫、Web應用框架、人工智能、數據庫、圖片處理、機器學習、日誌、代碼分析等。 標準庫 C++ Standard

java的設計模式的一些鏈接,巨人肩膀,才能看的更遠。(均來源與網上的各個大牛的博客中)

原型 責任 arc .cn java life tar 創建 解釋 創建型抽象工廠模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html工廠方法 http://www.cnblogs.

MGCEX.NZ“巨人肩膀觸控未來”

  如果說2017年是加密數字資產市場最為火爆的一年,那麼2018年就是MGCEX.NZ國際站火爆的第一年。   依託廣泛支援國際各大主流幣種的優勢,MGCEX.NZ國際站迅速實現了飛速發展,成為國際上為數不多的優質平臺之一。   我們知道成就與產業爆發,通常是“站在巨人的肩膀上”實現的。那

巨人肩膀開發遊戲 1 -- orx 庫簡單介紹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【LGD_Sunday的專欄】巨人肩膀,我們才能看得更遠!

專欄達人 授予成功建立個人部落格專欄

Focusing on your own Mind :) -> 巨人肩膀

最近一直在做相關推薦方面的研究與應用工作,召回率與準確率這兩個概念偶爾會遇到, 知道意思,但是有時候要很清晰地向同學介紹則有點轉不過彎來。   ------------------------------------------------------------

讓伺服器能支援10萬併發數祕訣,親身經歷,巨人肩膀創造

 由於一個專案的訪問量越來越大,從原來的幾百個,增加到現在50多萬個每天,所以阿里的伺服器也扛不住了,於是就想辦法,查了N多資料,總結了以下方法,才解決這問題,每天一共訪問量50多萬,並不是同時訪問,所以,提高併發數才是關鍵。由於網站一再打不開,按照排除原因來看,資料庫

【思想感悟】巨人肩膀

前言:      如果說我比別人看得更遠些,那是因為我站在了巨人的肩上. ——牛頓 正文:      這次分享,由於一些原因我沒有去現場聽,可能少了一絲絲震撼,就像在家看電影與去電影院看的差別。這是

年薪百萬的程序員都是巨人肩膀開發

定時 作品 調查 tro load 差異 總結 面向對象 專業知識 要想成為一名軟件開發者需要學習各種專業知識、技術與框架。比如算法、數據結構、編程語言、流行框架等。但是要想成為更加出色的軟件開發者,你要學習的就不僅僅是專業上的知識了。 標題過於浮誇,希望大家諒解,但本篇是

巨人肩膀看Servlet——原來如此(更適合初學者認識Servlet)

前言: 有段時間沒更新部落格了,這段時間因為要準備考試,考完試後又忙了一陣別的事,一直沒能靜下心來寫部落格。大學考試真是越來越噁心了,各種心酸,那酸爽,夠味。不過還好,馬上就要大三了,聽大三學長學姐說大三好多都是考查課,考試的科目少了,心中還是挺期待的,給學弟學妹們祈福吧,要好好學習,大學不再是之前的大學了

在DevOps肩膀的TestOps(二)

理想 好的 好處 允許 圖片 每次 失敗 adding 最好 一十一 發表於 2018-03-14 16:40:22 TestOps 摘要: TestOps模型旨在將整個團隊的註意力集中在質量上,因此TestOps確實需要無

EOS原力孤矢:在EOS肩膀,看齊BTC

FBEC2018 由深圳市網際網路文化市場協會指導,遊戲陀螺、陀螺財經聯合主辦的2018未來商業生態連結大會暨第三屆金陀螺獎頒獎盛典(簡稱“FBEC2018”)將於2018年12月在深圳舉辦,本屆大會以“突維 · 新裂變”為主題,涵蓋遊戲及數字娛樂、區塊鏈技與應用、VR/AR/AI等多個行業

在大神的肩膀 - 簡述Android應用啟動流程

最近看了很多大神的部落格,都是有關Android啟動流程文章 ,看得很辛苦,似懂非懂的感覺。這篇文章是對Android啟動流程的總結和自己的見解,沒有複雜原始碼分析,只是簡單總結闡述流程而已。 系統程序啟動流程 手機開機時,先由init程序建立 Zygote程序, Zygote程序會

在大神肩膀,深入理解 Android事件分發機制

Android事件分發,參考了網上的很多資料。基本基於android2.2的原始碼來分析,因為即使是新的版本,裡面的原理思想也沒有改變。 有了大神的肩膀,我在理解了其原理的基礎上,進行一個小總結。 先理解一個概念: 事件:在android中,點選螢幕是時,產生的長按,點選

在原始碼的肩膀全解Scroller工作機制

PS:如果覺得文章太長,你也可觀看該課程的視訊教程,親,裡面還有高清,無碼的福利喔 前言 在Android開發中有多種方式實現View的滑動,常見的有三種如下: 不斷地修改View的LayoutParams 採用動畫向Vi