本發(fā)明屬于大數(shù)據(jù)存儲(chǔ)與檢索領(lǐng)域,尤其涉及一種基于HBase-ORM的索引及檢索系統(tǒng)。
背景技術(shù):
::數(shù)據(jù)庫(kù)技術(shù)發(fā)展至今產(chǎn)生了SQL數(shù)據(jù)庫(kù)和NoSQL(對(duì)所有非關(guān)系數(shù)據(jù)庫(kù)的統(tǒng)稱(chēng))數(shù)據(jù)庫(kù)兩大類(lèi)型。當(dāng)前NoSQL數(shù)據(jù)庫(kù)很多,大部分都是開(kāi)源的,其中比較知名的有:MemcacheDB、Redis、TokyoCabinet、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。非關(guān)系型數(shù)據(jù)庫(kù)不支持關(guān)系模型,不支持連接操作,易使用和部署,在實(shí)現(xiàn)海量數(shù)據(jù)分布式存儲(chǔ)和快速讀寫(xiě)技術(shù)上取得了一定的成果。在對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)和操作時(shí),通常使用ORM框架來(lái)負(fù)責(zé)數(shù)據(jù)的持久化。例如Hibernate是目前最流行的ORM框架,是連接Java對(duì)象模型和關(guān)系數(shù)據(jù)模型的橋梁,它對(duì)JDBC進(jìn)行了輕量級(jí)的封裝,不僅提供ORM映射服務(wù),還提供數(shù)據(jù)查詢(xún)和數(shù)據(jù)緩沖功能,實(shí)現(xiàn)了業(yè)務(wù)邏輯對(duì)數(shù)據(jù)的透明訪問(wèn)。對(duì)于Web應(yīng)用而言,數(shù)據(jù)訪問(wèn)對(duì)象隔離了不同數(shù)據(jù)源之間的差異,從而實(shí)現(xiàn)了業(yè)務(wù)邏輯層與數(shù)據(jù)源之間的解耦。對(duì)于NoSQL數(shù)據(jù)庫(kù),由于數(shù)據(jù)庫(kù)類(lèi)型的多樣性,目前尚無(wú)統(tǒng)一的ORM框架,例如針對(duì)Mongodb的Morphia、針對(duì)Infinispan的HibernateOGM、針對(duì)HBase的SimpleHBase和Phoenix等。這里主要關(guān)注HBase的ORM框架。Phoenix是一個(gè)開(kāi)源的HBase查詢(xún)引擎,其通過(guò)將SQL查詢(xún)轉(zhuǎn)換為一個(gè)或多個(gè)HBaseScan來(lái)獲取數(shù)據(jù),直接使用HBaseAPI,利用Coprocessor和Filter進(jìn)行數(shù)據(jù)查詢(xún),試圖規(guī)避MapReduce,從而減小時(shí)延。然而由于Coprocessor和Filter的自身能力受限,完全拋棄MapReduce使其在面對(duì)復(fù)雜查詢(xún)和大數(shù)據(jù)量的查詢(xún)時(shí)性能受限。SimpleHBase是一個(gè)輕量級(jí)的HBase中間件,支持?jǐn)?shù)據(jù)類(lèi)型映射、操作轉(zhuǎn)換,通過(guò)封裝HBase的Filter支持類(lèi)SQL的查詢(xún),與Phoenix類(lèi)似,其同樣受限于Filter的處理能力。為了解決HBase的海量數(shù)據(jù)復(fù)雜查詢(xún)問(wèn)題,另一種解決思路就是對(duì)HBase中的每列數(shù)據(jù)建立索引。目前支持海量數(shù)據(jù)分布式索引的框架主要有兩個(gè),分別是Solr和Elasticsearch。Solr是ApacheLucene項(xiàng)目的開(kāi)源企業(yè)搜索平臺(tái),支持全文檢索、命中提示、分面搜索、動(dòng)態(tài)聚類(lèi)等。Elasticsearch是一個(gè)實(shí)時(shí)的分布式搜索和分析引擎,可以用于全文搜索、結(jié)構(gòu)化搜索及分析,支持Lucene的近實(shí)時(shí)檢索,目前被維基百科、GitHub、StackOverflow、英國(guó)衛(wèi)報(bào)等組織和企業(yè)廣泛使用。兩者相比,Solr擁有更多的開(kāi)發(fā)和貢獻(xiàn)者,較為成熟和穩(wěn)定,但是并不支持實(shí)時(shí)索引和搜索;Elasticsearch的部署、維護(hù)更為簡(jiǎn)單,且支持近實(shí)時(shí)搜索,其缺點(diǎn)是開(kāi)發(fā)和維護(hù)者相比Solr要少很多。相比而言,Solr架構(gòu)目前不適用于實(shí)時(shí)搜索的應(yīng)用。技術(shù)實(shí)現(xiàn)要素:發(fā)明目的:本發(fā)明所要解決的技術(shù)問(wèn)題是HBase中海量復(fù)雜數(shù)據(jù)的快速查詢(xún)問(wèn)題。本發(fā)明通過(guò)利用Java的注解和反射技術(shù)實(shí)現(xiàn)了一個(gè)HBase-ORM(ObjectRelationalMapping,對(duì)象關(guān)系映射)系統(tǒng),同時(shí)利用Elasticsearch對(duì)HBase中的數(shù)據(jù)建立索引,并支持近實(shí)時(shí)的海量復(fù)雜數(shù)據(jù)查詢(xún)。技術(shù)方案:本發(fā)明提出了一種基于HBase-ORM的索引及檢索系統(tǒng)。所述系統(tǒng)包括Hadoop平臺(tái)層、數(shù)據(jù)訪問(wèn)層、HBase-ORM層、業(yè)務(wù)邏輯層和web服務(wù)層,通過(guò)利用HBase-ORM層對(duì)上層和下層進(jìn)行隔離,上層包括業(yè)務(wù)邏輯層和web服務(wù)層,下層包括Hadoop平臺(tái)層和數(shù)據(jù)訪問(wèn)層,其中,Hadoop平臺(tái)層通過(guò)搭建Hadoop集群,利用HBase來(lái)作為數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),所述數(shù)據(jù)包括文本、數(shù)值、經(jīng)緯度和圖像數(shù)據(jù);數(shù)據(jù)訪問(wèn)層提供HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)訪問(wèn)接口,根據(jù)HBase-ORM層的指定輸入,利用HBaseAPI完成數(shù)據(jù)的增加、刪除、修改和查詢(xún)操作,為HBase-ORM層提供HBase數(shù)據(jù)庫(kù)的操作接口,HBase-ORM層用于連接數(shù)據(jù)訪問(wèn)層和業(yè)務(wù)邏輯層,HBase-ORM層通過(guò)部署Elasticsearch集群來(lái)對(duì)HBase數(shù)據(jù)庫(kù)中的文本、數(shù)值和經(jīng)緯度數(shù)據(jù)建立索引,并提供查詢(xún)接口,通過(guò)部署Elasticsearch圖像檢索插件,使Elasticsearch集群支持對(duì)圖像數(shù)據(jù)進(jìn)行索引和檢索,HBase-ORM層將調(diào)用數(shù)據(jù)訪問(wèn)層完成Hbase數(shù)據(jù)庫(kù)基本操作,并對(duì)業(yè)務(wù)邏輯層暴露統(tǒng)一的接口,所述基本操作包括增加、刪除、修改和查詢(xún),業(yè)務(wù)邏輯層用于特定業(yè)務(wù)的規(guī)則制定和業(yè)務(wù)流程實(shí)現(xiàn),業(yè)務(wù)邏輯層根據(jù)Web服務(wù)層的訪問(wèn)請(qǐng)求,調(diào)用HBase-ORM層完成數(shù)據(jù)訪問(wèn)、數(shù)據(jù)處理操作,并將數(shù)據(jù)返回給Web服務(wù)層,web服務(wù)層為用戶提供數(shù)據(jù)的展示,以Web方式為用戶呈現(xiàn)業(yè)務(wù)相關(guān)內(nèi)容,提供交互界面,接受用戶的訪問(wèn)請(qǐng)求,并傳遞給業(yè)務(wù)邏輯層,同時(shí)接收業(yè)務(wù)邏輯層返回相關(guān)內(nèi)容并展示給用戶。所述HBase-ORM層包括兩部分:對(duì)象映射模塊和數(shù)據(jù)訪問(wèn)模塊,其中對(duì)象映射模塊通過(guò)利用注解來(lái)描述HTable對(duì)應(yīng)的表結(jié)構(gòu),包括表名、列族名、索引名、列名和列類(lèi)型,通過(guò)HTableConf注解來(lái)描述表名、列族和索引名,通過(guò)HColumn注解來(lái)描述HTable中對(duì)應(yīng)的列名,利用HType注解來(lái)描述該列對(duì)應(yīng)的類(lèi)型;數(shù)據(jù)訪問(wèn)模塊用于進(jìn)行數(shù)據(jù)的增加、刪除、修改、檢索、建立和更新索引。所述系統(tǒng)進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí)執(zhí)行如下步驟:步驟1-1,數(shù)據(jù)訪問(wèn)層收到數(shù)據(jù)存儲(chǔ)命令后向HBase-ORM層發(fā)出操作指示,HBase-ORM層根據(jù)注解獲取數(shù)據(jù)對(duì)應(yīng)的表名、列族名和列名,確定數(shù)據(jù)在HBase數(shù)據(jù)庫(kù)中的存儲(chǔ)位置,同時(shí)獲取相應(yīng)的索引名,以確定數(shù)據(jù)在ElasticSearch集群中的索引存儲(chǔ)位置,以及每列數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)類(lèi)型,Elasticsearch集群針對(duì)不同數(shù)據(jù)類(lèi)型,建立不同的索引;步驟1-2,Elasticsearch集群根據(jù)獲取的表名、列族名和列名對(duì)HBase數(shù)據(jù)庫(kù)進(jìn)行操作,如果不存在相應(yīng)表、列族或列,則在HBase數(shù)據(jù)庫(kù)中新建,同時(shí)在ElasticSearch集群中新建對(duì)應(yīng)索引,并根據(jù)每列的數(shù)據(jù)類(lèi)型建立或更新索引結(jié)構(gòu);步驟1-3,Elasticsearch集群將數(shù)據(jù)寫(xiě)入HBase數(shù)據(jù)庫(kù):對(duì)于非圖像數(shù)據(jù),在ElasticSearch集群中建立倒排索引;對(duì)于圖像數(shù)據(jù),則對(duì)圖像提取特征,并保存特征向量。所述系統(tǒng)進(jìn)行數(shù)據(jù)檢索時(shí)執(zhí)行如下步驟:步驟2-1,數(shù)據(jù)訪問(wèn)層收到數(shù)據(jù)檢索命令后向HBase-ORM層發(fā)出操作指示,HBase-ORM層根據(jù)注解獲取數(shù)據(jù)對(duì)應(yīng)的表名、列族名、列名、索引名、數(shù)據(jù)類(lèi)型以及數(shù)據(jù)值;步驟2-2,Elasticsearch集群根據(jù)對(duì)應(yīng)的索引名獲取相應(yīng)索引,對(duì)于非圖像數(shù)據(jù),Elasticsearch集群根據(jù)輸入的數(shù)據(jù)及倒排索引獲取根據(jù)相似度排序的數(shù)據(jù)的行鍵值列表;對(duì)于圖像數(shù)據(jù),Elasticsearch集群對(duì)輸入圖像提取特征,并與索引中存儲(chǔ)的所有特征向量計(jì)算相似度,并進(jìn)行排序,從而獲取相似圖像的行鍵值列表;步驟2-3,Elasticsearch集群根據(jù)獲取的鍵值結(jié)合表名、列族名以及列名從HBase數(shù)據(jù)庫(kù)中讀取相應(yīng)數(shù)據(jù)并返回。所述系統(tǒng)進(jìn)行數(shù)據(jù)刪除時(shí)執(zhí)行如下步驟:HBase-ORM層通過(guò)用戶給定的輸入查詢(xún)并返回相關(guān)數(shù)據(jù),在HBase數(shù)據(jù)庫(kù)中刪除相關(guān)行,并在ElasticSearch集群中刪除相關(guān)索引。有益效果:本發(fā)明利用了Java的反射和注解機(jī)制來(lái)簡(jiǎn)化了HBase的數(shù)據(jù)插入、修改與刪除,對(duì)上層用戶屏蔽了HBase的API,減少代碼冗余,提高數(shù)據(jù)訪問(wèn)的效率及可靠性;其次結(jié)合Elasticsearch在數(shù)據(jù)的插入與修改過(guò)程中根據(jù)不同的數(shù)據(jù)類(lèi)型(包括文本、數(shù)值、經(jīng)緯度等)建立索引,并支持對(duì)索引數(shù)據(jù)的近實(shí)時(shí)搜索,從而提高了HBase數(shù)據(jù)訪問(wèn)和檢索的效率;最后,通過(guò)對(duì)Elasticsearch進(jìn)行圖像檢索插件的擴(kuò)展,從而使Elasticsearch支持對(duì)HBase中保存的彩色圖像或人臉圖像等進(jìn)行相似度檢索,在建立圖像索引之后,可以實(shí)現(xiàn)海量圖像的秒級(jí)搜索。下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。附圖說(shuō)明圖1是數(shù)據(jù)訪問(wèn)流程圖。圖2是基于HBaseORM的索引及檢索系統(tǒng)架構(gòu)示意圖。圖3是數(shù)據(jù)存儲(chǔ)模塊交互示意圖。圖4是數(shù)據(jù)檢索模塊交互示意圖。圖5是時(shí)間范圍檢索效果圖。圖6是字符串及時(shí)間范圍復(fù)合查詢(xún)效果圖。圖7是圖像檢索結(jié)果示意圖。圖8是人臉圖像檢索結(jié)果示意圖。具體實(shí)施方式現(xiàn)階段,對(duì)于NoSQL數(shù)據(jù)庫(kù),由于數(shù)據(jù)庫(kù)類(lèi)型的多樣性,目前尚無(wú)統(tǒng)一的ORM框架。Phoenix是一個(gè)開(kāi)源的HBase查詢(xún)引擎,其通過(guò)將SQL查詢(xún)轉(zhuǎn)換為一個(gè)或多個(gè)HBaseScan來(lái)獲取數(shù)據(jù),直接使用HBaseAPI,利用Coprocessor和Filter進(jìn)行數(shù)據(jù)查詢(xún),試圖規(guī)避MapReduce,從而減小時(shí)延。然而由于Coprocessor和Filter的自身能力受限,完全拋棄MapReduce使其在面對(duì)復(fù)雜查詢(xún)和大數(shù)據(jù)量的查詢(xún)時(shí)性能受限。SimpleHBase是一個(gè)輕量級(jí)的HBase中間件,支持?jǐn)?shù)據(jù)類(lèi)型映射、操作轉(zhuǎn)換,通過(guò)封裝HBase的Filter支持類(lèi)SQL的查詢(xún),與Phoenix類(lèi)似,其同樣受限于Filter的處理能力。本發(fā)明通過(guò)利用Java的注解和反射技術(shù)實(shí)現(xiàn)了一個(gè)HBaseORM框架,同時(shí)利用Elasticsearch對(duì)HBase中的數(shù)據(jù)建立索引,并支持近實(shí)時(shí)的海量復(fù)雜數(shù)據(jù)查詢(xún)。結(jié)合圖1-圖6,本發(fā)明包括以下處理步驟。(1)通過(guò)搭建Hadoop集群來(lái)整合多臺(tái)計(jì)算機(jī)的存儲(chǔ)和計(jì)算能力,利用HBase來(lái)存儲(chǔ)海量的文本、數(shù)值、經(jīng)緯度及圖像等數(shù)據(jù)。(2)搭建Elasticsearch集群,利用Elasticsearch集群來(lái)對(duì)HBase中的數(shù)據(jù)進(jìn)行索引,并提供檢索接口。(3)ElasticSearch圖像搜索插件部署。Elasticsearch插件是Elasticsearch提供的一種標(biāo)準(zhǔn)功能擴(kuò)展方法。通過(guò)插件開(kāi)發(fā)者可以對(duì)Elasticsearch功能進(jìn)行自定義擴(kuò)展,比如添加新的分析器,開(kāi)發(fā)現(xiàn)有功能的替代品等等。Elasticsearch插件還能夠通過(guò)Elasticsearch的http服務(wù)器提供一些web服務(wù),比如有一些開(kāi)源的插件就實(shí)現(xiàn)Elasticsearch集群的管理,索引查詢(xún)等非常有用的服務(wù)??偟恼f(shuō)來(lái)利用Elasticsearch插件可以對(duì)原生的Elasticsearch進(jìn)行功能擴(kuò)展,也可以在Elasticsearch服務(wù)器上添加自定義的web服務(wù)。Elasticsearch圖像搜索插件就是利用Elasticsearch提供的自定義插件功能開(kāi)發(fā)的一套基于顏色特征的圖像快速檢索工具。在原生的Elasticsearch中只提供了文本數(shù)據(jù),數(shù)值數(shù)據(jù),經(jīng)緯度數(shù)據(jù)等常規(guī)數(shù)據(jù)的快速檢索,沒(méi)有提供圖像數(shù)據(jù)的快速檢索。為了實(shí)現(xiàn)大規(guī)模圖像數(shù)據(jù)的快速檢索,本發(fā)明對(duì)Elasticsearch進(jìn)行了擴(kuò)展。Elasticsearch圖像插件要解決兩個(gè)核心問(wèn)題:1.圖像數(shù)據(jù)如何描述。2.圖像數(shù)據(jù)如何進(jìn)行比較。圖像數(shù)據(jù)如何描述是圖像檢索的一個(gè)基本問(wèn)題。圖像是一種非結(jié)構(gòu)化的數(shù)據(jù),不同尺寸圖像的數(shù)據(jù)維度也不一樣。為了對(duì)不同尺寸的圖像實(shí)現(xiàn)統(tǒng)一的描述,需要對(duì)圖像提取出統(tǒng)一的描述特征。由于業(yè)務(wù)邏輯的需要,本發(fā)明提取了圖像的顏色特征、序列特征和人臉特征作為圖像描述算子。在底層,利用C++實(shí)現(xiàn)了一套圖像顏色特征提取算法,并封裝成JNI庫(kù)。在上層插件中調(diào)用JNI庫(kù)對(duì)圖像提取統(tǒng)一維度的圖像特征向量,在轉(zhuǎn)化之后的統(tǒng)一向量空間中進(jìn)行相似度計(jì)算。(4)Java具有很強(qiáng)的動(dòng)態(tài)性,其反射機(jī)制允許在運(yùn)行時(shí)訪問(wèn)任意類(lèi)的任意方法和屬性,允許改變程序結(jié)構(gòu)或變量類(lèi)型。注解,也叫元數(shù)據(jù),是一種代碼級(jí)別的說(shuō)明,可以聲明在包、類(lèi)、字段、方法、局部變量等前,用于對(duì)這些元素進(jìn)行說(shuō)明和注釋。HBaseORM框架主要包括兩部分:對(duì)象映射和數(shù)據(jù)訪問(wèn)。其中對(duì)象映射通過(guò)利用注解來(lái)描述HTable對(duì)應(yīng)的表結(jié)構(gòu),包括表名、列族名、索引名、列名、列類(lèi)型等。如圖1所示,通過(guò)HTableConf注解來(lái)描述表名、列族和索引名,通過(guò)HColumn注解來(lái)描述HTable中對(duì)應(yīng)的列名,利用HType注解來(lái)描述該列對(duì)應(yīng)的類(lèi)型。表1列類(lèi)型及索引說(shuō)明列類(lèi)型列類(lèi)型說(shuō)明列索引說(shuō)明STRING_ANALYSIS字符串分詞索引STRING_NOANALYSIS字符串不分詞索引INTEGER整數(shù)數(shù)值索引DOUBLE浮點(diǎn)數(shù)數(shù)值索引LOCATION經(jīng)緯度經(jīng)緯度索引DATE日期日期索引IMAGE_FACE人臉圖像提取人臉特征IMAGE_COLORLAYOUT彩色圖像提取顏色分布特征SEQFS_MIN圖像序列提取圖像序列特征(最小距離)SEQFS_MEAN圖像序列提取圖像序列特征(均值距離)數(shù)據(jù)訪問(wèn)模塊則負(fù)責(zé)進(jìn)行數(shù)據(jù)的增刪改查、建立和更新索引等操作,具體操作流程如圖1所示。如圖2所示,整個(gè)系統(tǒng)自下而上分為Hadoop平臺(tái)層,HBase-ORM層,數(shù)據(jù)訪問(wèn)層,業(yè)務(wù)邏輯層,web服務(wù)層。其中Hadoop平臺(tái)層數(shù)據(jù)基礎(chǔ)平臺(tái),而從數(shù)據(jù)訪問(wèn)層開(kāi)始涉及業(yè)務(wù)數(shù)據(jù)。本發(fā)明中所描述的HBaseORM層則是兩者之間的連接紐帶。HBaseORM將底層的Hbase基本操作進(jìn)行了封裝,對(duì)上層暴露為統(tǒng)一的簡(jiǎn)便的接口,使得上層能夠更方便地對(duì)Hbase進(jìn)行操作。更重要的是,在HbaseORM中,融合了ElasticSearch組件,對(duì)Hbase中的每一列數(shù)據(jù)建立了索引。使得上層能夠更快速方便的對(duì)底層數(shù)據(jù)進(jìn)行訪問(wèn),彌補(bǔ)了Hbase無(wú)法快速按內(nèi)容訪問(wèn)的不足。圖3展示了數(shù)據(jù)存儲(chǔ)過(guò)程中各模塊的交互示意圖。數(shù)據(jù)訪問(wèn)層為用戶提供簡(jiǎn)潔的數(shù)據(jù)存儲(chǔ)接口(增加、修改)。首先根據(jù)注解獲取數(shù)據(jù)對(duì)應(yīng)的表名、列族名、列名,從而確定數(shù)據(jù)在HBase中的存儲(chǔ)位置,同時(shí)還獲取了相應(yīng)的索引名,以確定數(shù)據(jù)在ElasticSearch中的索引存儲(chǔ)位置,以及每列數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)類(lèi)型(如表1所示),針對(duì)不同數(shù)據(jù)類(lèi)型,建立不同的索引。如下所示,表名為T(mén)_CV_CACE,列族名為basic,索引名為cvtables:然后根據(jù)獲取的表名、列族名、列名對(duì)HBase進(jìn)行操作,如果不存在相應(yīng)表、列族或列,則在HBase中新建,同時(shí)在ElasticSearch中新建對(duì)應(yīng)索引,并根據(jù)每列的數(shù)據(jù)類(lèi)型建立或更新索引結(jié)構(gòu)。最后將數(shù)據(jù)寫(xiě)入HBase,針對(duì)非圖像數(shù)據(jù),在ElasticSearch中建立倒排索引,針對(duì)圖像數(shù)據(jù),則對(duì)圖像提取特征(不同圖像類(lèi)型提取不同視覺(jué)特征,具體如表1所示),并保存特征向量。圖4展示了數(shù)據(jù)檢索(查詢(xún))過(guò)程中各模塊的交互示意圖。數(shù)據(jù)訪問(wèn)層為用戶提供簡(jiǎn)潔的數(shù)據(jù)接口。首先根據(jù)注解獲取數(shù)據(jù)對(duì)應(yīng)的表名、列族名、列名、索引名、數(shù)據(jù)類(lèi)型以及數(shù)據(jù)值。然后根據(jù)對(duì)應(yīng)的索引名獲取相應(yīng)索引,對(duì)于非圖像數(shù)據(jù),可以根據(jù)輸入的數(shù)據(jù)及倒排索引獲取根據(jù)相似度排序的數(shù)據(jù)的行鍵值列表;對(duì)于圖像數(shù)據(jù),則首先對(duì)輸入圖像提取特征,并與索引中存儲(chǔ)的所有特征向量計(jì)算相似度,并進(jìn)行排序,從而獲取相似圖像的行鍵值列表。最后根據(jù)獲取的鍵值結(jié)合表名、列族名以及列名從HBase中讀取相應(yīng)數(shù)據(jù)并返回。數(shù)據(jù)刪除的過(guò)程需結(jié)合上述數(shù)據(jù)檢索與數(shù)據(jù)存儲(chǔ)兩個(gè)步驟,首先通過(guò)用戶給定的輸入查詢(xún)并返回相關(guān)數(shù)據(jù),然后再在HBase中刪除相關(guān)行,并在ElasticSearch中刪除相關(guān)索引。圖5-圖8展示了基于HBase-ORM的檢索效果示意圖,其中圖5是時(shí)間范圍檢索效果圖,圖6是字符串及時(shí)間范圍復(fù)合查詢(xún)效果圖,圖7是圖像檢索(黑色及出租車(chē)車(chē)輛檢索)結(jié)果示意圖,圖8是人臉圖像檢索結(jié)果示意圖。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3