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