亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

確定性有限自動機生成方法和裝置及索引方法和索引系統(tǒng)的制作方法

文檔序號:6573302閱讀:329來源:國知局
專利名稱:確定性有限自動機生成方法和裝置及索引方法和索引系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種確定性有限自動機(Deterministic Finite Automaton,以下簡稱DFA)的生成方法和生成裝置,以及基于該DFA生成方法和生成裝置的內(nèi)容索引方法和內(nèi)容索引系統(tǒng)。
背景技術(shù)
DFA是一種有限狀態(tài)機,每個字節(jié)8bits,意味著有256種狀態(tài)改變可能;則根據(jù)輸入的字節(jié),能夠找到對應(yīng)的下一個節(jié)點索引,即下一個狀態(tài)??梢钥闯?,根據(jù)DFA,可以進(jìn)行通信領(lǐng)域中,數(shù)據(jù)流的索引控制。
目前,DFA由專門的DFA硬件處理單元生成,如圖1所示DFA硬件處理單元主要包括三個部分延時減小動態(tài)隨機訪問存儲器(Reduced LatencyDynamic Random Access Memory,以下簡稱RLDRAM)和DFA引擎,以及包括指令隊列的輸入輸出單元,比如二級緩存(Level 2 Cache,以下簡稱L2)/DRAM。DFA硬件處理單元進(jìn)行索引所依據(jù)的數(shù)據(jù)被稱為DFA圖,由于RLDRAM的作用是存儲DFA圖,可以看出,DFA硬件處理單元本身并不生成DFA圖,而是在DFA硬件處理單元之外,先要由通信設(shè)備的中央處理單元(Core)通過編譯器生成DFA圖,并將其下載到RLDRAM中以備索引,并不是由DFA硬件處理單元直接生成并實現(xiàn)索引。因此,現(xiàn)有的索引方法總體包括以下步驟D0,Core將圖數(shù)據(jù)下載到RLDRAM中;D1,Core通過L2/DRAM的指令隊列提交指令給DFA;D2,DFA引擎讀取指令,并讀取報文數(shù)據(jù);D3,DFA引擎將報文數(shù)據(jù)按字節(jié)下載到RLDRAM中,執(zhí)行每個字節(jié)匹配查找操作;D4,DFA引擎將執(zhí)行的中間和最終結(jié)果寫回到L2/DRAM,完成DFA圖索引的操作。
同時,在編譯器生成DFA圖的方法主要有兩種第一種,定義多級關(guān)鍵字,生成具有多級關(guān)鍵字的DFA圖;第二種,定義單級關(guān)鍵字,生成具有單級關(guān)鍵字的DFA圖。
上述兩種方法都并未考慮到各級關(guān)鍵字在索引過程中的層次關(guān)系,這就為后續(xù)的索引工作帶來了相當(dāng)大的漏報或者多報的風(fēng)險。以在如下網(wǎng)頁內(nèi)容中進(jìn)行有效URL查找為例加以說明網(wǎng)頁內(nèi)容如下<embed src=″/mm/yanhuaen11167104207376.swf″quality=″high″pluginspage=″http://www.macromedia.com/go/getflashplayer″type=″application/x-shockwave-flash″width=″765″height=″211″></embed>
<script language=″javascript″>
function search(){//if (trim(searchForm.searchString.value)?。健濉?//searchForm.action=″http://www.huawei.com/Search/result.do″;searchForm.submit();}function enterkey(){if (event.keyCode==13){search();}}</script>
上述網(wǎng)頁中有效的URL記錄為sro=″/mm/yanhuaen11167104207376.swf″以及pluginspage=″http://www.macromedia.com/go/getflashplayer″;則查找的記錄應(yīng)給出(src=″)和(″)在網(wǎng)頁內(nèi)容文本中的偏移以及(pluginspage=″)和(″)在網(wǎng)頁內(nèi)容文本中的偏移,軟件根據(jù)兩者之間的偏移,就得到相應(yīng)的字符串/mm/yanhuaen11167104207376.swf以及http://www.macromedia.com/go/getflashplayer。
1、在第一種編譯器生成DFA圖的情況下,定義一級關(guān)鍵字為<a,<img,<embed......,每個一級關(guān)鍵字對應(yīng)二級關(guān)鍵字,對于“<a”,二級關(guān)鍵字為href=″,由于網(wǎng)頁中可能存在以單引號引用的情況,因此二級關(guān)鍵字還包括href=′;對于<img,二級關(guān)鍵字為src=″,src=′,longdesc=″,longdesc=′,usemapsps=″,usemapsps=′;對于<embed,二級關(guān)鍵字為src=″,src=′,pluginspage=″,pluginspage=′,......。采用如下正則表達(dá)式進(jìn)行DFA圖生成<a.+?[Hh][rR][Ee][Ff]=[″′]<[aA].+?[Hh][rR][Ee][Ff]=[″′].+?[′″]<img.+?[Sc][rR][Cc]=[″′]<[iI][Mm][Gg].+?[Sc][rR][Cc]=[″′].+?[′″]......
<embed.+?[Sc][rR][Cc]=[″′]<[eE][Mm][Bb][Ee][Dd].+?[Sc][rR][Cc]=[″′].+?[′″]......
根據(jù)上述正則表達(dá)式,利用DFA圖編譯器生成的DFA圖,由DFA硬件單元進(jìn)行URL索引。可以看出,匹配完一條記錄后,就會從一級關(guān)鍵字重新開始匹配,因此能夠在一級關(guān)鍵字有效區(qū)域內(nèi)命中一條記錄,但是對于在有效區(qū)域內(nèi)有多個匹配記錄的情況,就會發(fā)生漏報現(xiàn)象。比如在本例中,命中的記錄將是src=″/mm/yanhuaen11167104207376.swf″,漏報記錄pluginspage=″http://www.macromedia.com/go/getflashplayer″。
2、在第二種編譯器生成DFA圖的情況下,直接定義二級關(guān)鍵字href=″,href=′,src=″,src=′,longdesc=″,longdesc=′,usemapsps=″,usemapsps=′......。采用如下正則表達(dá)式進(jìn)行DFA圖生成[Hh][rR][Ee][Ff]=[″′](?<=[hH][rR][eE][fF]=[″′]).+?(?=[′″])[sS][rR][cC]=[″′](?<=[sS][rR][cC]=[″′]).+?(?=[′″])......
根據(jù)上述正則表達(dá)式,利用DFA圖編譯器生成的DFA圖,由DFA硬件單元進(jìn)行URL索引??梢钥闯觯綝FA圖下能夠匹配到所有記錄,但是不一定是有效記錄。這是因為,僅僅在一級關(guān)鍵字“<a”區(qū)域內(nèi)的記錄才是真正的有效記錄,而由于本方案不考慮一級關(guān)鍵字,因此有可能將非一級關(guān)鍵字下的記錄查找出來。比如本例中,除了索引到應(yīng)命中的記錄src=″/mm/yanhuaen11167104207376.swf″及pluginspage=″http://www.macromedia.com/go/getflashplayer″以外,還會多命中無效記錄action=″http://www.huawei.com/Search/result.do″,該無效記錄不在一級關(guān)鍵字“<a”區(qū)域內(nèi)。
綜上所述,現(xiàn)有技術(shù)中生成DFA圖時并未考慮到關(guān)鍵字的層次關(guān)系,因此導(dǎo)致進(jìn)行索引時的漏報或者多報。

發(fā)明內(nèi)容
本發(fā)明提供一種DFA生成方法及生成裝置以及基于該DFA生成方法及生成裝置的內(nèi)容索引方法和內(nèi)容索引系統(tǒng),解決現(xiàn)有技術(shù)中進(jìn)行DFA圖內(nèi)容索引時的漏報、多報問題。
為實現(xiàn)上述目的,本發(fā)明的實施例提供了一種DFA生成方法,包括為各級關(guān)鍵字設(shè)置中止符,并生成DFA節(jié)點樹,所述中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖。
本發(fā)明的實施例還提供了一種DFA生成裝置,包括關(guān)鍵字設(shè)置單元,用于定義關(guān)鍵字及其級別;中止符設(shè)置單元,用于基于各級關(guān)鍵字分別設(shè)置中止符;節(jié)點樹生成單元,分別與所述關(guān)鍵字設(shè)置單元和中止符設(shè)置單元連接,用于生成帶有中止符遷移狀態(tài)的DFA節(jié)點樹,使中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;DFA圖生成單元,與所述節(jié)點樹生成單元連接,用于將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖。
本發(fā)明的實施例還提供了一種基于上述DFA生成方法的內(nèi)容索引方法,DFA引擎接收到索引指令后,在預(yù)先生成的DFA中進(jìn)行索引;當(dāng)匹配到所需關(guān)鍵字時,生成第一偏移量記錄;當(dāng)匹配到中止符時,生成第二偏移量記錄,并返回上一級關(guān)鍵字。
本發(fā)明的實施例還提供了一種基于上述DFA生成裝置的內(nèi)容索引系統(tǒng),包括中央處理單元和與中央處理單元連接的DFA硬件單元,所述DFA硬件單元根據(jù)中央處理單元的索引指令,在預(yù)先生成的帶有中止符遷移狀態(tài)的DFA中進(jìn)行索引。
由上述技術(shù)方案可知,本發(fā)明通過為各級關(guān)鍵字設(shè)置中止符,采用將中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字,具有以下有益效果1、避免了DFA索引過程中漏報或者多報的情況,確保找到真正有效的索引記錄;2、通過將DFA生成裝置設(shè)置在DFA硬件單元中,只需要輸入關(guān)鍵字即可生成DFA圖,無須通過編譯器生成DFA圖并下載。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。


圖1為現(xiàn)有技術(shù)中進(jìn)行DFA索引的示意圖;圖2為本發(fā)明所提供的DFA生成方法的一個實施例流程圖;圖3為圖2所示方法中,生成的DFA節(jié)點樹的一個實施例的示意圖;圖4為圖2所示方法中,生成的DFA節(jié)點樹的另一個實施例的示意圖;圖5為圖3或圖4所示節(jié)點樹最終轉(zhuǎn)化的DFA圖;圖6為本發(fā)明所提供的DFA生成裝置一個實施例的框圖;圖7為本發(fā)明所提供的內(nèi)容索引方法一個實施例的流程圖;圖8為本發(fā)明所提供的內(nèi)容索引系統(tǒng)一個實施例的框圖。
具體實施例方式
為了克服現(xiàn)有技術(shù)中多級關(guān)鍵字的漏報問題,以及單一級別關(guān)鍵字的多報問題,本發(fā)明的實施例提出了加入中止符的技術(shù)方案,并由此帶來了DFA生成和索引技術(shù)方案的改進(jìn),下面分別進(jìn)行說明。
本發(fā)明所提供了DFA生成方法,包括為各級關(guān)鍵字設(shè)置中止符,并生成DFA節(jié)點樹,所述中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖。參見圖2,為DFA生成方法一個實施例的流程圖,以背景技術(shù)中的網(wǎng)頁索引為例,所需要生成的DFA應(yīng)能提供對有效的URL記錄(src=″/mm/yanhuaen11167104207376.swf″以及pluginspage=″http://www.macromedia.com/go/getflashplayer″)的索引,具體生成方法包括步驟101、為每一級關(guān)鍵字設(shè)置中止符,在本實施例中,一級關(guān)鍵字<a,<img,<embed......的中止符為“>”,二級關(guān)鍵字href=″、href=′、src=″、src=′、longdesc=″、longdesc=′、usemapsps=″、usemapsps=′、pluginspage=″、pluginspage=′......的中止符為“″”或者“′”;步驟102、根據(jù)每一級關(guān)鍵字生成節(jié)點,使每一級關(guān)鍵字中止符的狀態(tài)遷移方向指向其對應(yīng)的上一級關(guān)鍵字;參見圖3,生成的DFA節(jié)點樹的一個實施例的示意圖,一級關(guān)鍵字<img和二級關(guān)鍵字src=″構(gòu)成一個節(jié)點樹,一級關(guān)鍵字<img和二級關(guān)鍵字longdesc=″構(gòu)成一個節(jié)點樹,依次類推。其中,中止符″的狀態(tài)遷移方向指向上一級關(guān)鍵字。
為了便于識別,還可以包括步驟103將下一級關(guān)鍵字的節(jié)點樹設(shè)置為上一級關(guān)鍵字的子樹;這樣將各個節(jié)點樹依照一級關(guān)鍵字組織起來,形成三個節(jié)點樹。
還可以包括步驟104將最上一級關(guān)鍵字的節(jié)點樹設(shè)置為根節(jié)點的子樹,所述根節(jié)點對應(yīng)DFA圖的初始狀態(tài);從而,將全部的節(jié)點組合起來,有利于最終轉(zhuǎn)化為DFA圖,如圖4所示。
由于實際進(jìn)行索引所依照的是DFA圖,因此,在DFA樹生成之后,需要執(zhí)行步驟105將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖,如圖5所示,初始狀態(tài)為0。
通過本實施例所提供的DFA生成方法,無須生成正則表達(dá)式再用編譯器進(jìn)行解析就能夠生成DFA圖,且遇到中止符時,返回上一級關(guān)鍵字,實現(xiàn)在上一級關(guān)鍵字的有效區(qū)域內(nèi)繼續(xù)匹配。比如,在本實施例中,命中第一條記錄src=″/mm/yanhuaen11167104207376.swf″后,遇到中止符″,則返回上一級關(guān)鍵字<embed繼續(xù)索引,能夠命中第二條記錄pluginspage=http://www.macromedia.com/go/getflashplayer,不會造成漏掉記錄;遇到中止符″,返回上一級關(guān)鍵字<embed繼續(xù)索引,直到遇到中止符>,返回初始狀態(tài)0,完成在本一級關(guān)鍵字下的索引,因此也不會新增無效記錄。可以看出,通過本實施例所提供的DFA生成方法,既不會漏報某一級關(guān)鍵字下的內(nèi)容,也不會多報同級關(guān)鍵字的內(nèi)容。
進(jìn)一步的,本實施例是以兩級關(guān)鍵字為例進(jìn)行說明,由于關(guān)鍵字和相應(yīng)的中止符能夠動態(tài)配置,所以本實施例適用于任何所需要級數(shù)DFA的生成;同時,當(dāng)關(guān)鍵字添加/刪除/修改時,能夠相應(yīng)更新所述DFA節(jié)點樹,并最終保證DFA節(jié)點圖的更新。
參見圖6,為本發(fā)明所提供的DFA生成裝置的實施例的框圖,包括關(guān)鍵字設(shè)置單元1、中止符設(shè)置單元2、節(jié)點樹生成單元3和DFA圖生成單元4。
其中,關(guān)鍵字設(shè)置單元1用于定義關(guān)鍵字及其級別,比如一級關(guān)鍵字<a,<img,<embed......,二級關(guān)鍵字href=″、href=′、src=″、src=′、longdesc=″、longdesc=′、usemapsps=″、usemapsps=′、pluginspage=″、pluginspage=′......;對于本領(lǐng)域技術(shù)人員而言,可以直接輸入關(guān)鍵字字符串,也可以通過正則表達(dá)式進(jìn)行關(guān)鍵字的成組輸入,具體采用何種方式可由實際的應(yīng)用環(huán)境確定。
中止符設(shè)置單元2,用于基于各級關(guān)鍵字分別設(shè)置中止符,比如一級關(guān)鍵字的中止符為“>”,二級關(guān)鍵字的中止符為“″”或者“′”;對于本領(lǐng)域技術(shù)人員而言,該中止符并不局限于一個或者多個字符,只要與某一級關(guān)鍵字唯一對應(yīng)即可。
節(jié)點樹生成單元3,分別與所述關(guān)鍵字設(shè)置單元1和中止符設(shè)置單元2連接,用于生成帶有中止符遷移狀態(tài)的DFA節(jié)點樹,使中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;這種節(jié)點樹可以是具有根節(jié)點的DFA節(jié)點樹,也可以是僅有相關(guān)節(jié)點構(gòu)成的多個節(jié)點樹;DFA圖生成單元,與所述節(jié)點樹生成單元3連接,用于將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖。
通過本實施例所提供的DFA生成裝置,可以生成確保找到真正有效記錄的DFA圖,而無需通過額外的編譯器對正則表達(dá)式進(jìn)行解析。
參見圖7,為本發(fā)明所提供的,基于上述DFA生成方法的內(nèi)容索引方法,包括以下步驟步驟201、DFA引擎接收到中央處理單元發(fā)出的索引指令;步驟202、DFA引擎在預(yù)先生成的DFA圖中進(jìn)行索引;步驟203、從初始狀態(tài)開始,依次對待索引的字符進(jìn)行識別,匹配到一級關(guān)鍵字,執(zhí)行步驟204,為其他字符,重新執(zhí)行步驟203;步驟204、識別該一級關(guān)鍵字之后的待索引字符,匹配到二級關(guān)鍵字,則執(zhí)行步驟205;匹配到一級中止符,重新執(zhí)行步驟203;為其他字符,則重新執(zhí)行步驟204;步驟205、生成第一偏移量記錄;步驟206、識別所述二級關(guān)鍵字之后的待索引字符,匹配到二級中止符,執(zhí)行步驟207,否則重新執(zhí)行步驟206;步驟207、生成第二偏移量記錄;步驟208、根據(jù)某一關(guān)鍵字的第一偏移量記錄和第二偏移量記錄之差,獲取所索引的內(nèi)容,并重新執(zhí)行步驟204。
在本實施例中,當(dāng)索引內(nèi)容識別完成時,索引過程結(jié)束,通過對第一偏移量記錄和第二偏移量記錄的后續(xù)處理,很容易找到索引的URL字符串。
可以看出,本實施例是以兩級關(guān)鍵字為例,給出了索引的過程,比如,在<embed關(guān)鍵字下,在src=″時,生成一條記錄,記錄其在網(wǎng)頁內(nèi)容中的偏移量,在″時,再生成一條偏移量記錄。軟件可以根據(jù)其開始偏移量和偏移量差,得到匹配的URL記錄字符串,這個過程發(fā)生在<embed有效區(qū)域內(nèi),不會新增無效記錄。再比如,輸入<a后存在以下情況1)輸入h、H進(jìn)入二級dfa圖匹配;
2)輸入>回到初始狀態(tài)(0節(jié)點);3)輸入其他字符狀態(tài)不發(fā)生改變;進(jìn)入二級dfa圖匹配存在以下情況1)href匹配成功,生成第一偏移量記錄;2)輸入″或者′回到<a后狀態(tài)繼續(xù)索引,并生成第二偏移量記錄;3)輸入其他字符狀態(tài)不發(fā)生改變。
上述節(jié)點的改變,保證圖在有效區(qū)域里查找,遇到中止符返回。
在本實施例中,也可以不設(shè)置初始狀態(tài),而是以一級關(guān)鍵字的匹配作為觸發(fā)條件,這種改變并不會對本發(fā)明的技術(shù)方案造成影響。
本發(fā)明的實施例還提供了基于上述DFA生成裝置的內(nèi)容索引系統(tǒng),包括中央處理單元A和與中央處理單元A連接的DFA硬件單元B,所述DFA硬件單元B根據(jù)中央處理單元A的索引指令,在預(yù)先生成的帶有中止符遷移狀態(tài)的DFA中進(jìn)行索引。
具體的,DFA硬件單元B包括DFA生成裝置B1、DFA引擎B2和輸入輸出單元B3;所述DFA生成裝置B1用于通過輸入輸出單元B3進(jìn)行關(guān)鍵字及中止符設(shè)置,該關(guān)鍵字和中止符可以由中央處理單元A經(jīng)輸入輸出單元B3輸入;DFA生成裝置B1根據(jù)關(guān)鍵字和中止符生成帶有中止符遷移狀態(tài)的DFA圖,所述DFA引擎B2根據(jù)所述輸入輸出單元B3從中央處理單元A接收到的索引指令,在所述DFA生成裝置B1中進(jìn)行索引,并將索引結(jié)果寫入所述輸入輸出單元B3,如圖8所示。其中,輸入輸出單元B3所接收到的索引指令以及索引結(jié)果存儲在內(nèi)存或者L2里面,這樣存儲空間不會受到硬件的局限;或者在DFA硬件單元中設(shè)置小的閃存,以便提高訪問速度。
可以看出,本發(fā)明所提供的索引系統(tǒng)本身提供了DFA圖生成裝置,使用者只需要輸入關(guān)鍵字和中止符即可完成索引,而無需先通過編譯器進(jìn)行DFA圖生成,再下載到索引系統(tǒng)中,節(jié)約了中間環(huán)節(jié)。
最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制,盡管參照較佳實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種DFA生成方法,其特征在于包括為各級關(guān)鍵字設(shè)置中止符,并生成DFA節(jié)點樹,所述中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖。
2.根據(jù)權(quán)利要求1所述的DFA生成方法,其特征在于所述生成DFA節(jié)點樹包括將下一級關(guān)鍵字的節(jié)點樹設(shè)置為上一級關(guān)鍵字的子樹。
3.根據(jù)權(quán)利要求2所述的DFA生成方法,其特征在于所述生成DFA節(jié)點樹還包括將最上一級關(guān)鍵字的節(jié)點樹設(shè)置為根節(jié)點的子樹,所述根節(jié)點對應(yīng)DFA圖的初始狀態(tài)。
4.根據(jù)權(quán)利要求1-3任一所述的DFA生成方法,其特征在于還包括當(dāng)關(guān)鍵字添加/刪除/修改時,相應(yīng)更新所述DFA節(jié)點樹。
5.一種DFA生成裝置,其特征在于包括關(guān)鍵字設(shè)置單元,用于定義關(guān)鍵字及其級別;中止符設(shè)置單元,用于基于各級關(guān)鍵字分別設(shè)置中止符;節(jié)點樹生成單元,分別與所述關(guān)鍵字設(shè)置單元和中止符設(shè)置單元連接,用于生成帶有中止符遷移狀態(tài)的DFA節(jié)點樹,使中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;DFA圖生成單元,與所述節(jié)點樹生成單元連接,用于將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖。
6.一種基于權(quán)利要求1-4任一所述DFA生成方法的內(nèi)容索引方法,DFA引擎接收到索引指令后,在預(yù)先生成的DFA圖中進(jìn)行索引;其特征在于當(dāng)匹配到所需關(guān)鍵字時,生成第一偏移量記錄;當(dāng)匹配到中止符時,生成第二偏移量記錄,并返回上一級關(guān)鍵字。
7.根據(jù)權(quán)利要求6所述的內(nèi)容索引方法,其特征在于當(dāng)匹配到一級關(guān)鍵字的中止符時,返回初始狀態(tài)。
8.根據(jù)權(quán)利要求6或7所述的內(nèi)容索引方法,其特征在于還包括根據(jù)某一關(guān)鍵字的第一偏移量記錄和第二偏移量記錄之差,獲取所索引的內(nèi)容。
9.一種基于權(quán)利要求5所述的DFA生成裝置的內(nèi)容索引系統(tǒng),包括中央處理單元和與中央處理單元連接的DFA硬件單元,其特征在于所述DFA硬件單元根據(jù)中央處理單元的索引指令,在預(yù)先生成的帶有中止符遷移狀態(tài)的DFA中進(jìn)行索引。
10.根據(jù)權(quán)利要求9所述的內(nèi)容索引系統(tǒng),其特征在于所述DFA硬件單元包括DFA生成裝置、DFA引擎和輸入輸出單元;所述DFA生成裝置用于通過輸入輸出單元進(jìn)行關(guān)鍵字及中止符設(shè)置,并生成帶有中止符遷移狀態(tài)的DFA圖,所述DFA引擎根據(jù)所述輸入輸出單元從中央處理單元接收到的索引指令,在所述DFA生成裝置中進(jìn)行索引,并將索引結(jié)果寫入所述輸入輸出單元。
全文摘要
本發(fā)明公開了一種DFA生成方法,為各級關(guān)鍵字設(shè)置中止符,并生成DFA節(jié)點樹,中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;將最終生成的DFA節(jié)點樹轉(zhuǎn)換為DFA圖。本發(fā)明還公開了一種DFA生成裝置,包括定義關(guān)鍵字及其級別的關(guān)鍵字設(shè)置單元,基于各級關(guān)鍵字分別設(shè)置中止符的中止符設(shè)置單元;節(jié)點樹生成單元,用于生成帶有中止符遷移狀態(tài)的DFA節(jié)點樹,使中止符的狀態(tài)遷移方向指向上一級關(guān)鍵字;DFA圖生成單元。本發(fā)明還公開了基于上述DFA生成方法和生成裝置的內(nèi)容索引方法和內(nèi)容索引系統(tǒng)。通過本發(fā)明,避免了DFA索引過程中漏報或者多報的情況,確保找到真正有效的索引記錄,且無需使用編譯器生成DFA圖并下載。
文檔編號G06F17/30GK101013441SQ20071006382
公開日2007年8月8日 申請日期2007年2月12日 優(yōu)先權(quán)日2007年2月12日
發(fā)明者劉漢橋 申請人:杭州華為三康技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1