本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種信息的校驗(yàn)方法及裝置。
背景技術(shù):
::隨著互聯(lián)網(wǎng)的興起,航空公司網(wǎng)上售票平臺(tái)以及各種第三方的航班銷售平臺(tái)不斷涌現(xiàn),旅客可以通過互聯(lián)網(wǎng)自助的完成航班的預(yù)訂和支付。這就要求為旅客提供自動(dòng)化的航班查詢搜索系統(tǒng)。旅客輸入一個(gè)行程請(qǐng)求,該系統(tǒng)會(huì)自動(dòng)為旅客計(jì)算生成可用的行程,并且完成航班可利用艙位的查詢及航班艙位價(jià)格的計(jì)算,這就對(duì)航班搜索系統(tǒng)的處理性能提出了更高要求。航班搜索需要尋找滿足旅客行程要求的一組航班并計(jì)算出乘坐這組航班所需的價(jià)格。對(duì)于一個(gè)從O出發(fā)到D的查詢請(qǐng)求,既要在數(shù)以百萬計(jì)的航班計(jì)劃數(shù)據(jù)中找出滿足行程要求的航班組合,又要在數(shù)以億計(jì)的運(yùn)價(jià)數(shù)據(jù)中找出相應(yīng)的運(yùn)價(jià)組合。而航班組合與運(yùn)價(jià)組合之間又可以是多對(duì)多的關(guān)系,即一個(gè)航班組合可與多個(gè)運(yùn)價(jià)組合對(duì)應(yīng),同理一個(gè)運(yùn)價(jià)組合也可以用于多個(gè)航班組合。因此OD之間滿足查詢請(qǐng)求的潛在結(jié)果數(shù)以億計(jì),航班搜索引擎必須在短時(shí)間內(nèi)從龐大的搜索空間中找到較優(yōu)的結(jié)果返回給用戶。如何提高搜索效率,成為了航班搜索技術(shù)的關(guān)鍵。一個(gè)航班組合與一個(gè)運(yùn)價(jià)組合最終能否對(duì)應(yīng)起來,需要受到運(yùn)價(jià)規(guī)則的限制。航空公司為了實(shí)現(xiàn)差異化的銷售策略,允許同一航班上存在多種機(jī)票價(jià)格,并對(duì)每一種價(jià)格的適用條件進(jìn)行了詳細(xì)的規(guī)定,這些價(jià)格約束條件就是通過運(yùn)價(jià)規(guī)則來表達(dá)的。將航班組合與運(yùn)價(jià)組合對(duì)應(yīng)起來的搜索過程,實(shí)際上就是校驗(yàn)運(yùn)價(jià)規(guī)則是否通過的過程。運(yùn)價(jià)規(guī)則是通過數(shù)據(jù)表來存儲(chǔ)的,表中有多條記錄,而每條記錄中又包含多個(gè)字段內(nèi)容。雖然運(yùn)價(jià)規(guī)則中包括record規(guī)則,category規(guī)則,table規(guī)則,yqyr規(guī)則和iatatax規(guī)則等,且這些規(guī)則中具體的字段校驗(yàn)邏輯各有不同。但如果略去具體字段的校驗(yàn)邏輯,統(tǒng)一抽象為字段匹配,則這些校驗(yàn)都可以抽象為根據(jù)已知的行程信息,遍歷運(yùn)價(jià)規(guī)則中的每條記錄,并對(duì)記錄中的字段進(jìn)行逐個(gè)匹配,當(dāng)一條記錄中所有的字段都可以匹配,則這條記錄是一條通過校驗(yàn)的記錄,最終要在所有通過校驗(yàn)的記錄中選擇優(yōu)先級(jí)最高的一條記錄作為最終結(jié)果,如果所有記錄都不能通過校驗(yàn),則這個(gè)運(yùn)價(jià)規(guī)則的校驗(yàn)失敗。這種抽象的好處是可以屏蔽各種運(yùn)價(jià)規(guī)則中具體字段的差異性,為所有的運(yùn)價(jià)規(guī)則建立一套統(tǒng)一的校驗(yàn)方法和系統(tǒng)。對(duì)于某一種航班和運(yùn)價(jià)組合,需要校驗(yàn)所有的規(guī)則記錄,以便找到一條可用的記錄。在用戶的一次請(qǐng)求中,會(huì)有N種航班組合和M種運(yùn)價(jià)組合,由于聯(lián)程航班與運(yùn)價(jià)組合是多對(duì)多關(guān)系,在對(duì)某運(yùn)價(jià)規(guī)則進(jìn)行校驗(yàn)的過程中,實(shí)際需要校驗(yàn)N*M次這一運(yùn)價(jià)規(guī)則的全部記錄,如果考慮K種旅客信息和J種代理人銷售信息的話,需要校驗(yàn)的次數(shù)為N*M*K*J次。這導(dǎo)致了校驗(yàn)效率很低,運(yùn)價(jià)規(guī)則校驗(yàn)成為航班搜索過程中的性能瓶頸。如前所述,雖然不同的運(yùn)價(jià)規(guī)則校驗(yàn)邏輯不盡相同,但是這些校驗(yàn)過程都可以抽象為將行程信息與規(guī)則記錄中每個(gè)字段相匹配的過程。這里的行程信息由四種類型的信息組成,分別是航班信息、運(yùn)價(jià)信息、旅客信息和銷售信息。前述例子中需要校驗(yàn)N*M*K*J次全部規(guī)則記錄的原因是因?yàn)檫@四種類型的信息一共構(gòu)成了N*M*K*J種行程信息,對(duì)于每一種行程信息都需要進(jìn)行一次規(guī)則校驗(yàn),以確定這種行程是否可用。如果單獨(dú)看每一類型的信息,例如對(duì)于某一種航班信息,使用它進(jìn)行了M*K*J次校驗(yàn),同理使用相同的運(yùn)價(jià)信息校驗(yàn)了N*K*J次。另一方面,如果對(duì)規(guī)則記錄中的字段按校驗(yàn)所需信息進(jìn)行分類,可以分為航班信息相關(guān)字段、運(yùn)價(jià)信息相關(guān)字段、旅客信息相關(guān)字段、銷售信息相關(guān)字段和其它信息字段。這里其它信息字段指的是不能將所需校驗(yàn)信息明確對(duì)應(yīng)到某一種信息類型的字段。對(duì)字段進(jìn)行分類可以幫助找到哪些字段在規(guī)則校驗(yàn)中被重復(fù)校驗(yàn)了多次。例如,對(duì)于僅需校驗(yàn)航班信息的字段,對(duì)于相同的航班信息,在每條記錄中這個(gè)字段被校驗(yàn)完畢后,剩余的M*K*J-1次都是在重復(fù)校驗(yàn)。由此可見,在運(yùn)價(jià)規(guī)則校驗(yàn)過程中存在大量的重復(fù)校驗(yàn),而針對(duì)相關(guān)技術(shù)中的該問題,目前尚未存在有效的解決方案。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供了一種信息的校驗(yàn)方法及裝置,以至少解決相關(guān)技術(shù)中在運(yùn)價(jià)規(guī)則校驗(yàn)過程中存在大量的重復(fù)校驗(yàn)的問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種信息的校驗(yàn)方法,包括:將待校驗(yàn)信息的內(nèi)容進(jìn)行分段得到與分段內(nèi)容對(duì)應(yīng)第一校驗(yàn)字段和第二校驗(yàn)字段,其中,所述第一校驗(yàn)字段與在所述待校驗(yàn)信息中所需內(nèi)容所屬類型對(duì)應(yīng),所述第二校驗(yàn)字段于所述待校驗(yàn)信息中除所述所需內(nèi)容之外的內(nèi)容對(duì)應(yīng);從數(shù)據(jù)庫中校驗(yàn)出所述第一校驗(yàn)字段和所述第二校驗(yàn)字段均匹配的記錄。進(jìn)一步地,所述第一校驗(yàn)字段由多類校驗(yàn)字段組成,其中,每類校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段;所述第二校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段。進(jìn)一步地,在每類校驗(yàn)字段相互之間為包含或被包含的關(guān)系的情況下,從數(shù)據(jù)庫中校驗(yàn)出所述第一校驗(yàn)字段和所述第二校驗(yàn)字段均匹配的記錄包括:查找數(shù)據(jù)庫中是否存在與所述第一校驗(yàn)字段中第一類校驗(yàn)字段均匹配的第一記錄,其中,所述第一類校驗(yàn)字段包含所有種類的校驗(yàn)字段;在數(shù)據(jù)庫中存在與所述第一類校驗(yàn)字段均匹配的第一記錄的情況下,從查找到的所述第一記錄中繼續(xù)校驗(yàn)所述第二校驗(yàn)字段,直到所述第一記錄中存在于所述第二校驗(yàn)字段匹配的記錄。進(jìn)一步地,在數(shù)據(jù)庫中不存在與所述第一校驗(yàn)字段中包含種類最多校驗(yàn)字段均匹配的第一記錄的情況下,查找數(shù)據(jù)庫中是否存在與所述第一校驗(yàn)字段中第二類校驗(yàn)字段均匹配的第二記錄,其中,所述第二類校驗(yàn)字段相對(duì)于所述第一校驗(yàn)字段少一類校驗(yàn)字段;在數(shù)據(jù)庫中存在與所述第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找所述第二記錄中是否存在與所述第二類校驗(yàn)字段相對(duì)于所述第一校驗(yàn)字段缺少的一類校驗(yàn)字段;在所述第二記錄中存在與所述第二類校驗(yàn)字段相對(duì)于所述第一校驗(yàn)字段缺少的一類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)所述第二校驗(yàn)字段,直到所述第二記錄中存在于所述第二校驗(yàn)字段匹配的記錄;將校驗(yàn)結(jié)果與所述第一類校驗(yàn)字段以鍵值對(duì)形式緩存。進(jìn)一步地,在數(shù)據(jù)庫中不存在與所述第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找數(shù)據(jù)庫中是否存在與所述第N校驗(yàn)字段中第N類校驗(yàn)字段均匹配的第N記錄;其中,所述第N類校驗(yàn)字段相對(duì)于所述第二校驗(yàn)字段少N減2類校驗(yàn)字段;在數(shù)據(jù)庫中存在與所述第N類校驗(yàn)字段均匹配的第N記錄的情況下,查找所述第N記錄中是否存在與所述第N類校驗(yàn)字段相對(duì)于所述第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段;在所述第N記錄中存在與所述第N類校驗(yàn)字段相對(duì)于所述第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)所述第二校驗(yàn)字段,直到所述第N記錄中存在于所述第二校驗(yàn)字段匹配的記錄;將校驗(yàn)結(jié)果與所述第一類校驗(yàn)字段以鍵值對(duì)形式緩存;其中,N為從3開始取值的整數(shù)。根據(jù)本發(fā)明的再一個(gè)方面,提供了一種信息的校驗(yàn)裝置,包括:分段模塊,用于將待校驗(yàn)信息的內(nèi)容進(jìn)行分段得到與分段內(nèi)容對(duì)應(yīng)第一校驗(yàn)字段和第二校驗(yàn)字段,其中,所述第一校驗(yàn)字段與在所述待校驗(yàn)信息中所需內(nèi)容所屬類型對(duì)應(yīng),所述第二校驗(yàn)字段于所述待校驗(yàn)信息中除所述所需內(nèi)容之外的內(nèi)容對(duì)應(yīng);校驗(yàn)?zāi)K,用于從數(shù)據(jù)庫中校驗(yàn)出所述第一校驗(yàn)字段和所述第二校驗(yàn)字段均匹配的記錄。進(jìn)一步地,所述第一校驗(yàn)字段由多類校驗(yàn)字段組成,其中,每類校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段;所述第二校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段。進(jìn)一步地,在每類校驗(yàn)字段相互之間為包含或被包含的關(guān)系的情況下,所述校驗(yàn)?zāi)K包括:第一查找單元,用于查找數(shù)據(jù)庫中是否存在與所述第一校驗(yàn)字段中第一類校驗(yàn)字段均匹配的第一記錄,其中,所述第一類校驗(yàn)字段包含所有種類的校驗(yàn)字段;第一校驗(yàn)單元,用于在數(shù)據(jù)庫中存在與所述第一類校驗(yàn)字段均匹配的第一記錄的情況下,從查找到的所述第一記錄中繼續(xù)校驗(yàn)所述第二校驗(yàn)字段,直到所述第一記錄中存在于所述第二校驗(yàn)字段匹配的記錄。進(jìn)一步地,第二查找單元,用于在數(shù)據(jù)庫中不存在與所述第一校驗(yàn)字段中包含種類最多校驗(yàn)字段均匹配的第一記錄的情況下,查找數(shù)據(jù)庫中是否存在與所述第一校驗(yàn)字段中第二類校驗(yàn)字段均匹配的第二記錄,其中,所述第二類校驗(yàn)字段相對(duì)于所述第一校驗(yàn)字段少一類校驗(yàn)字段;第三查找單元,用于在數(shù)據(jù)庫中存在與所述第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找所述第二記錄中是否存在與所述第二類校驗(yàn)字段相對(duì)于所述第一校驗(yàn)字段缺少的一類校驗(yàn)字段;第二校驗(yàn)單元,用于在所述第二記錄中存在與所述第二類校驗(yàn)字段相對(duì)于所述第一校驗(yàn)字段缺少的一類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)所述第二校驗(yàn)字段,直到所述第二記錄中存在于所述第二校驗(yàn)字段匹配的記錄;第一緩存單元,用于將校驗(yàn)結(jié)果與所述第一類校驗(yàn)字段以鍵值對(duì)形式緩存。進(jìn)一步地,第四查找單元,用于在數(shù)據(jù)庫中不存在與所述第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找數(shù)據(jù)庫中是否存在與所述第N校驗(yàn)字段中第N類校驗(yàn)字段均匹配的第N記錄;其中,所述第N類校驗(yàn)字段相對(duì)于所述第二校驗(yàn)字段少N減2類校驗(yàn)字段;第五查找單元,用于在數(shù)據(jù)庫中存在與所述第N類校驗(yàn)字段均匹配的第N記錄的情況下,查找所述第N記錄中是否存在與所述第N類校驗(yàn)字段相對(duì)于所述第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段;第三校驗(yàn)單元,用于在所述第N記錄中存在與所述第N類校驗(yàn)字段相對(duì)于所述第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)所述第二校驗(yàn)字段,直到所述第N記錄中存在于所述第二校驗(yàn)字段匹配的記錄;第二緩存單元,用于將校驗(yàn)結(jié)果與所述第一類校驗(yàn)字段以鍵值對(duì)形式緩存;其中,N為從3開始取值的整數(shù)。通過本發(fā)明,從數(shù)據(jù)庫中校驗(yàn)出第一校驗(yàn)字段和第二校驗(yàn)字段均匹配的記錄,而該第一校驗(yàn)字段和第二校驗(yàn)字段是由將待校驗(yàn)信息的內(nèi)容進(jìn)行分段得到的,而且第一校驗(yàn)字段與在待校驗(yàn)信息中所需內(nèi)容所屬類型對(duì)應(yīng),第二校驗(yàn)字段于待校驗(yàn)信息中除所需內(nèi)容之外的內(nèi)容對(duì)應(yīng);從而使得在校驗(yàn)過程中減少重復(fù)校驗(yàn)次數(shù),進(jìn)而解決了相關(guān)技術(shù)中在運(yùn)價(jià)規(guī)則校驗(yàn)過程中存在大量的重復(fù)校驗(yàn)的問題,達(dá)到了提高系統(tǒng)的處理效率。附圖說明此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:圖1是根據(jù)本發(fā)明實(shí)施例的信息的校驗(yàn)方法流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的校驗(yàn)字段示意圖;圖3是根據(jù)本發(fā)明實(shí)施例的運(yùn)價(jià)校驗(yàn)的方法流程圖;圖4是根據(jù)本發(fā)明實(shí)施例的信息的校驗(yàn)裝置結(jié)構(gòu)框圖。具體實(shí)施方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。實(shí)施例1本實(shí)施例提供了一種信息的校驗(yàn)方法,圖1是根據(jù)本發(fā)明實(shí)施例的信息的校驗(yàn)方法流程圖,如圖1所示,該方法的步驟包括:步驟S102:將待校驗(yàn)信息的內(nèi)容進(jìn)行分段得到與分段內(nèi)容對(duì)應(yīng)第一校驗(yàn)字段和第二校驗(yàn)字段,其中,第一校驗(yàn)字段與在待校驗(yàn)信息中所需內(nèi)容所屬類型對(duì)應(yīng),第二校驗(yàn)字段于待校驗(yàn)信息中除所需內(nèi)容之外的內(nèi)容對(duì)應(yīng);步驟S104:從數(shù)據(jù)庫中校驗(yàn)出第一校驗(yàn)字段和第二校驗(yàn)字段均匹配的記錄。通過本實(shí)施例的上述步驟S102和步驟S104,從數(shù)據(jù)庫中校驗(yàn)出第一校驗(yàn)字段和第二校驗(yàn)字段均匹配的記錄,而該第一校驗(yàn)字段和第二校驗(yàn)字段是由將待校驗(yàn)信息的內(nèi)容進(jìn)行分段得到的,而且第一校驗(yàn)字段與在待校驗(yàn)信息中所需內(nèi)容所屬類型對(duì)應(yīng),第二校驗(yàn)字段于待校驗(yàn)信息中除所需內(nèi)容之外的內(nèi)容對(duì)應(yīng);從而使得在校驗(yàn)過程中減少重復(fù)校驗(yàn)次數(shù),進(jìn)而解決了相關(guān)技術(shù)中在運(yùn)價(jià)規(guī)則校驗(yàn)過程中存在大量的重復(fù)校驗(yàn)的問題,達(dá)到了提高系統(tǒng)的處理效率。需要說明的是,該第一校驗(yàn)字段由多類校驗(yàn)字段組成,其中,每類校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段;第二校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段?;谏鲜稣f明,在本實(shí)施例中每類校驗(yàn)字段相互之間為包含或被包含的關(guān)系的情況下,本實(shí)施例步驟S104中涉及到的從數(shù)據(jù)庫中校驗(yàn)出第一校驗(yàn)字段和第二校驗(yàn)字段均匹配的記錄的方式可以包括:步驟S104-1:查找數(shù)據(jù)庫中是否存在與第一校驗(yàn)字段中第一類校驗(yàn)字段均匹配的第一記錄,其中,第一類校驗(yàn)字段包含所有種類的校驗(yàn)字段;步驟S104-2:在數(shù)據(jù)庫中存在與第一類校驗(yàn)字段均匹配的第一記錄的情況下,從查找到的第一記錄中繼續(xù)校驗(yàn)第二校驗(yàn)字段,直到第一記錄中存在于第二校驗(yàn)字段匹配的記錄。步驟S104-3:在數(shù)據(jù)庫中不存在與第一校驗(yàn)字段中包含種類最多校驗(yàn)字段均匹配的第一記錄的情況下,查找數(shù)據(jù)庫中是否存在與第一校驗(yàn)字段中第二類校驗(yàn)字段均匹配的第二記錄,其中,第二類校驗(yàn)字段相對(duì)于第一校驗(yàn)字段少一類校驗(yàn)字段;步驟S104-4:在數(shù)據(jù)庫中存在與第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找第二記錄中是否存在與第二類校驗(yàn)字段相對(duì)于第一校驗(yàn)字段缺少的一類校驗(yàn)字段;步驟S104-5:在第二記錄中存在與第二類校驗(yàn)字段相對(duì)于第一校驗(yàn)字段缺少的一類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)第二校驗(yàn)字段,直到第二記錄中存在于第二校驗(yàn)字段匹配的記錄;將校驗(yàn)結(jié)果與第一類校驗(yàn)字段以鍵值對(duì)形式緩存?;谏鲜霾襟ES104-1至步驟S104-5可知,在數(shù)據(jù)庫中不存在與第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找數(shù)據(jù)庫中是否存在與第N校驗(yàn)字段中第N類校驗(yàn)字段均匹配的第N記錄;其中,第N類校驗(yàn)字段相對(duì)于第二校驗(yàn)字段少N減2類校驗(yàn)字段;在數(shù)據(jù)庫中存在與第N類校驗(yàn)字段均匹配的第N記錄的情況下,查找第N記錄中是否存在與第N類校驗(yàn)字段相對(duì)于第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段;在第N記錄中存在與第N類校驗(yàn)字段相對(duì)于第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)第二校驗(yàn)字段,直到第N記錄中存在于第二校驗(yàn)字段匹配的記錄;將校驗(yàn)結(jié)果與第一類校驗(yàn)字段以鍵值對(duì)形式緩存;其中,N為從3開始取值的整數(shù)。對(duì)于本實(shí)施例的方式,下面結(jié)合具體實(shí)施例對(duì)本實(shí)施例進(jìn)行詳細(xì)說明;下面結(jié)合附圖在具體應(yīng)用場(chǎng)景中對(duì)本實(shí)施例進(jìn)行說明;圖2是根據(jù)本發(fā)明實(shí)施例的校驗(yàn)字段示意圖,圖3是根據(jù)本發(fā)明實(shí)施例的運(yùn)價(jià)校驗(yàn)的方法流程圖,如圖2和3所示,在運(yùn)價(jià)校驗(yàn)過程中,根據(jù)行程信息,首先構(gòu)造A類型的鍵key1,其代表的含義是對(duì)于當(dāng)前行程,是否已經(jīng)校驗(yàn)過字段A1、A2、B1、C1、C2和C3。使用key1查詢緩存中是否已經(jīng)存在key1對(duì)應(yīng)的比特串,如果找到對(duì)應(yīng)的比特串,說明已經(jīng)校驗(yàn)過上述字段,可以繼續(xù)校驗(yàn)后續(xù)字段。因此遍歷比特串,對(duì)于值為1的記錄繼續(xù)校驗(yàn)這條記錄的后續(xù)校驗(yàn)字段F1、F2和F3,直到找到所有字段都匹配的記錄。如果沒有找到key1對(duì)應(yīng)的比特串,說明還沒有校驗(yàn)過上述6個(gè)字段。減少需要校驗(yàn)的字段,構(gòu)造B類型的鍵key2,使用key2查詢緩存中是否已存在key2對(duì)應(yīng)的比特串,如果找到對(duì)應(yīng)的比特串,說明對(duì)當(dāng)前行程信息已經(jīng)校驗(yàn)過B1、C1、C2和C3字段。遍歷比特串,對(duì)于值為1的記錄,校驗(yàn)其相對(duì)A類型缺少的字段A1和A2,如果校驗(yàn)失敗則將比特串中相應(yīng)值修改為0,如果校驗(yàn)通過則繼續(xù)處理下一條值為1的記錄,直到處理完成所有記錄。至此利用key2的結(jié)果,通過增加校驗(yàn)A1和A2字段,得到了key1的校驗(yàn)結(jié)果,將key1和新得到的比特串,以鍵值對(duì)形式存入緩存中。如果沒有找到key2對(duì)應(yīng)的比特串,則繼續(xù)較少需要校驗(yàn)的字段,構(gòu)造C類型的鍵key3,使用key3查詢緩存中是否已經(jīng)存在key3對(duì)應(yīng)的比特串,如果找到對(duì)應(yīng)的比特串,則遍歷比特串,增加校驗(yàn)字段B1,將得到的新的比特串和key2一起存入緩存。如果沒有找到key3對(duì)應(yīng)的比特串,說明C1、C2和C3都沒有校驗(yàn)過,則建立一個(gè)新的值全部為0的比特串,逐條記錄校驗(yàn)這3個(gè)字段,將校驗(yàn)結(jié)果比特串和C類型的key3一起,以鍵值對(duì)形式存入緩存中。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。實(shí)施例2在本實(shí)施例中還提供了一種信息的校驗(yàn)裝置,該裝置用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。圖4是根據(jù)本發(fā)明實(shí)施例的信息的校驗(yàn)裝置結(jié)構(gòu)框圖,如圖4所示,該裝置包括:分段模塊42,用于將待校驗(yàn)信息的內(nèi)容進(jìn)行分段得到與分段內(nèi)容對(duì)應(yīng)第一校驗(yàn)字段和第二校驗(yàn)字段,其中,第一校驗(yàn)字段與在待校驗(yàn)信息中所需內(nèi)容所屬類型對(duì)應(yīng),第二校驗(yàn)字段于待校驗(yàn)信息中除所需內(nèi)容之外的內(nèi)容對(duì)應(yīng);校驗(yàn)?zāi)K44,與分段模塊42耦合連接,用于從數(shù)據(jù)庫中校驗(yàn)出第一校驗(yàn)字段和第二校驗(yàn)字段均匹配的記錄。需要說明的是,第一校驗(yàn)字段由多類校驗(yàn)字段組成,其中,每類校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段;第二校驗(yàn)字段包括一個(gè)或多個(gè)校驗(yàn)字段?;谏鲜稣f明,在本實(shí)施例中每類校驗(yàn)字段相互之間為包含或被包含的關(guān)系的情況下,該校驗(yàn)?zāi)K42包括:第一查找單元,用于查找數(shù)據(jù)庫中是否存在與第一校驗(yàn)字段中第一類校驗(yàn)字段均匹配的第一記錄,其中,第一類校驗(yàn)字段包含所有種類的校驗(yàn)字段;第一校驗(yàn)單元,用于在數(shù)據(jù)庫中存在與第一類校驗(yàn)字段均匹配的第一記錄的情況下,從查找到的第一記錄中繼續(xù)校驗(yàn)第二校驗(yàn)字段,直到第一記錄中存在于第二校驗(yàn)字段匹配的記錄??蛇x地,該校驗(yàn)?zāi)K還包括:第二查找單元,用于在數(shù)據(jù)庫中不存在與第一校驗(yàn)字段中包含種類最多校驗(yàn)字段均匹配的第一記錄的情況下,查找數(shù)據(jù)庫中是否存在與第一校驗(yàn)字段中第二類校驗(yàn)字段均匹配的第二記錄,其中,第二類校驗(yàn)字段相對(duì)于第一校驗(yàn)字段少一類校驗(yàn)字段;第三查找單元,用于在數(shù)據(jù)庫中存在與第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找第二記錄中是否存在與第二類校驗(yàn)字段相對(duì)于第一校驗(yàn)字段缺少的一類校驗(yàn)字段;第二校驗(yàn)單元,用于在第二記錄中存在與第二類校驗(yàn)字段相對(duì)于第一校驗(yàn)字段缺少的一類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)第二校驗(yàn)字段,直到第二記錄中存在于第二校驗(yàn)字段匹配的記錄;第一緩存單元,用于將校驗(yàn)結(jié)果與第一類校驗(yàn)字段以鍵值對(duì)形式緩存。以及,第四查找單元,用于在數(shù)據(jù)庫中不存在與第二類校驗(yàn)字段均匹配的第二記錄的情況下,查找數(shù)據(jù)庫中是否存在與第N校驗(yàn)字段中第N類校驗(yàn)字段均匹配的第N記錄;其中,第N類校驗(yàn)字段相對(duì)于第二校驗(yàn)字段少N減2類校驗(yàn)字段;第五查找單元,用于在數(shù)據(jù)庫中存在與第N類校驗(yàn)字段均匹配的第N記錄的情況下,查找第N記錄中是否存在與第N類校驗(yàn)字段相對(duì)于第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段;第三校驗(yàn)單元,用于在第N記錄中存在與第N類校驗(yàn)字段相對(duì)于第二校驗(yàn)字段缺少的N減2類校驗(yàn)字段的情況下,繼續(xù)校驗(yàn)第二校驗(yàn)字段,直到第N記錄中存在于第二校驗(yàn)字段匹配的記錄;第二緩存單元,用于將校驗(yàn)結(jié)果與第一類校驗(yàn)字段以鍵值對(duì)形式緩存;其中,N為從3開始取值的整數(shù)。需要說明的是,上述各個(gè)模塊是可以通過軟件或硬件來實(shí)現(xiàn)的,對(duì)于后者,可以通過以下方式實(shí)現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述各個(gè)模塊以任意組合的形式分別位于不同的處理器中。實(shí)施例3在本實(shí)施例中采取按信息類型分段校驗(yàn)的方式,以提高校驗(yàn)結(jié)果的復(fù)用度。本實(shí)施例的技術(shù)方案包括:首先,根據(jù)校驗(yàn)所需信息類型對(duì)字段進(jìn)行分類。并從每種信息類型對(duì)應(yīng)的字段中挑選出一部分作為分段校驗(yàn)使用的字段,將剩余的字段作為后續(xù)校驗(yàn)字段。其中,字段被劃分為兩類,分段校驗(yàn)字段和后續(xù)校驗(yàn)字段,而分段校驗(yàn)字段又按所屬信息類型分為四段,即航班信息段、運(yùn)價(jià)信息段、銷售信息段和旅客信息段。分段校驗(yàn)字段可以與四種行程信息類型一一對(duì)應(yīng)起來。由此利用行程信息生成的key,可以與分段校驗(yàn)字段的校驗(yàn)結(jié)果對(duì)應(yīng)起來。用比特串來記錄每條記錄的校驗(yàn)結(jié)果,舉例來說,如果某一規(guī)則有1000條記錄,用長度為1000的比特串來標(biāo)記哪些記錄通過了相應(yīng)字段的校驗(yàn),用1表示通過,用0表示失敗。用鍵值對(duì)的形式存儲(chǔ)這些校驗(yàn)結(jié)果,每一個(gè)key對(duì)應(yīng)一個(gè)比特串,用來表示在所有的記錄中,key所包含字段的校驗(yàn)結(jié)果。其次,將行程信息分為四類,航班信息、運(yùn)價(jià)信息、銷售信息和旅客信息,用這四類信息生成四種key,A類包括(航班信息、運(yùn)價(jià)信息、銷售信息、旅客信息);B類包括(航班信息、銷售信息、旅客信息);C類包括(銷售信息、旅客信息)。根據(jù)這種分類可知A類key校驗(yàn)的字段包括B類的,B類key校驗(yàn)的字段包括C類的,因此可以利用B類key的校驗(yàn)結(jié)果生成A類key的,同理用C類key的校驗(yàn)結(jié)果生成B類key的,這樣遞歸的生成每一類key的校驗(yàn)結(jié)果。通過這種方法,可以復(fù)用包含較少字段key的結(jié)果,提供校驗(yàn)結(jié)果的復(fù)用度。下面結(jié)合附圖在具體應(yīng)用場(chǎng)景中對(duì)本實(shí)施例進(jìn)行說明;如圖2和圖3所示,在運(yùn)價(jià)校驗(yàn)過程中,根據(jù)行程信息,首先構(gòu)造A類型的鍵key1,其代表的含義是對(duì)于當(dāng)前行程,是否已經(jīng)校驗(yàn)過字段A1、A2、B1、C1、C2和C3。使用key1查詢緩存中是否已經(jīng)存在key1對(duì)應(yīng)的比特串,如果找到對(duì)應(yīng)的比特串,說明已經(jīng)校驗(yàn)過上述字段,可以繼續(xù)校驗(yàn)后續(xù)字段。因此遍歷比特串,對(duì)于值為1的記錄繼續(xù)校驗(yàn)這條記錄的后續(xù)校驗(yàn)字段F1、F2和F3,直到找到所有字段都匹配的記錄。如果沒有找到key1對(duì)應(yīng)的比特串,說明還沒有校驗(yàn)過上述6個(gè)字段。減少需要校驗(yàn)的字段,構(gòu)造B類型的鍵key2,使用key2查詢緩存中是否已存在key2對(duì)應(yīng)的比特串,如果找到對(duì)應(yīng)的比特串,說明對(duì)當(dāng)前行程信息已經(jīng)校驗(yàn)過B1、C1、C2和C3字段。遍歷比特串,對(duì)于值為1的記錄,校驗(yàn)其相對(duì)A類型缺少的字段A1和A2,如果校驗(yàn)失敗則將比特串中相應(yīng)值修改為0,如果校驗(yàn)通過則繼續(xù)處理下一條值為1的記錄,直到處理完成所有記錄。至此利用key2的結(jié)果,通過增加校驗(yàn)A1和A2字段,得到了key1的校驗(yàn)結(jié)果,將key1和新得到的比特串,以鍵值對(duì)形式存入緩存中。如果沒有找到key2對(duì)應(yīng)的比特串,則繼續(xù)較少需要校驗(yàn)的字段,構(gòu)造C類型的鍵key3,使用key3查詢緩存中是否已經(jīng)存在key3對(duì)應(yīng)的比特串,如果找到對(duì)應(yīng)的比特串,則遍歷比特串,增加校驗(yàn)字段B1,將得到的新的比特串和key2一起存入緩存。如果沒有找到key3對(duì)應(yīng)的比特串,說明C1、C2和C3都沒有校驗(yàn)過,則建立一個(gè)新的值全部為0的比特串,逐條記錄校驗(yàn)這3個(gè)字段,將校驗(yàn)結(jié)果比特串和C類型的key3一起,以鍵值對(duì)形式存入緩存中。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3