本發(fā)明涉及一種信息搜索服務(wù),尤其涉及一種采用云存儲(chǔ)和客戶端應(yīng)用程序(API)的方式對(duì)客戶信息提供搜索服務(wù)的系統(tǒng)。
背景技術(shù):
隨著電商行業(yè)的迅猛發(fā)展,也帶動(dòng)物流快遞行業(yè)進(jìn)入飛速發(fā)展時(shí)期,但是由于客戶信息的龐大數(shù)據(jù)量,使得客戶數(shù)據(jù)在從數(shù)據(jù)庫服務(wù)器使用傳統(tǒng)的T-Sql語句提取客戶信息時(shí),響應(yīng)時(shí)間從幾秒到幾分鐘不等,極大的損害終端客戶體驗(yàn),且拖慢了數(shù)據(jù)庫服務(wù)器,給服務(wù)器造成了壓力,也極大的增加了開發(fā)和運(yùn)維成本,耗費(fèi)了大量的人力和時(shí)間來進(jìn)行服務(wù)器的維護(hù),同時(shí)也阻礙了快遞行業(yè)邁向信息化和自動(dòng)化的步伐。
另外由于各行業(yè)不斷出現(xiàn)的客戶信息泄露等情況,使客戶信息的安全性以及保密性越來越受到各行業(yè)的高度重視,進(jìn)而在電子商務(wù)市場(chǎng)迅猛發(fā)展的時(shí)期,如何確保客戶信息的安全性也成了長期困擾著快遞行業(yè)的問題。
技術(shù)實(shí)現(xiàn)要素:
以下給出一個(gè)或多個(gè)方面的簡要概述以提供對(duì)這些方面的基本理解。此概述不是所有構(gòu)想到的方面的詳盡綜覽,并且既非旨在指認(rèn)出所有方面的關(guān)鍵性或決定性要素亦非試圖界定任何或所有方面的范圍。其唯一的目的是要以簡化形式給出一個(gè)或多個(gè)方面的一些概念以為稍后給出的更加詳細(xì)的描述之序。
本發(fā)明的目的在于解決上述問題,提供了一種客戶信息搜索云系統(tǒng),加快客戶數(shù)據(jù)從數(shù)據(jù)庫服務(wù)器提取客戶信息時(shí)服務(wù)器的響應(yīng)時(shí)間,減少數(shù)據(jù)庫服務(wù)器的查詢壓力。
本發(fā)明的技術(shù)方案:本發(fā)明揭示了一種客戶信息搜索云系統(tǒng),通過云端存儲(chǔ)結(jié)合客戶端應(yīng)用程序的方式對(duì)需要查詢客戶信息的應(yīng)用提供基礎(chǔ)數(shù)據(jù)的服務(wù),系統(tǒng)包括:
數(shù)據(jù)清洗裝置,基于非關(guān)系型數(shù)據(jù)庫對(duì)客戶信息進(jìn)行數(shù)據(jù)清洗;
搜索裝置,包括以全文索引引擎為基礎(chǔ)實(shí)現(xiàn)文本檢索應(yīng)用服務(wù)的服務(wù)器和分布式客戶搜索云系統(tǒng)。
根據(jù)本發(fā)明的客戶信息搜索云系統(tǒng)的一實(shí)施例,數(shù)據(jù)清洗裝置通過Replica Set模式和Sharding分片機(jī)制構(gòu)建MongoDB集群,對(duì)客戶信息的數(shù)據(jù)進(jìn)行過濾,將重復(fù)出現(xiàn)的數(shù)據(jù)去重,將不規(guī)范的數(shù)據(jù)進(jìn)行規(guī)范化。
根據(jù)本發(fā)明的客戶信息搜索云系統(tǒng)的一實(shí)施例,客戶信息的數(shù)據(jù)分布在每一Sharding分片上以實(shí)現(xiàn)負(fù)載均衡,通過多組工作定時(shí)抽取客戶信息的數(shù)據(jù)并進(jìn)行去重和規(guī)范化的操作。
根據(jù)本發(fā)明的客戶信息搜索云系統(tǒng)的一實(shí)施例,搜索裝置中的全文索引引擎是Lucene全文索引引擎,以Lucene全文索引引擎為基礎(chǔ)構(gòu)建了實(shí)現(xiàn)了文本檢索應(yīng)用服務(wù)的Solr服務(wù)器。
根據(jù)本發(fā)明的客戶信息搜索云系統(tǒng)的一實(shí)施例,分布式客戶搜索云系統(tǒng)以ZooKeeper為基礎(chǔ)來實(shí)現(xiàn)。
本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果:本發(fā)明通過采用云存儲(chǔ)結(jié)合客戶端API的方式對(duì)需要查詢客戶信息的應(yīng)用提供基礎(chǔ)數(shù)據(jù)的服務(wù),可以解決客戶數(shù)據(jù)在從數(shù)據(jù)庫服務(wù)器提取客戶信息時(shí),服務(wù)器響應(yīng)時(shí)間長的問題,同時(shí)也可以緩解服務(wù)器的壓力,提高終端客戶體驗(yàn)。
附圖說明
圖1示出了本發(fā)明的客戶信息搜索云系統(tǒng)的較佳實(shí)施例的原理圖。
圖2示出了客戶信息搜索云系統(tǒng)中的數(shù)據(jù)清洗裝置的實(shí)現(xiàn)原理。
圖3示出了客戶信息搜索云系統(tǒng)中的搜索裝置的實(shí)現(xiàn)原理。
具體實(shí)施方式
在結(jié)合以下附圖閱讀本公開的實(shí)施例的詳細(xì)描述之后,能夠更好地理解本發(fā)明的上述特征和優(yōu)點(diǎn)。在附圖中,各組件不一定是按比例繪制,并且具有類似的相關(guān)特性或特征的組件可能具有相同或相近的附圖標(biāo)記。
圖1示出了本發(fā)明的客戶信息搜索云系統(tǒng)的較佳實(shí)施例的原理。請(qǐng)參見圖1,本實(shí)施例的客戶信息搜索云系統(tǒng)包括:數(shù)據(jù)清洗裝置1以及搜索裝置2。
數(shù)據(jù)清洗裝置1是基于非關(guān)系型數(shù)據(jù)庫(NoSQL)MongoDB對(duì)客戶信息進(jìn)行數(shù)據(jù)清洗,例如,對(duì)客戶的收發(fā)件人信息數(shù)據(jù),切分開收發(fā)件人信息后的數(shù)據(jù)進(jìn)行規(guī)范客戶手機(jī)號(hào)碼(將手機(jī)號(hào)碼或者固定電話可能出現(xiàn)的例如全角字符或者轉(zhuǎn)半角字符等的非法字符過濾,以提升數(shù)據(jù)質(zhì)量),規(guī)范客戶收發(fā)件地址(收發(fā)件客戶地址信息中存在著大量的非地址字符以及較大量的不規(guī)范寫法的地址)。其具體原理如圖2所示,數(shù)據(jù)清洗裝置1通過Replica Set模式和Sharding分片機(jī)制構(gòu)建MongoDB集群,對(duì)客戶信息的數(shù)據(jù)進(jìn)行過濾,即,將重復(fù)出現(xiàn)的數(shù)據(jù)去重,對(duì)不規(guī)范的數(shù)據(jù)進(jìn)行規(guī)范化。Mongo DB是目前在IT行業(yè)非常流行的一種非關(guān)系型數(shù)據(jù)庫(NoSql),其靈活的數(shù)據(jù)存儲(chǔ)方式備受當(dāng)前IT從業(yè)人員的青睞。Mongo DB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷?OO思想),在Mongo DB中每一條記錄都是一個(gè)Document對(duì)象。Mongo DB最大的優(yōu)勢(shì)在于所有的數(shù)據(jù)持久操作都無需開發(fā)人員手動(dòng)編寫SQL語句,直接調(diào)用方法就可以輕松的實(shí)現(xiàn)CRUD操作。Replica Set是MongoDB的高可用性架構(gòu)。Sharding基本上是針對(duì)開源數(shù)據(jù)庫的擴(kuò)展性解決方案。
客戶信息的數(shù)據(jù)分布在每一Sharding分片上以實(shí)現(xiàn)負(fù)載均衡,通過多組工作(job)定時(shí)抽取客戶信息的數(shù)據(jù)并進(jìn)行去重和規(guī)范化的操作,以提升數(shù)據(jù)質(zhì)量。
在通過數(shù)據(jù)清洗提升了數(shù)據(jù)質(zhì)量之后,系統(tǒng)接著運(yùn)行搜索裝置2。
如圖3所示,搜索裝置2包括采用基于Java等應(yīng)用的以全文索引引擎為基礎(chǔ)實(shí)現(xiàn)文本檢索應(yīng)用服務(wù)的服務(wù)器21和分布式客戶搜索云系統(tǒng)22。服務(wù)器21中的全文索引引擎是Lucene全文索引引擎,以Lucene全文索引引擎為基礎(chǔ)構(gòu)建了實(shí)現(xiàn)了文本檢索應(yīng)用服務(wù)的Solr服務(wù)器。Lucene是apache軟件基金會(huì)4jakarta項(xiàng)目組的一個(gè)子項(xiàng)目,是一個(gè)開放源代碼的全文檢索引擎工具包,即它不是一個(gè)完整的全文檢索引擎,而是一個(gè)全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引 引擎,部分文本分析引擎。Solr是一個(gè)獨(dú)立的企業(yè)級(jí)搜索應(yīng)用服務(wù)器,它對(duì)外提供類似于Web-service的API接口,用戶可以通過http請(qǐng)求,向搜索引擎服務(wù)器提交一定格式的XML文件,生成索引,也可以通過Http Get操作提出查找請(qǐng)求,并得到XML格式的返回結(jié)果。因?yàn)镾olr和SolrCloud在構(gòu)建大規(guī)模分布式搜索在互聯(lián)網(wǎng)行業(yè)應(yīng)用中有著極為成功的案例。而且Solr和SolrCloud在大規(guī)模批量寫入數(shù)據(jù)速度非常快,比較適合大規(guī)模數(shù)據(jù)批量寫入。當(dāng)用戶可以把客戶數(shù)據(jù)提交給任一Solr Replica,如果它不是leader,它會(huì)把數(shù)據(jù)請(qǐng)求轉(zhuǎn)給本Shard的leader,leader會(huì)把數(shù)據(jù)路由給本Shard的每個(gè)Solr Replica,多組job定時(shí)提交索引。在建立了Lucene索引之后,系統(tǒng)在查詢數(shù)據(jù)信息時(shí)將快速的得到信息。
分布式客戶搜索云系統(tǒng)22以ZooKeeper為基礎(chǔ)來實(shí)現(xiàn)。ZooKeeper是一個(gè)分布式的、開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。
本發(fā)明的客戶信息搜索云系統(tǒng)通過MongoDB客戶數(shù)據(jù)清洗去重和建立Lucene索引,可以快速準(zhǔn)確的得到想要的數(shù)據(jù)信息,提高了終端客戶體驗(yàn),同時(shí)減少了服務(wù)器的查詢壓力。
本領(lǐng)域技術(shù)人員將進(jìn)一步領(lǐng)會(huì),結(jié)合本文中所公開的實(shí)施例來描述的各種解說性邏輯板塊、模塊、電路、和算法步驟可實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件、或這兩者的組合。為清楚地解說硬件與軟件的這一可互換性,各種解說性組件、框、模塊、電路、和步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實(shí)現(xiàn)為硬件還是軟件取決于具體應(yīng)用和施加于整體系統(tǒng)的設(shè)計(jì)約束。技術(shù)人員對(duì)于每種特定應(yīng)用可用不同的方式來實(shí)現(xiàn)所描述的功能性,但這樣的實(shí)現(xiàn)決策不應(yīng)被解讀成導(dǎo)致脫離了本發(fā)明的范圍。
結(jié)合本文所公開的實(shí)施例描述的各種解說性邏輯板塊、模塊、和電路可用通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其它可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其設(shè)計(jì)成執(zhí)行本文所描述功能的任何組合來實(shí)現(xiàn)或執(zhí)行。通用處理器可以是微處 理器,但在替換方案中,該處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器還可以被實(shí)現(xiàn)為計(jì)算設(shè)備的組合,例如DSP與微處理器的組合、多個(gè)微處理器、與DSP核心協(xié)作的一個(gè)或多個(gè)微處理器、或任何其他此類配置。
結(jié)合本文中公開的實(shí)施例描述的方法或算法的步驟可直接在硬件中、在由處理器執(zhí)行的軟件模塊中、或在這兩者的組合中體現(xiàn)。軟件模塊可駐留在RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可移動(dòng)盤、CD-ROM、或本領(lǐng)域中所知的任何其他形式的存儲(chǔ)介質(zhì)中。示例性存儲(chǔ)介質(zhì)耦合到處理器以使得該處理器能從/向該存儲(chǔ)介質(zhì)讀取和寫入信息。在替換方案中,存儲(chǔ)介質(zhì)可以被整合到處理器。處理器和存儲(chǔ)介質(zhì)可駐留在ASIC中。ASIC可駐留在用戶終端中。在替換方案中,處理器和存儲(chǔ)介質(zhì)可作為分立組件駐留在用戶終端中。
在一個(gè)或多個(gè)示例性實(shí)施例中,所描述的功能可在硬件、軟件、固件或其任何組合中實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn)為計(jì)算機(jī)程序產(chǎn)品,則各功能可以作為一條或更多條指令或代碼存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上或藉其進(jìn)行傳送。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)兩者,其包括促成計(jì)算機(jī)程序從一地向另一地轉(zhuǎn)移的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是能被計(jì)算機(jī)訪問的任何可用介質(zhì)。作為示例而非限定,這樣的計(jì)算機(jī)可讀介質(zhì)可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或能被用來攜帶或存儲(chǔ)指令或數(shù)據(jù)結(jié)構(gòu)形式的合意程序代碼且能被計(jì)算機(jī)訪問的任何其它介質(zhì)。任何連接也被正當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。例如,如果軟件是使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(DSL)、或諸如紅外、無線電、以及微波之類的無線技術(shù)從web網(wǎng)站、服務(wù)器、或其它遠(yuǎn)程源傳送而來,則該同軸電纜、光纖電纜、雙絞線、DSL、或諸如紅外、無線電、以及微波之類的無線技術(shù)就被包括在介質(zhì)的定義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(CD)、激光碟、光碟、數(shù)字多用碟(DVD)、軟盤和藍(lán)光碟,其中盤(disk)往往以磁的方式再現(xiàn)數(shù)據(jù),而碟(disc)用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
提供對(duì)本公開的先前描述是為使得本領(lǐng)域任何技術(shù)人員皆能夠制作或使用本公開。對(duì)本公開的各種修改對(duì)本領(lǐng)域技術(shù)人員來說都將是顯而易見的,且本文中所定義的普適原理可被應(yīng)用到其他變體而不會(huì)脫離本公開的精神或范圍。由此, 本公開并非旨在被限定于本文中所描述的示例和設(shè)計(jì),而是應(yīng)被授予與本文中所公開的原理和新穎性特征相一致的最廣范圍。