計算即可,但對于復雜的過濾 條件,則需要先對其中每個字段過濾條件計算出結(jié)果,然后再進一步進行邏輯運算,一個復 雜的過濾條件經(jīng)過取值、賦值、運算、再運算后,需要占用大量的時間,且對于復雜的過濾條 件,有些關鍵字段的相同過濾條件會在不同的使用者設定的過濾條件中重復出現(xiàn)多次,因 此關鍵字段過濾條件會出現(xiàn)重復運算的情況,也會占用資源,降低消息過濾的效率,當出現(xiàn) 海量消息實時上報時,則無法完成正常的消息過濾,錯誤率高過濾時間長。
[0070] 本發(fā)明對所有過濾條件按照邏輯關系進行級別劃分,優(yōu)化過濾條件,在此基礎上 根據(jù)各過濾條件的出現(xiàn)頻率進行排序編號,接收到消息后,從最低級別開始進行逐級運算, 高級別的過濾條件基于低級別過濾條件的運算結(jié)果進行運算,保證了最低級別中的各過濾 條件僅運行一次,明顯提高了消息過濾的效率。
[0071] 下面如圖1所示,給出本發(fā)明的實施例一闡述一種消息過濾的方法,如所述方法 包括:
[0072] 步驟S101 :將所有過濾條件按照邏輯關系進行級別劃分。
[0073] 過濾條件為使用者根據(jù)業(yè)務需求設定的,可以是對數(shù)字的比較判定、字符串的比 較判定等。
[0074] 復雜過濾條件的邏輯關系為"與"和"或"
[0075] 將所有過濾條件按照邏輯關系進行級劃分的方法具體為:
[0076] 1、將單個字段的一個過濾條件劃分為零級過濾條件;
[0077] 2、不同字段的所述零級過濾條件以"與"、"或"中任一種邏輯關系組合的劃分為壹 級過濾條件;
[0078] 3、所述各級過濾條件是多個低一級過濾條件以相同的邏輯關系組合而成;
[0079] 4、相鄰兩級所述過濾條件中的邏輯關系相反;
[0080] 5、可根據(jù)實際過濾情況確定過濾條件劃分的級別數(shù)量。
[0081] 所述級別劃分時,參照上述方法進行劃分,遍歷所有過濾條件,遇到一個字段的一 個過濾條件,就記錄為零級過濾條件,遇到不同字段的多個零級過濾條件以"與"(也可以是 "或")組合就記錄為壹級過濾條件,遇到多個壹級過濾條件以"或"(也可以是"與",與相鄰 級別邏輯關系相反)組合就記錄為貳級過濾條件,依次類推。
[0082] 步驟S102 :在各級中根據(jù)所述各過濾條件的出現(xiàn)頻次對所述各過濾條件進行編 號,并按照所述級別和所述編號升序?qū)⒏鬟^濾條件進行存儲。
[0083] 分別對所述各級中的過濾條件按照出現(xiàn)頻次由高到底進行升序編號;
[0084] 對所述各級中出現(xiàn)頻次最高的過濾條件編號為0 ;
[0085] 按照各級中所述過濾條件編號升序,分別存儲各級過濾條件的條件名稱、條件值 和該過濾條件編號。
[0086] 通過對各過濾條件進行計數(shù)獲得各過濾條件的出現(xiàn)頻次,對各級中的各過濾條件 分別進行編號,并分別進行存儲。
[0087] 下面以三級過濾條件存儲為例進行說明。
[0088] 零級過濾條件中出現(xiàn)頻次最高的過濾條件編號為0,其次為1、2、3......,將這些零 級過濾條件按照編號的上升序列進行存儲,分別存儲每個零級過濾條件的條件名稱、條件 值和編號,如下表1所示。
[0089]表1零級過濾條件存儲內(nèi)容[0090]
【主權(quán)項】
1. 一種消息過濾方法,其特征在于,所述方法包括: 將所有過濾條件按照邏輯關系進行級別劃分; 在各級中根據(jù)所述各過濾條件的出現(xiàn)頻次對所述各過濾條件進行編號,并按照所述級 別和所述編號升序?qū)⒏鬟^濾條件進行存儲; 從低級別中的各過濾條件開始對接收的消息進行過濾計算,按照次低級別中的各過濾 條件對所述低級別過濾計算的計算結(jié)果進行過濾計算,按所述各級別中各過濾條件的編號 存儲該過濾條件的計算結(jié)果,依次完成所有級別中所有過濾條件的過濾計算; 依使用者需求按照相應級別過濾條件的過濾計算結(jié)果過濾消息。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所有過濾條件按照邏輯關系進行 級劃分的方法具體為: 將單個字段的一個過濾條件劃分為零級過濾條件; 不同字段的所述零級過濾條件以"與"、"或"中任一種邏輯關系組合的劃分為壹級過濾 條件; 所述各級過濾條件是多個低一級過濾條件以相同的邏輯關系組合而成; 相鄰兩級所述過濾條件中的邏輯關系相反; 可根據(jù)實際過濾情況確定過濾條件劃分的級別數(shù)量。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,將所有過濾條件按照邏輯關系劃分為四 級: 零級過濾條件為將單個字段的一個過濾條件劃分的Sub_condition子條件; 壹級過濾條件為多個不同字段的Sub_condition子條件相"與"組合成的Condition條 件; 威級過濾條件為多個Condition條件相"或"組合成的Filter過濾器; 叁級過濾條件為多個Filter過濾器相"與"組合成的Rule過濾規(guī)則。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在各級中根據(jù)所述各過濾條件的出 現(xiàn)頻次對所述各過濾條件進行編號的方法具體為: 分別對所述各級中的過濾條件按照出現(xiàn)頻次由高到底進行升序編號; 對所述各級中出現(xiàn)頻次最高的過濾條件編號為0。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述按照所述級和所述編號升序?qū)⒏鬟^ 濾條件進行存儲的方法為: 按照各級中所述過濾條件編號升序,分別存儲各級過濾條件的條件名稱、條件值和該 過濾條件編號。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述從低級別中的各過濾條件開始對接 收的消息進行過濾計算,按照次低級別中的各過濾條件對所述低級別過濾計算的計算結(jié)果 進行過濾計算的方法具體為: 將所述消息中字段的值代入包含所述字段的所述低級別過濾條件中,對所述代入值的 低級別過濾條件進行邏輯計算,獲得低級別過濾計算結(jié)果; 將所述低級別過濾計算結(jié)果代入所述次低級別中的各過濾條件,按照所述次低級別中 各過濾條件描述的邏輯關系進行邏輯計算。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述按各級別中各過濾條件的編號存儲 該過濾條件的計算結(jié)果的方法具體為: 為所述各級別過濾條件創(chuàng)建結(jié)果數(shù)組; 依照所述各級別結(jié)果數(shù)組下標與所述各級別中各過濾條件編號相同的原則,將該過濾 條件的計算結(jié)果存儲至該級別結(jié)果數(shù)組中的相應位置。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述將所述低級別過濾計算結(jié)果代入所 述次低級別中的各過濾條件,按照所述次低級別中各過濾條件描述的邏輯關系進行邏輯計 算的方法為: 根據(jù)所述次低級別過濾條件,獲取該次低級別過濾條件中所包含的低級別過濾條件, 將所述獲取的低級別過濾條件的計算結(jié)果代入所述次低級別過濾條件中; 按照所述次低級別過濾條件描述的各低級別過濾條件邏輯關系,對所述代入的低級別 過濾條件結(jié)果進行邏輯計算。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括: 為所述各過濾條件賦予過濾條件ID ; 根據(jù)消息過濾使用者發(fā)送的過濾條件ID,根據(jù)所述該過濾條件的過濾計算結(jié)果過濾消 肩、。
10. -種消息過濾裝置,其特征在于,所述裝置包括: 級別劃分單元,用于將所有過濾條件按照邏輯關系進行級別劃分; 編號單元,用于在所述級別劃分單元劃分的各級中根據(jù)所述各過濾條件的出現(xiàn)頻次對 所述各過濾條件進行編號; 過濾計算單元,用于從低級別中的各過濾條件開始對接收的消息進行過濾計算,按照 次低級別中的各過濾條件對所述低級別過濾計算的計算結(jié)果進行過濾計算,將各級的過濾 計算結(jié)果發(fā)送給存儲單元; 存儲單元,用于按照所述級別劃分單元劃分的級別和所述編號單元編號的升序?qū)⒏鬟^ 濾條件進行存儲,并按各級別中各過濾條件的編號存儲該過濾條件的計算結(jié)果; 消息過濾單元,用于根據(jù)所述過濾計算單元計算的最高級別過濾條件的過濾計算結(jié)果 過濾消息。
11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述級別劃分單元根據(jù)如下方法進行 過濾條件的級別劃分: 將單個字段的一個過濾條件劃分為零級過濾條件; 不同字段的所述零級過濾條件以"與"、"或"中任一種邏輯關系組合的劃分為壹級過濾 條件; 各級所述過濾條件是多個低一級過濾條件以相同的邏輯關系組合而成; 相鄰兩級所述過濾條件中的邏輯關系相反; 可根據(jù)實際過濾情況確定過濾條件劃分的級別數(shù)量。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述編號單元進一步包括: 頻次統(tǒng)計模塊,用于統(tǒng)計各級別中每個過濾條件的出現(xiàn)頻次; 編號模塊,用于根據(jù)所述頻次統(tǒng)計模塊統(tǒng)計的各級別中每個過濾條件的出現(xiàn)頻次,按 照所述出現(xiàn)頻次由高到低分別對各級別中的過濾條件進行編號,對所述各級中出現(xiàn)頻次最 高的過濾條件編號為0。
13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述存儲單元進一步包括: 過濾條件存儲模塊,用于按照編號模塊對各級中所述過濾條件的編號升序,分別存儲 每級過濾條件的條件名稱、條件值和該過濾條件編號; 結(jié)果數(shù)組,用于依照所述各級別結(jié)果數(shù)組下標與所述各級別中各過濾條件編號相同的 原則,將所述過濾計算單元計算的該過濾條件的計算結(jié)果存儲至該級別結(jié)果數(shù)組中的相應 位置。
14. 根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述過濾計算單元進一步包括: 值代入模塊,用于將所述接收消息的字段值或低級別過濾條件的計算結(jié)果代入所述過 濾條件存儲模塊中的各級別過濾條件中; 計算模塊,用于根據(jù)所述代入的各級別過濾條件描述的邏輯關系,對所述值代入模塊 代入的字段值或低級別過濾條件的計算結(jié)果進行邏輯計算; 結(jié)果發(fā)送模塊,用于將所述計算模塊計算的邏輯計算結(jié)果發(fā)送給所述結(jié)果數(shù)組。
15. 根據(jù)權(quán)利要求14所述的裝置,其特征在于: 所述過濾條件存儲模塊存儲為所述各過濾條件賦予過濾條件ID ; 所述結(jié)果發(fā)送模塊根據(jù)消息過濾使用者發(fā)送的過濾條件ID,根據(jù)所述該過濾條件的過 濾計算結(jié)果過濾消息后發(fā)送給消息過濾使用者。
【專利摘要】本發(fā)明公開一種消息過濾方法,包括將所有過濾條件按照邏輯關系進行級別劃分;在各級中根據(jù)所述各過濾條件的出現(xiàn)頻次對所述各過濾條件進行編號,并按照所述級別和所述編號升序?qū)⒏鬟^濾條件進行存儲;從低級別中的各過濾條件開始對接收的消息進行過濾計算,按照次低級別中的各過濾條件對所述低級別過濾計算的計算結(jié)果進行過濾計算,按所述各級別中各過濾條件的編號存儲該過濾條件的計算結(jié)果,依次完成所有級別中所有過濾條件的過濾計算;依使用者需求按照相應級別過濾條件的過濾計算結(jié)果過濾消息。使用本發(fā)明可實現(xiàn)對海量消息的高效過濾,本發(fā)明還提供一種消息過濾裝置。
【IPC分類】G06F17-30, H04L12-24
【公開號】CN104750724
【申請?zhí)枴緾N201310744152
【發(fā)明人】張彥文, 陳曉峰
【申請人】億陽信通股份有限公司
【公開日】2015年7月1日
【申請日】2013年12月30日