本公開的實施例總體上涉及數(shù)據(jù)搜索領(lǐng)域,并且具體地,涉及一種處理待搜索對象的方法及裝置。
背景技術(shù):
如今對數(shù)據(jù)搜索的應(yīng)用日益增多,搜索服務(wù)系統(tǒng)一直致力于為最終用戶提供更好的檢索體驗,改善在海量數(shù)據(jù)中的檢索結(jié)果的準(zhǔn)確性、豐富性,同時提高檢索響應(yīng)時間。為此如何對搜索資源進行合理的配置、存儲和索引即成為很重要的考慮因素,以便于搜索服務(wù)系統(tǒng)基于搜索請求進行快速、準(zhǔn)確檢索,提高搜索服務(wù)系統(tǒng)的穩(wěn)健性及服務(wù)質(zhì)量。在為搜索對象創(chuàng)建索引的傳統(tǒng)技術(shù)中,索引創(chuàng)建過程通常耗時、低效。而且,基于所創(chuàng)建的索引來搜索對象的過程同樣可能是低效的,從而導(dǎo)致較長的系統(tǒng)響應(yīng)時間。這直接降低了用戶體驗。
技術(shù)實現(xiàn)要素:
總體上,本公開的實施例通過靈活的分類策略提供一種處理待搜索對象的解決方案。
根據(jù)本公開的第一方面,提供一種用于處理待搜索的對象的方法,包括:接收指示與對象有關(guān)的約束的第一輸入;接收指示對象所屬的類別的第二輸入;以及基于第一輸入和第二輸入,創(chuàng)建將約束與類別相關(guān)聯(lián)的分類條件以作為分類策略的一部分,該分類策略用于將對象劃分到類別以建立索引。
在某些實施例中,約束涉及對象的元數(shù)據(jù),元數(shù)據(jù)描述對象的屬性。
在某些實施例中,約束涉及以下至少一項:元數(shù)據(jù)的范圍、元數(shù)據(jù)的表達式。
在某些實施例中,元數(shù)據(jù)的表達式包括以下至少一項:描述元數(shù)據(jù)的位置的結(jié)構(gòu)化語句,以及描述涉及元數(shù)據(jù)的查詢的結(jié)構(gòu)化語句。
在某些實施例中,約束涉及所述類別的屬性。
在某些實施例中,類別的屬性包括以下至少一個:類別中包含的對象的數(shù)目;以及類別中包含的對象占用的存儲空間的大小。
在某些實施例中,該方法進一步包括:接收修改分類條件的第三輸入;以及響應(yīng)于接收到第三輸入,修改分類條件。
根據(jù)本公開的第二方面,提供一種用于為待搜索的對象建立索引的方法,包括:接收到待搜索的對象;獲取包括一組分類條件的分類策略,分類條件將一組約束與相應(yīng)的類別相關(guān)聯(lián);以及通過匹配分類策略中的分類條件中的約束,將對象劃分到類別中的一個類別,以用于建立搜索索引。
在某些實施例中,其中約束涉及對象的元數(shù)據(jù),元數(shù)據(jù)描述對象的屬性,并且將對象劃分到一個類別包括:獲取對象的元數(shù)據(jù);通過將元數(shù)據(jù)與分類條件中的約束進行匹配,將對象劃分到類別。。
在某些實施例中,其中約束涉及類別的屬性,該方法進一步包括:確定類別中目前包含的對象的數(shù)目;以及將對象劃分到類別中包含對象的數(shù)目小于預(yù)定閾值的類別。在某些實施例中,其中約束涉及類別的屬性,該方法進一步包括:確定類別中目前包含的對象占用的存儲空間的大??;以及將對象劃分到類別中包含對象占用的存儲空間的大小小于預(yù)定閾值的類別。
根據(jù)本公開的第三方面,提供一種用于處理待搜索的對象的設(shè)備,包括:至少一個處理器,被配置為:接收指示與對象有關(guān)的約束的第一輸入;接收指示對象所屬的類別的第二輸入;以及基于第一輸入和第二輸入,創(chuàng)建將約束與類別相關(guān)聯(lián)的分類條件以作為分類策略的一部分,該分類策略用于將對象劃分到類別以建立索引。
根據(jù)本公開的第四方面,提供一種用于為待搜索的對象建立索引的設(shè)備,包括:至少一個處理器,被配置為:接收到待搜索的對象;獲取包括一組分類條件的分類策略,分類條件將一組約束與相應(yīng)的類別相關(guān)聯(lián);以及通過匹配分類策略中的分類條件中的約束,將對象劃分到類別中的一個類別,以用于建立搜索索引。。
本公開的實施例能夠?qū)崿F(xiàn)基于策略的對象分類機制,管理用戶將通過改變一些配置項容易地、靈活地實現(xiàn)所期望的分類,以提高搜索系統(tǒng)對最終用戶的服務(wù)質(zhì)量。
附圖說明
結(jié)合附圖并參考以下詳細(xì)說明,本公開各實施例的上述和其他特征、優(yōu)點及方面將變得更加明顯。在附圖中,相同或相似的附圖標(biāo)記表示相同或相似的元素,其中:
圖1圖示了本公開的實施例的可應(yīng)用于其中的搜索處理系統(tǒng)的部分示意;
圖2示出了根據(jù)本公開的實施例的用于處理待搜索的對象的方法的流程圖;
圖3示出了根據(jù)本公開的實施例的為待搜索對象建立索引的方法的流程圖;
圖4示出了根據(jù)本公開的一個實施例的為待搜索對象建立索引的方法的流程圖;以及
圖5圖示了根據(jù)本公開的實施例的對象分類裝置示意圖。
具體實施方式
現(xiàn)將結(jié)合附圖對本公開的實施例進行具體的描述。應(yīng)當(dāng)注意的是,附圖中對相似的部件或者功能組件可能使用同樣的數(shù)字標(biāo)示。所附附圖僅僅旨在說明本公開的實施例。本領(lǐng)域的技術(shù)人員可以在不偏離本公開精神和保護范圍的基礎(chǔ)上從下述描述得到替代的實施方式。
如本文中所述,術(shù)語“包括”及其各種變體可以被理解為開放式術(shù)語,其意味著“包括但不限于”。術(shù)語“基于”可以被理解為“至少部分地基于”。術(shù)語“一個實施例”可以被理解為“至少一個實施例”。術(shù)語“另一實施例”可以被理解為“至少一個其它實施例”。
在一些搜索應(yīng)用中,尤其在一些企業(yè)搜索系統(tǒng)中,一方面由于對于安全性的考慮,只有那些用戶具有足夠的安全權(quán)限的搜索結(jié)果能被返回。另一方面,為了更好的可查找性,通常用戶以層級文件夾結(jié)構(gòu)組織文件,并且數(shù)據(jù)文件具有非常小的交叉鏈接性。這些因素都降低了搜索響應(yīng)的速度。為了解決這一問題,本公開的實施例提供一種靈活的基于策略的劃分方案,以幫助管理用戶控制劃分行為。有了這些創(chuàng)建的劃分策略,可以將包含這些配置項的配置文件提供給管理用戶,管理用戶將通過改變一些配置項容易地實現(xiàn)他們所期望的劃分??梢岳斫?,本公開的基于策略的對象分類方案并不限于搜索系統(tǒng)的類型,在任何合適的應(yīng)用場景中均可得到應(yīng)用
圖1示出了本公開的實施例的可應(yīng)用于其中的搜索處理系統(tǒng)100的部分示意。通常,搜索處理系統(tǒng)100將海量數(shù)據(jù)進行處理,以為最終用戶提供按需的檢索服務(wù)。在某些實施例中,搜索處理系統(tǒng)100例如可以基于企業(yè)搜索應(yīng)用場景而建立,用于在企業(yè)內(nèi)搜索內(nèi)部資源以滿足各種數(shù)據(jù)利用需求。
如圖所示,搜索處理系統(tǒng)100包括數(shù)據(jù)預(yù)處理裝置102、信息庫104、對象分類裝置106、對象索引裝置108、索引庫110以及檢索處理裝置112。可以理解,這里僅是為了說明性而給出搜索處理系統(tǒng)100的示例。
數(shù)據(jù)預(yù)處理裝置102可以例如采集各種數(shù)據(jù)源,數(shù)據(jù)源可以包括網(wǎng)絡(luò)、文檔庫、郵件庫以及包含需要檢索的內(nèi)容的任何其他主體。這些數(shù)據(jù)源為搜索處理系統(tǒng)100提供可檢索的數(shù)據(jù)。這些數(shù)據(jù)例如常見的網(wǎng)頁,還可以包括各種文件格式的文檔,諸如企業(yè)內(nèi)部文檔(例如技術(shù)文件、數(shù)據(jù)文件、電子郵件、日程表等)等等。
在本公開中將這些數(shù)據(jù)稱之為作為典型的資源類型的“文件”。 數(shù)據(jù)預(yù)處理裝置102對這些文件進行分析處理,使用結(jié)構(gòu)化方法來標(biāo)記文件,并生成相應(yīng)的格式統(tǒng)一的對象形式,以提供給對象分類裝置106處理。作為示例,可擴展標(biāo)記語言(extensivemarkuplanguage,xml)和javascript對象表示法(javascriptobjectnotation,json)等都是常用的對象表示方式,易于機器解析和處理,數(shù)據(jù)預(yù)處理裝置102可以將文件以此種格式進行表示。為了討論方便,下文中將每個文件經(jīng)過數(shù)據(jù)預(yù)處理裝置102所生成的格式統(tǒng)一的對象形式也稱之為“文件對象”或者簡稱為“對象”。
可以理解,作為原始數(shù)據(jù)的文件與數(shù)據(jù)預(yù)處理裝置102所生成的文件對象具有相互對應(yīng)關(guān)系,該文件對象是對文件的對象表示。作為示例,xml或json形式的文件對象可以包括相對應(yīng)文件的元數(shù)據(jù),其描述文件相關(guān)信息,包括例如描述性元素、技術(shù)性元素、管理性元素、結(jié)構(gòu)性元素等,這些元素例如作者、標(biāo)題、主題、位置等簡單信息,還可以包括內(nèi)容、載體、位置與獲取方式、制作與利用方法等,還可以包括文件的存儲和使用管理相關(guān)信息,例如存儲/更新時間、容量大小、詳細(xì)的格式信息、制作信息、保護條件、轉(zhuǎn)換方式、權(quán)利管理、電子簽名等等,用來支持如指示存儲位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能,幫助檢索和確認(rèn)所需要的文件資源。這些元數(shù)據(jù)可由數(shù)據(jù)預(yù)處理裝置102自動生成,也可由管理用戶添加,并最終形成統(tǒng)一格式的對象表示文件。
信息庫104可以存儲文件以及經(jīng)過數(shù)據(jù)與處理裝置102處理的具有統(tǒng)一格式表示的文件對象。對象分類裝置106將來自信息庫104的待搜索的對象劃分到不同的類別中,使得這些待檢索的內(nèi)容被切分為多個更小的處理集合(即類別)。也就是說,對象分類裝置106實現(xiàn)了將對象歸入不同類別的“路由”的功能。此后,通過按照類別來為對象建立索引,可以使檢索更有效、響應(yīng)更快。而且,通過對不同類別中的數(shù)據(jù)進行隔離,有助于容錯處理。例如當(dāng)部分?jǐn)?shù)據(jù)發(fā)生意料之外的問題(例如崩潰修復(fù)或重建)時減小影響。
對象索引裝置108根據(jù)配置對每個類別的對象進行例如組詞、 語義分析等處理,建立索引并將索引數(shù)據(jù)存儲到索引庫110中。檢索處理裝置112響應(yīng)于最終用戶的檢索請求,查詢索引庫110和信息庫104進行檢索處理,可能的,其還對索引的對象進行其他智能處理。
可以理解,搜索處理系統(tǒng)100中的數(shù)據(jù)預(yù)處理裝置102、對象分類裝置106、對象索引裝置108以及檢索處理裝置112均可實現(xiàn)為獨立的裝置,也可以組合為一個或多個裝置。另外,搜索處理系統(tǒng)100中的信息庫104和索引庫110同樣僅是示例,其可以為獨立的數(shù)據(jù)庫,也可以組合為一個數(shù)據(jù)庫,或者可選地與搜索處理系統(tǒng)100中的其他數(shù)據(jù)庫進行合并等??梢岳斫?,搜索處理系統(tǒng)100對原始數(shù)據(jù)文件進行各種處理將形成多種不同的形式的“文件”,它們在信息庫104和索引庫110或者其他數(shù)據(jù)庫中存在不同“版本”,但都由相應(yīng)的映射關(guān)系對應(yīng)于原始數(shù)據(jù)文件。
圖2示出了根據(jù)本公開的實施例的用于處理待搜索的對象的方法200的流程圖。首先,在步驟202,接收指示與待搜索的對象有關(guān)的約束的輸入(稱為“第一輸入”)。在某些實施例中,與待搜索的對象有關(guān)的約束可以包括與單個對象的屬性相關(guān)的約束,例如這些屬性為對象的元數(shù)據(jù)所描述的屬性。備選地或附加地,約束可以涉及從搜索處理系統(tǒng)100角度而言與所有對象的類別相關(guān)的約束,例如每個類別中的對象數(shù)目,等等。
在步驟204,接收指示對象所屬的類別的輸入(稱為“第二輸入”),確定期望該對象被劃分到的類別。也就是說,第二輸入指示了當(dāng)對象滿足第一輸入所指定的約束時,應(yīng)當(dāng)被劃分或者說路由到哪個類別中。
接下來,在步驟206,基于第一輸入和第二輸入,創(chuàng)建將約束與類別相關(guān)聯(lián)的分類條件。這個分類條件可以被保存為用于對象分類的分類策略的一部分。這樣的分類策略可以隨后被用來將實際待處理的對象劃分到相應(yīng)的類別中,以便基于類別為待搜索對象建立索引。
在本公開的實施例中,分類策略以及其中的分類條件可以被存儲為配置文件,例如xml文件。這些xml文件可以被用作配置文件。應(yīng)當(dāng)理解,這僅僅是示例性的,對象分類策略可以被保存為任何其他形式的文件,例如json文件,等等。下面的表1示出了一個xlm文件形式的分類策略的一部分。
表1
在表1的示例中,包括一個分類條件及缺省類別,該分類條件將約束(即condition="")與類別(即collection="")相關(guān)聯(lián)。在該示例中,約束與待搜索的對象的屬性有關(guān)。另外配置了一個缺省分類(這里是default),在對象不滿足分類條件時,對象將被劃分到該缺省類別中。
為了便于理解圖2中所示的方法200,下面將描述若干示例??梢岳斫?,以下描述僅作為示例給出,本領(lǐng)域技術(shù)人員通過閱讀可以得到本公開的構(gòu)思,但本公開并不限于所給出的示例分類條件。
如以上所描述,對象的元數(shù)據(jù)可以是描述性元素、技術(shù)性元素、管理性元素、結(jié)構(gòu)性元素等。在本公開的一個實施例中,與待搜索的對象有關(guān)的約束涉及對象的元數(shù)據(jù),表2給出了一個這樣的示例。
表2
表2的示例包括與元數(shù)據(jù)“file_store”有關(guān)的兩個分類條件。具體而言,一個分類條件規(guī)定:如果對象的元數(shù)據(jù)“file_store”滿足condition="file_store_01"這一約束,就將該對象劃分到“collection1”這一類別中。為了創(chuàng)建該分類條件,根據(jù)方法200,用戶可以在步驟202和204分別輸入約束“file_store_01”和類別“collection1”,以便在步驟206創(chuàng)建分類條件<rulecondition="file_store_01"collection="collection1"/>。類似地,用戶可以通過方法200創(chuàng)建另一分類條件,其規(guī)定:如果對象的“file_store”等于“field_store_02”,則對象將被劃分到“collection2”。特別地,在上述示例中,如果到來的對象的元數(shù)據(jù)值不匹配這兩個分類條件,該對象將被劃分到缺省集合(這里是“default”)。
對象分類裝置106在對對象劃分時的值的比較可以是大小寫敏感的,為了更方便管理用戶配置,還可以在一個約束中使用分隔符來配置多個約束。表3示出了一個這樣的示例。
表3
表3的示例中,在其中的一個分類條件中采用了分隔符,可以將例如對象的元數(shù)據(jù)的大小寫組合項合并在一個分類條件中。具體而言,“file_store_01”和“file_store_02”可以是對應(yīng)于元數(shù)據(jù)值的不同大小寫組合,如果對象的“file_store”等于“file_store_01”或者“file_store_02”,則對象將被劃分到“collection1”。
在另一個示例中,與待搜索的對象有關(guān)的約束涉及元數(shù)據(jù)的范圍。例如,如果管理用戶希望根據(jù)對象的內(nèi)容大小來劃分對象,那么可以如以下配置。
表4
表4的示例包括與元數(shù)據(jù)“r_content_size”有關(guān)的兩個分類條件,并且規(guī)定了元數(shù)據(jù)值類型為整數(shù)(integer)以及值范圍分隔符的形式。具體而言,一個分類條件規(guī)定:如果對象的元數(shù)據(jù)“r_content_size”滿足condition="40000~80000"這一約束,即對象的內(nèi)容大小處于40000~80000之間時,就將該對象劃分到“collection1”這一類別中。為了創(chuàng)建該分類條件,根據(jù)方法200,用戶可以在步驟202和204分別輸入約束“40000~80000”和類別“collection1”,以便在步驟206創(chuàng)建分類條件<rulecondition="40000~80000""collection="collection1""/>。類似地,用戶可以通過方法200創(chuàng)建另一分類條件,其規(guī)定:如果對象的“r_content_size”處于80000~100000之間,則對象將被劃分到“collection2”。同樣,對未被分類條件覆蓋的對象,缺省類別(這里是“default”)將被使用。
在分類條件的約束涉及元數(shù)據(jù)的范圍時,配置的分類條件可以是包容性的,即如果一個對象可以滿足兩個分類條件,那么將使用第一分類條件。比如在示例中,如果一個對象的內(nèi)容大小是8000,那么它將被劃分到“collection1”。
通常配置中字符串是值對比的缺省類型。如果管理用戶希望定義非字符串類型,可以在屬性部分規(guī)定值類型(value-type),例如整數(shù)(integer)、雙字節(jié)(double)、時間(datetime)等。對于時間,可以統(tǒng)一為utc時間("yyyy-mm-dd't'hh:mm:ss")。如果形成的文件對象的元數(shù)據(jù)沒有被正確地使用數(shù)據(jù)格式,比如將字符串放入整數(shù)類型,值對比將退回到使用字符串比較以確定分類。
如果管理用戶對元數(shù)據(jù)有某些特殊需求,可以考慮使用元數(shù)據(jù)的常規(guī)表達式來規(guī)定分類的約束。以下是一個示例。
表5
表5的示例包括與元數(shù)據(jù)“object_name”有關(guān)的兩個分類條件。具體而言,一個分類條件規(guī)定:如果對象的元數(shù)據(jù)“object_name”滿足condition="per."這一約束,即“object_name”以“per”開始,就將該對象劃分到“collection1”這一類別中。為了創(chuàng)建該分類條件,根據(jù)方法200,用戶可以在步驟202和204分別輸入約束“per.”和類別“collection1”,以便在步驟206創(chuàng)建分類條件<rulecondition="per."collection="collection1"/>。類似地,用戶可以通過方法200創(chuàng)建另一分類條件,其規(guī)定:如果對象的“object_name”以“ber”開始,則對象將被劃分到“collection2”。特別地,在上述示例中,如果到來的對象的元數(shù)據(jù)值不匹配這兩個分類條件,該對象將被劃分到缺省集合(這里是“default”)。可以理解,表5僅是給出使用常規(guī)表達式的一個示例,在諸如該示例的使用元數(shù)據(jù)的常規(guī)表達式來規(guī)定分類的約束中,可以通過模糊而非精確的分類匹配而將對象分類,以滿足管理用戶的需要。
對于一些復(fù)雜的情形,例如管理用戶希望根據(jù)多個路徑路由對象,可以使用描述對象元數(shù)據(jù)的位置的結(jié)構(gòu)化語句。這種結(jié)構(gòu)化語句的一個例子是xpath。xpath是w3c標(biāo)準(zhǔn),下面將以其為例來描述一個示例實施例。以下是配置示例。
表6
表6的示例包括與元數(shù)據(jù)“i_folder_id”和“owner_name”有關(guān)的兩個分類條件。具體而言,一個分類條件規(guī)定:xml文件根元素“/dmftdoc”下所有子元素“i_folder_id”中,滿足與“345678”相等這一約束的對象均劃分到“collection1”這一類別中。為了創(chuàng)建該分類條件,根據(jù)方法200,用戶可以在步驟202和204分別輸入約束“boolean(/dmftdoc//i_folder_id='3456789')”和類別“collection1”,以便在步驟206創(chuàng)建分類條件<rulecondition="boolean(/dmftdoc//i_folder_id='3456789')"collection="collection1"/>。類似地,用戶可以通過方法200創(chuàng)建另一分類條件,其規(guī)定:xml文件根元素“/dmftdoc”下所有子元素“i_folder_id”和“owner_name”中,如果對象的“i_folder_id”等于456789并且其“owner_name”等于“test”,則對象將被劃分到“collection2”。特別地,在上述示例中,如果到來的對象的元數(shù)據(jù)值不匹配這兩個分類條件,該對象將被劃分到缺省集合(這里是“default”)。可以通過構(gòu)造xpath配置復(fù)雜的分類條件,例如按照xpath規(guī)范基于多個元數(shù)據(jù)來劃分類別。
備選地或附加地,可以使用描述涉及對象元數(shù)據(jù)的查詢的結(jié)構(gòu)化語句來劃分對象。這種結(jié)構(gòu)化語句的一個示例是xquery。xquery也是w3c標(biāo)準(zhǔn),可以被用于執(zhí)行強大的查詢。以下是根據(jù)xquery的劃分對象的配置示例。
表7
表7的示例包括與元數(shù)據(jù)“object_name”和“key_words”有關(guān)的兩個分類條件。具體而言,一個分類條件規(guī)定:xml文檔根元素“/dmftdoc”下,如果對象滿足“object_name”包含“test1234”這一約束,就將該對象劃分到“collection1”這一類別中。為了創(chuàng)建該分類條件,根據(jù)方法200,用戶可以在步驟202和204分別輸入約束“boolean(/dmftdoc[dmftmetadata//object_namecontainstext‘test1234’])"和類別“collection1”,以便在步驟206創(chuàng)建分類條件<rulecondition="boolean(/dmftdoc[dmftmetadata//object_namecontainstext‘test1234’])"collection="collection1"/>。類似地,用戶可以通過方法200創(chuàng)建另一分類條件,其規(guī)定:xml文檔根元素“/dmftdoc”下,如果對象“object_name”包含“test3456”以及“key_words”包含“testing”,則對象將被劃分到“collection2”。特別地,在上述示例中,如果到來的對象的元數(shù)據(jù)值不匹配這兩個分類條件,該對象將被劃分到缺省集合(這里是“default”)。
按照以上分類策略進行劃分,在帶來高效的同時,也帶來了管理上的成本。按照以上分類策略,會導(dǎo)致各個類別的大小不平均,而對應(yīng)的劃分過程,也會帶來各個類別的訪問量不平均。這兩個維度不平均就要求更加復(fù)雜的索引部署方案,因此還可以基于類別的動態(tài)統(tǒng)計來確定分類策略。例如分類條件可以涉及類別的屬性,如 類別中包含的對象的數(shù)目或者類別中包含的對象占用的存儲空間的大小。
為此,除了對象元數(shù)據(jù)之外或者作為替代,在對象分類中,與類別有關(guān)的信息也可以被納入考慮。作為示例,在一個實施例中,在為對象分類時,可以保持每個類別具有相同或者近似的對象數(shù)目。備選地或附加地,在一些實施例中,可以在對象分類時使每個類別的具有近似的存儲大小。配置示例如下:
表8
表8的示例中,上述兩個分類條件都被配置(即值都為“true”),這時將使用第一分類條件(“weight-collection-size”)即保持每個類別具有近似的對象數(shù)目。當(dāng)然,可以僅配置其中之一。
如果上述分類策略不能滿足管理用戶的需求,那么管理用戶可以配置自定義的劃分。以下是一個實現(xiàn)和配置示例。
表9
表9的示例中,自定義了類“myroutingexample”,規(guī)定了分類涉及的對有關(guān)的屬性并規(guī)定了兩個分類條件。作為示例,“my_field”包含“test12345”的文件將被劃分到“collection1”,包含“test3456”的文件將被劃分到“collection2”。還可以簡單地將“contains”變?yōu)椤皊tartswith”或“endswith”等改變操作符等。這種情況下應(yīng)該實現(xiàn)類myroutingexample以支持所期望的邏輯并將上述配置放入例如對象分類裝置106中以保證按照所期望的分類劃分進行工作。
通過以上示例示出了本公開的幾種分類策略。管理用戶只需要設(shè)置配置項即可。這種設(shè)置可以手動進行,也可以根據(jù)提供的用戶輸入界面進行。顯然的,分類策略的配置是需要根據(jù)應(yīng)用場景縝密考慮的,例如對于分類策略中約束的選取、分類條件的先后順序等,這將直接影響到分類和檢索效果。
完成配置之后,分類策略例如可以保存為配置文件。對象分類裝置106可以對對象進行劃分操作。圖3示出了根據(jù)本公開實施例的為待搜索對象建立索引的方法300的流程圖。在步驟302,接收到待搜索的對象。這些對象可以具有統(tǒng)一格式例如xml的包含元數(shù)據(jù)的文件,其存儲在信息庫104中。然后,在步驟304,獲取包括一組分類條件的分類策略,分類條件將一組約束與相應(yīng)的類別相關(guān)聯(lián)。如上所描述,可以按照方法200根據(jù)業(yè)務(wù)需要,按照所期望的對象分類或路由目標(biāo),建立分類策略。在一個如上述的實施例中,分類策略形成xml配置文件,對象分類裝置106可以獲取包含分類策略的配置文件。在步驟306,通過匹配分類策略中的分類條件中的約束,將對象劃分到類別中的一個類別,以用于建立搜索索引。對于待搜索的對象,根據(jù)分類條件,逐一劃分到相應(yīng)的類別,以便對象索引裝置108對其進行進一步的處理和建立索引。以下結(jié)合圖4進一步 進行說明。
圖4示出了根據(jù)本公開的一個實施例的為待搜索對象建立索引的方法的流程圖。在步驟401,接收到待搜索的對象,之后例如對象分類裝置106在步驟402獲得如以上所描述建立的分類策略并進行解析分類策略也即匹配分類策略中的分類條件中的約束。如果約束涉及對象的元數(shù)據(jù),則進行到步驟403,獲取對象的元數(shù)據(jù)。對象的元數(shù)據(jù)存在于對象的元數(shù)據(jù)文件(即文件對象)中,例如如上所述的存儲在信息庫104中xml文件中,因此對象分類裝置106可以從信息庫104中獲得對象的元數(shù)據(jù)。然后,在步驟404,基于配置的分類策略,將對象的元數(shù)據(jù)與分類條件中的約束進行匹配,并且響應(yīng)于匹配結(jié)果,將對象劃分到分類策略中配置的類別中。基于對象的分類類別,對象索引裝置108可以為對象建立搜索索引。
如果分類策略中涉及劃分的類別的屬性,例如如上所描述的一個示例中,"weight-collection-size"對應(yīng)的值配置為"true",也即分類條件涉及類別中包含的對象的數(shù)目,則進行到步驟405。在步驟405中,統(tǒng)計并確定類別中目前包含的對象的數(shù)目,以根據(jù)類別的“承載”對象數(shù)量情況進行對象的劃分或路由,進而平衡類別中對象的多少,以簡化對象索引部署及提升檢索效率。隨后在步驟406,可以根據(jù)類別中包含對象數(shù)目的預(yù)定閾值來進行對象的劃分或路由,其中一種方式可以是基于最少原則,也即當(dāng)前類別中對象數(shù)目最少的類別為對象劃分的目標(biāo)類別。替選地,可以預(yù)定類別中包括對象數(shù)目的閾值,對于小于該閾值的類別,基于合適的甚至隨機的方式將到來的對象劃分或路由到這些類別中?;趯ο蟮姆诸愵悇e,對象索引裝置108可以為對象建立搜索索引。
另一方面,如果分類策略中涉及劃分的類別的屬性,例如如上所描述的一個示例中,"weight-storage-size"對應(yīng)的值配置為"true",也即分類條件涉及類別中包含的對象占用的存儲空間的大小,則進行到步驟407。在步驟407中,統(tǒng)計并確定類別中目前包含的對象占用的存儲空間的大小,以根據(jù)類別的“承載”存儲大小情況進行對 象的劃分或路由,進而平衡類別中存儲空間的多少,以簡化對象索引部署及提升檢索效率。隨后在步驟408,可以根據(jù)類別中包含對象占用的存儲空間的大小的預(yù)定閾值來進行對象的劃分或路由,其中一種方式可以是基于最小原則,也即當(dāng)前類別中對象占用的存儲空間的大小最小的類別為對象劃分的目標(biāo)類別。替選地,可以預(yù)定類別中包括對象占用的存儲空間的大小的閾值,對于小于該閾值的類別,基于合適的甚至隨機的方式將到來的對象劃分或路由到這些類別中?;趯ο蟮姆诸愵悇e,對象索引裝置108可以為對象建立搜索索引。
上述方法200、300和400可以由對象分類裝置106來實施,可選地,至少一部分可被實現(xiàn)為軟件模塊。圖5示出了一個可以用來實施本公開的實施例的設(shè)備500的示意性框圖。設(shè)備500可以充當(dāng)用于一種對象分類設(shè)備例如包括上文描述的對象分類裝置106。
如圖所示,設(shè)備500包括中央處理單元(cpu)501,其可以根據(jù)存儲在只讀存儲器(rom)502中的計算機程序指令或者從存儲單元708加載到隨機訪問存儲器(ram)503中的計算機程序指令,來執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚怼T趓am503中,還可存儲設(shè)備500操作所需的各種程序和數(shù)據(jù)。cpu501、rom502以及ram503通過總線504彼此相連。輸入/輸出(i/o)接口505也連接至總線504。
設(shè)備500中的多個部件連接至i/o接口505,包括:輸入單元506,例如鍵盤、鼠標(biāo)等;輸出單元507,例如各種類型的顯示器、揚聲器等;存儲單元508,例如磁盤、光盤等;以及通信單元509,例如網(wǎng)卡、調(diào)制解調(diào)器、無線通信收發(fā)機等。通信單元509允許設(shè)備500通過諸如因特網(wǎng)的計算機網(wǎng)絡(luò)和/或各種電信網(wǎng)絡(luò)與其他設(shè)備交換信息/數(shù)據(jù)。
上文所描述的各個過程和處理,例如方法200、300以及400,可由處理單元501執(zhí)行。例如,在一些實施例中,方法300以及400可被實現(xiàn)為計算機軟件程序,其被有形地包含于機器可讀介質(zhì),例如存儲單元508。在一些實施例中,計算機程序的部分或者全部可以 經(jīng)由rom502和/或通信單元509而被載入和/或安裝到設(shè)備500上。當(dāng)計算機程序被加載到ram503并由cpu501執(zhí)行時,可以執(zhí)行上文描述的方法200、300以及400的一個或多個步驟。
通過以上描述和相關(guān)附圖中所給出的教導(dǎo),這里所給出的本公開的許多修改形式和其它實施方式將被本公開相關(guān)領(lǐng)域的技術(shù)人員所意識到。因此,所要理解的是,本公開的實施方式并不局限于所公開的具體實施方式,并且修改形式和其它實施方式意在包括在本公開的范圍之內(nèi)。此外,雖然以上描述和相關(guān)附圖在部件和/或功能的某些示例組合形式的背景下對示例實施方式進行了描述,但是應(yīng)當(dāng)意識到的是,可以由備選實施方式提供部件和/或功能的不同組合形式而并不背離本公開的范圍。就這點而言,例如,與以上明確描述的有所不同的部件和/或功能的其它組合形式也被預(yù)期處于本公開的范圍之內(nèi)。雖然這里采用了具體術(shù)語,但是它們僅以一般且描述性的含義所使用而并非意在進行限制。