摘要:隨著Internet技術(shù)的普遍應(yīng)用,網(wǎng)絡(luò)信息量不斷的增大,如何在浩瀚的網(wǎng)絡(luò)數(shù)據(jù)中搜索到相關(guān)的數(shù)據(jù)信息,是目前網(wǎng)絡(luò)索引技術(shù)研究的主要問題,本文主要介紹了全文索引結(jié)構(gòu)對網(wǎng)絡(luò)數(shù)據(jù)搜素的應(yīng)用和過程。
關(guān)鍵詞:全文索引;索引過程;搜索過程
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9599 (2012) 24-0086-02
全文索引結(jié)構(gòu)的研究主要是為了降低全文索引的空間占用、提高索引的速度,提高用戶的瀏覽檢索速率,設(shè)計空間復(fù)雜度和時間復(fù)雜度都較小的全文索引結(jié)構(gòu)是重要研究的課題。
1 全文索引結(jié)構(gòu)簡介
一般我們生活中的數(shù)據(jù)分為兩類:結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。結(jié)構(gòu)化數(shù)據(jù)是指具有固定長度和格式的數(shù)據(jù);而非結(jié)構(gòu)化數(shù)據(jù)是沒有固定長度和格式的數(shù)據(jù)。我們所指的全文數(shù)據(jù)就是一種非結(jié)構(gòu)化的數(shù)據(jù),搜索的過程中可以使用對結(jié)構(gòu)化數(shù)據(jù)的搜索(如數(shù)據(jù)庫數(shù)據(jù)的搜索)和對非結(jié)構(gòu)化數(shù)據(jù)的搜索(如使用搜索引擎對網(wǎng)絡(luò)數(shù)據(jù)的搜索)。在對全文數(shù)據(jù)進行搜索是我們主要使用兩種方法:一種是順序掃描法,就是在一個文件中從頭到尾的查看,直到找出要尋找的字符串,這種方法比較的原始,適合文件量比較小的對象,比較的直接和快捷,但是如果文檔量大則使用起來會相當?shù)姆爆?。另一種方法是全文索引,所謂全文索引就是將全文非結(jié)構(gòu)化的數(shù)據(jù)提取出一部分,按照某種結(jié)構(gòu)重新進行排列,這個過程叫做索引,然后再對索引進行搜索,從而快速找到要尋找的字符串。全文檢索是指計算機索引程序通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現(xiàn)的次數(shù)和位置,當用戶查詢時,檢索程序就根據(jù)事先建立的索引進行查找,并將查找的結(jié)果反饋給用戶的檢索方式。這個過程類似于通過字典中的檢索字表查字的過程。全文檢索的過程包括索引創(chuàng)建和搜索索引兩個過程,索引創(chuàng)建就是將網(wǎng)絡(luò)中所有信息(包括結(jié)構(gòu)化信息和非結(jié)構(gòu)化信息)提取,創(chuàng)建索引的過程;搜索索引就是根據(jù)用戶的搜索要求,從已經(jīng)創(chuàng)建的索引中,查詢到相關(guān)結(jié)構(gòu)的過程。
下圖描述了全文索引的過程。
2 索引過程
對于非結(jié)構(gòu)數(shù)據(jù)在已有文檔中找到符合的字符串比較容易,這是文檔到字符串的映射,而索引過程中需要將符合條件的字符串歸結(jié)到相應(yīng)文檔中,就相當于上述過程的逆過程,即字符串到文檔的映射,我們稱作反向索引。有兩種不同的反向索引形式:一條記錄的水平反向索引(或者反向檔案索引)包含每個引用單詞的文檔的列表。一個單詞的水平反向索引(或者完全反向索引)又包含每個單詞在一個文檔中的位置。后者的形式提供了更多的兼容性(比如短語搜索),但是需要更多的時間和空間來創(chuàng)建。反向索引的過程如下圖所示:
我們指定文檔庫中有1到100篇文檔,找到相關(guān)的字符串保存在詞典中,并且保存詞典到文檔的鏈接,我們也把此表稱作倒排表。由此可見,順序查找每一次都需要掃描,浪費大量的時間,而全文索引只需要建立一次索引,就可以一勞永逸,在已有的索引結(jié)構(gòu)中進行查找了。索引的具體過程如下:
有一系列被索引文件
被索引文件經(jīng)過語法分析和語言處理形成一系列詞。
經(jīng)過索引創(chuàng)建形成詞典和反向索引表。
通過索引存儲將索引寫入硬盤。
3 搜索過程
搜索就是在已經(jīng)建立索引的文檔庫中找到相關(guān)文檔,但是當相關(guān)文檔數(shù)目過大時也要經(jīng)過如下步驟:
3.1 用戶輸入查詢語句。查詢語句也有一定的語法,語法規(guī)則和我們普通語言類似。
3.2 對查詢語句經(jīng)過語法分析和語言分析得到一系列詞。
(1)詞法分析主要用來識別單詞和關(guān)鍵字。
(2)語法分析主要根據(jù)查詢語句的語法規(guī)則來形成一顆語法樹。
(3)語言處理和索引過程中的語言處理幾乎相同。
3.3 通過語法分析得到一個查詢樹。
(1)在反向索引表中找到相關(guān)字符串的鏈表
(2)對相關(guān)字符串的鏈表進行合并
(3)通過相關(guān)運算排除,找到鏈表為相關(guān)字符串鏈表
3.4 利用查詢樹搜索索引,從而得到每一個詞的文檔鏈表,對文檔鏈表精心交、差、并得到結(jié)構(gòu)文檔。
3.5 將索引得到的結(jié)果文檔對查詢的相關(guān)性進行排序。
判斷詞之間的關(guān)系從而得到文檔相關(guān)性的過程應(yīng)用一種叫做向量空間模型的算法,包括以下兩個過程:計算權(quán)重的過程和判斷詞之間的關(guān)系從而得到文檔相關(guān)性的過程。
3.6 返回查詢結(jié)果給用戶。
下圖總結(jié)了全文索引結(jié)構(gòu)的全過程(紅色箭頭代表了索引的過程,藍色箭頭代表了搜索的過程)。
結(jié)束語:總之,全文索引結(jié)構(gòu)是一種有效的網(wǎng)絡(luò)數(shù)據(jù)檢索方式,通過索引的建立和搜索兩個過程可以方便有效的實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)的查找。它具有查詢速度快,準確,響應(yīng)時間短的優(yōu)點,然而如何發(fā)揮它的強大功能,并逐步完善它的功能,是需要我們進一步深入探討的問題。
參考文獻:
[1]劉曉珠,彭志勇.全文索引技術(shù)時空效率分析[J].軟件學報,2009,7.
[2]曹元大,賀海軍,涂哲明,等.全文檢索字索引技術(shù)的研究與實現(xiàn)[J].計算機工程,2002,6.
[3]徐小剛,王俊杰,于玉.全文索引的研究[J].計算機工程,2002,2.