有那麼多的網頁和關鍵詞,搜索引擎是怎樣建索引的?

是不是一個很大的表格,比如說行是各個關鍵詞,列是各個網頁,行列值則是具體的權重,這樣的說索引不是太大了么?或者是不是對關鍵詞分類來建立索引呢?謝謝回答!


參考該文《分詞與索引庫》

http://www.semyj.com/archives/544

如果想更詳細了解,可以看一些搜索引擎相關原理的書籍。


恰好對搜索引擎和SEO都有過研究,整理了一份PPT,節選部分來回答你的問題

以下主要摘自網上,詳細地址沒了...如果原作者看到,請PM我啊。

在全文檢索的實現機制裡面,主要關心以下3個方面。

1. 索引裡面究竟存些什麼?(Index)

2. 如何創建索引?(Indexing)

3. 如何對索引進行搜索?(Search)

如何創建索引?(Indexing)

第一步:一些要索引的原文檔(Document)。

第二步:將原文檔傳給分次組件(Tokenizer)。

第三步:將得到的詞元(Token)傳給語言處理組件(Linguistic Processor)

第四步:將得到的詞(Term)傳給索引組件(Indexer)。

第一步:一些要索引的原文檔(Document)。

為了方便說明索引創建過程,用兩個文件為例:

文件一:Students should be allowed to go out with their friends, but not allowed to drink beer.

文件二:My friend Jerry went to school to see his students but found them drunk which is not allowed.

第二步:將原文檔傳給分次組件(Tokenizer)。

分片語件(Tokenizer)會做以下幾件事情( 此過程稱為Tokenize) :

1. 將文檔分成一個一個單獨的單詞。

2. 去除標點符號。

3. 去除停詞(Stop word) 。

經過分詞(Tokenizer) 後得到的結果稱為詞元(Token) 。

在我們的例子中,便得到以下詞元(Token):

「Students」,「allowed」,「go」,「their」,「friends」,「allowed」,「drink」,「beer」,「My」,「friend」,「Jerry」,「went」,「school」,「see」,「his」,「students」,「found」,「them」,「drunk」,「allowed」。

第三步:將得到的詞元(Token)傳給語言處理組件(Linguistic Processor)

語言處理組件(linguistic processor)主要是對得到的詞元(Token)做一些同語言相關的處理。

對於英語,語言處理組件(Linguistic Processor) 一般做以下幾點:

1. 變為小寫(Lowercase) 。

2. 將單詞縮減為詞根形式,如「cars 」到「car 」等。這種操作稱為:stemming 。

3. 將單詞轉變為詞根形式,如「drove 」到「drive 」等。這種操作稱為:lemmatization 。

語言處理組件(linguistic processor)的結果稱為詞(Term) 。

在我們的例子中,經過語言處理,得到的詞(Term)如下:

「student」,「allow」,「go」,「their」,「friend」,「allow」,「drink」,「beer」,「my」,「friend」,「jerry」,「go」,「school」,「see」,「his」,「student」,「find」,「them」,「drink」,「allow」。

也正是因為有語言處理的步驟,才能使搜索drove,而drive也能被搜索出來。

第四步:將得到的詞(Term)傳給索引組件(Indexer)

索引組件(Indexer)主要做以下幾件事情:

1. 利用得到的詞(Term)創建一個字典。

2. 對字典按字母順序進行排序。

3. 合併相同的詞(Term) 成為文檔倒排(Posting List) 鏈表。

* Document Frequency 即文檔頻次,表示總共有多少文件包含此詞(Term)。

* Frequency 即詞頻率,表示此文件中包含了幾個此詞(Term)。綜上,這個只是搜索引擎的簡單實現,真正的肯定比這個複雜,特別是中文處理方面。


基本「像」你所說的那樣,但是關鍵詞數量比較有限的,網頁數量很大

這個索引是從關鍵詞查找網頁,所以這個索引是關鍵詞為 KEY ,網頁為 VALUE 的倒排表

涉及到同一個關鍵詞很多網頁的排序,有演算法定出來比如最基本的 TF-IDF


推薦閱讀:

20180101「引得市」資料庫與「古文字缺字資料庫」更新及使用說明
寫會MySQL索引
20180104《傳抄古文新編字編》索引數位化完成
「松鼠的窩」專欄文章索引
如何理解Mysql的索引及他們的原理?

TAG:搜索引擎 | 索引 |