一種文件索引的建立方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及軟件編譯技術(shù)領(lǐng)域,特別是涉及一種文件索引的建立方法及系統(tǒng)。
【背景技術(shù)】
[0002]在大型軟件開發(fā)項目中,根據(jù)軟件工程的要求會在開發(fā)過程中產(chǎn)生大量的需求、設(shè)計、程序代碼、測試代碼等信息。這些信息一般都以文件的形式保存在文件系統(tǒng)中,可以通過檢索特定的文件獲取所需要的信息。文件系統(tǒng)是一個簡單的樹形存儲結(jié)構(gòu),只能提供一維基于命名規(guī)范的索引,而且無法確認(rèn)所需的信息是否在特定的文件中,為了獲取所需要的信息,就需要建立有效的索引。
[0003]在實際工作中,需要對文件進行多種不同瑋度的檢索并準(zhǔn)確定位所需信息所在的位置,而目前的電子化辦公環(huán)境中充斥著基于不同格式和模板的海量文件,面對海量的文件,如何能夠準(zhǔn)確檢索到所需要的文件并定位到文件中所需要的內(nèi)容,成為日常工作中無法回避的問題。
[0004]現(xiàn)有技術(shù)中,在文件建立階段,建立者是根據(jù)命名規(guī)范將文件保存在文件系統(tǒng)的指定目錄中,文件全路徑是文件的唯一索引,文件所在的目錄代表文件的分類,文件名隱含文件應(yīng)該包含的內(nèi)容,文件名的后綴代表文件的類型,在文件使用階段,可以通過命名規(guī)范進行精確檢索,也可以通過全文檢索進行模糊查詢。
[0005]但是,基于命名規(guī)范的精確檢索只能建立基于文件全路徑的單一樹狀索引,僅僅能表述基于某一瑋度的分類關(guān)系,文件名只能表述有限分類信息,而無法表述文件內(nèi)更多的信息。全文檢索只能進行關(guān)鍵字進行檢索,在大多數(shù)情況下關(guān)鍵字并不能代表一段有效的信息,所以當(dāng)通過全文檢索進行查找的時候,往往需要面對大量無用的信息。
[0006]可見,這兩種現(xiàn)有的檢索方法由于缺少適合的文件索引,所能檢索的信息有限,會造成檢索的過程繁瑣,卻難以準(zhǔn)確檢索到有效信息。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本申請實施例提供一種文件索引的建立方法及系統(tǒng),用于建立一種文件索引,能夠使檢索的過程得到簡化,并可以準(zhǔn)確檢索到有效信息。
[0008]為了實現(xiàn)上述目的,本申請實施例提供的技術(shù)方案如下:
[0009]一種文件索引的建立方法,包括:
[0010]接收按照預(yù)設(shè)的格式信息編寫的文件,并按照預(yù)設(shè)的命名規(guī)范將接收的所述文件以預(yù)設(shè)的文件名稱保存;
[0011]根據(jù)設(shè)置在文件系統(tǒng)上的偵聽器偵聽所述文件名稱,并根據(jù)所述文件名稱查找相對應(yīng)的文件解析器;
[0012]通過查找的解析器從所述文件的格式信息中解析關(guān)鍵字,并根據(jù)預(yù)設(shè)規(guī)則將所述關(guān)鍵字添加到XML索引文件中。
[0013]優(yōu)選地,所述根據(jù)設(shè)置在文件系統(tǒng)上的偵聽器偵聽所述文件名稱,并根據(jù)所述文件名稱查找相應(yīng)的文件解析器,包括:
[0014]獲得所述文件名稱,根據(jù)所述命名規(guī)范查找與所述文件名稱相對應(yīng)的文件解析器,判斷是否查找到與所述文件名稱相對應(yīng)的文件解析器;
[0015]如果未查找到與所述文件名稱相對應(yīng)的文件解析器,根據(jù)所述文件系統(tǒng)的配置信息判斷所述文件系統(tǒng)中是否允許保存非規(guī)范文件;
[0016]如果所述文件系統(tǒng)中不允許保存非規(guī)范文件,輸出無法找到文件解析器的提示信息,并保存到錯誤記錄中。
[0017]優(yōu)選地,還包括:
[0018]如果所述文件系統(tǒng)中允許保存非規(guī)范文件,輸出無法找到文件解析器的提示信息,并判斷是否將所述文件作為非規(guī)范文件保存;
[0019]如果將所述文件作為非規(guī)范文件保存,則將所述文件作為非規(guī)范文件添加到XML索引文件中;
[0020]如果不將所述文件作為非規(guī)范文件保存,則保存到錯誤記錄中。
[0021]優(yōu)選地,所述通過查找的解析器從所述文件的格式信息中解析關(guān)鍵字,并根據(jù)預(yù)設(shè)規(guī)則將所述關(guān)鍵字添加到XML索引文件中,包括:
[0022]清除所述XML索引文件中與所述文件相關(guān)的索引節(jié)點;
[0023]檢查所述文件的格式信息,判斷所述格式信息是否正確;
[0024]如果所述格式信息不正確,將保存到錯誤記錄中,并輸出無法解析所述文件的提不?目息;
[0025]如果所述格式信息正確,獲取所述文件中全部的根節(jié)點;
[0026]在所述XML索引文件中查找與所述根節(jié)點對應(yīng)的節(jié)點;
[0027]如果在所述XML索引文件中無法查找到與所述根節(jié)點對應(yīng)的節(jié)點,則在所述XML索引文件中建立虛節(jié)點,并保存到錯誤記錄中;
[0028]如果在所述XML索引文件中查找到與所述根節(jié)點對應(yīng)的節(jié)點,則在所述XML索引文件中查找與所述根節(jié)點對應(yīng)的節(jié)點下的所有子節(jié)點;
[0029]如果在所述XML索引文件中查找到與所述根節(jié)點對應(yīng)的節(jié)點下的子節(jié)點,則將索引信息與子節(jié)點的關(guān)系逐一添加到所述XML索引文件中;
[0030]如果在所述XML索引文件中無法查找到與所述根節(jié)點對應(yīng)的節(jié)點下的子節(jié)點,判斷所述文件系統(tǒng)的配置信息是否允許添加子節(jié)點;
[0031]如果允許,則添加子節(jié)點,檢查所述XML索引文件中是否包括與添加的子節(jié)點相關(guān)的虛節(jié)點,如果有,則將與添加的子節(jié)點相關(guān)的虛節(jié)點變?yōu)閷嶋H的節(jié)點并在錯誤記錄中清除相關(guān)的錯誤記錄;
[0032]如果不允許,則添加相關(guān)的虛節(jié)點,并保存到錯誤記錄中。
[0033]優(yōu)選地,還包括:
[0034]判斷所述文件系統(tǒng)的配置信息是否有完整性檢查要求;
[0035]如果有完整性檢查要求,則進行完整性檢查,并將檢查出的錯誤保存到錯誤記錄中;
[0036]生成錯誤列表,所述錯誤列表中包括所有的錯誤記錄,并保存所述XML索引文件。
[0037]—種文件索引的建立系統(tǒng),包括:
[0038]編寫模塊,用于接收按照預(yù)設(shè)的格式信息編寫的文件,并按照預(yù)設(shè)的命名規(guī)范將接收的所述文件以預(yù)設(shè)的文件名稱保存;
[0039]查找模塊,用于根據(jù)設(shè)置在文件系統(tǒng)上的偵聽器偵聽所述文件名稱,并根據(jù)所述文件名稱查找相對應(yīng)的文件解析器;
[0040]解析模塊,用于通過查找的解析器從所述文件的格式信息中解析關(guān)鍵字,并根據(jù)預(yù)設(shè)規(guī)則將所述關(guān)鍵字添加到XML索引文件中。
[0041]優(yōu)選地,所述查找模塊,包括:
[0042]查找單元,用于獲得所述文件名稱,根據(jù)所述命名規(guī)范查找與所述文件名稱相對應(yīng)的文件解析器,判斷是否查找到與所述文件名稱相對應(yīng)的文件解析器;
[0043]判斷單元,用于如果未查找到與所述文件名稱相對應(yīng)的文件解析器,根據(jù)所述文件系統(tǒng)的配置信息判斷所述文件系統(tǒng)中是否允許保存非規(guī)范文件;
[0044]第一輸出單元,用于如果所述文件系統(tǒng)中不允許保存非規(guī)范文件,輸出無法找到文件解析器的提示信息,并保存到錯誤記錄中。
[0045]優(yōu)選地,所述查找模塊,還包括:
[0046]第二輸出單元,用于如果所述文件系統(tǒng)中允許保存非規(guī)范文件,輸出無法找到文件解析器的提示信息,并判斷是否將所述文件作為非規(guī)范文件保存;
[0047]添加單元,用于如果將所述文件作為非規(guī)范文件保存,則將所述文件作為非規(guī)范文件添加到XML索引文件中;
[0048]保存單元,用于如果不將所述文件作為非規(guī)范文件保存,則保存到錯誤記錄中。
[0049]優(yōu)選地,所述解析模塊,具體用于:
[0050]清除所述XML索引文件中與所述文件相關(guān)的索引節(jié)點;
[0051]檢查所述文件的格式信息,判斷所述格式信息是否正確;
[0052]如果所述格式信息不正確,將保存到錯誤記錄中,并輸出無法解析所述文件的提不?目息;
[0053]如果所述格式信息正確,獲取所述文件中全部的根節(jié)點;
[0054]在所述XML索引文件中查找與所述根節(jié)點對應(yīng)的節(jié)點;
[0055]如果在所述XML索引文件中無法查找到與所述根節(jié)點對應(yīng)的節(jié)點,則在所述XML索引文件中建立虛節(jié)點,并保存到錯誤記錄中;
[0056]如果在所述XML索引文件中查找到與所述根節(jié)點對應(yīng)的節(jié)點,則在所述XML索引文件中查找與所述根節(jié)點對應(yīng)的節(jié)點下的所有子節(jié)點;
[0057]如果在所述XML索引文件中查找到與所述根節(jié)點對應(yīng)的節(jié)點下的子節(jié)點,則將索引信息與子節(jié)點的關(guān)系逐一添加到所述XML索引文件中;
[0058]如果在所述XML索引文件中無法查找到與所述根節(jié)點對應(yīng)的節(jié)點下的子節(jié)點,判斷所述文件系統(tǒng)的配置信息是否允許添加子節(jié)點;
[0059]如果允許,則添加子節(jié)點,檢查所述XML索引文件中是否包括與添加的子節(jié)點相關(guān)的虛節(jié)點,如果有,則將與添加的子節(jié)點相關(guān)的虛節(jié)點變?yōu)閷嶋H的節(jié)點并在錯誤記錄中清除相關(guān)的錯誤記錄;
[00