新四季網

一種海量圖片存儲和搜索的方法與流程

2023-10-08 18:23:54 2


本發明涉及圖片存儲和搜索領域,更具體地,涉及一種個人的海量圖片存儲和搜索的方法。



背景技術:

隨著智慧型手機和各種智能設備的普及,個人的圖片總量和類型呈現了爆炸式的增長,用戶通常會將圖片存儲在計算機的硬碟中,圖片的大量增加超出了普通用戶的管理能力,導致了個人的大量圖片的存儲和管理的需求,因而在個人圖片的存儲領域,設計一個針對大量圖片的存儲和檢索系統成為一項待決的問題。

傳統的文件系統基本上都是基於單個存儲設備,文件元數據結構都較為簡單,例如macos的桌面搜索,linux系統的find搜索等,這些搜索工具都是在文件元數據的基礎上建立索引,或者使用遍歷來搜索文件。這種搜索方法在文件達到一個量級後,所花費的時間將變得不可接受,而且這些程序都是對文件的系統元數據(比如訪問時間、修改時間)建立了索引機制,用戶並不對這些屬性感興趣,用戶對圖片的拍攝內容、拍攝時間更感興趣,而這些元數據傳統文件系統無法添加。



技術實現要素:

本發明為了克服上述問題,設計了一種新的索引算法,目的是為了解決個人的大規模圖片快速和便捷存儲和查詢的問題,縮短圖片數據索引時間和提高海量圖片數據存取檢索效率。

為解決上述技術問題,本發明的技術方案如下:

一種海量圖片存儲和查詢的方法,其架構為兩級索引方式,在伺服器上建立兩級索引機制,由伺服器接收來自於客戶端的請求;所述索引機制的第一層為哈希桶,第二層為紅黑樹。

在一種優選的方案中,所述客戶端的請求包括兩類,第一類是請求將圖片存儲到伺服器中,然後根據本算法建立圖片的兩級索引;第二類是根據圖片的擴展屬性在已建立的數據機構中來查找相應的圖片。

在一種優選的方案中,所述的圖片的擴展屬性包括圖片的拍攝時間、圖片的內容及一切用戶添加到圖片中的信息。

在一種優選的方案中,用戶在客戶端上傳圖片,上傳的內容包括圖片和圖片的擴展屬性;所述的圖片存入伺服器中,返回一個伺服器的存儲地址作為value值;以圖片的擴展屬性作為key值,二者組成對。

在一種優選的方案中,圖片存儲的方法具體步驟如下:

s1:使用相關算法對對中的key計算哈希值,從而得到其在兩級索引機制中第一層哈希桶上的位置;

s2:判斷哈希桶中指向下一層紅黑樹索引結構的指針是否為空值,如果是空值,則以建立紅黑樹根節點並返回插入成功;如果其不為空值,進行s3步驟;

s3:在紅黑樹中查找關鍵值為key的節點,如果結果不為空值,證明節點曾經被插入,則在查找到的節點所指向的記錄列表中插入value值;如果為空值,進行s4步驟;

s4:以建立紅黑樹的節點並插入其中,返回插入成功。

在一種優選的方案中,用戶在客戶端上根據圖片的擴展屬性進行圖片的查詢,進而通過rmi遠程調用機制在伺服器上進行查詢;圖片查詢的方法具體步驟如下:

t1:伺服器接收這次查詢並進行查詢條件的解析,提取其中key的值,然後將key值傳入到伺服器內存索引中;

t2:伺服器計算key的哈希值,確定其是否在哈希桶上,如果不在,則直接返回查詢失敗;如果在哈希桶上,則進行步驟t3;

t3:判斷哈希桶中指向下一層紅黑樹索引結構的指針是否為空,如果為空,返回查詢失敗;如果不為空,則進行步驟t4;

t4:在紅黑樹中查詢關鍵值為key的節點,如果為空,則返回查詢失敗;如果不為空,則進行步驟t5;

t5:返回節點中指向記錄鍊表的首地址。

與現有技術相比,本發明技術方案的有益效果是:本發明提供一種海量圖片存儲和查詢的方法,其架構為兩級索引方式,在伺服器上建立兩級索引機制,由伺服器接收來自於客戶端的請求;所述索引機制的第一層為哈希桶,第二層為紅黑樹。本發明旨在解決大規模圖片快速和便捷存儲和查詢的問題,縮短圖片數據索引時間,提高海量圖片數據存取檢索效率,本發明算法穩定性和擴展性良好,使得客戶端的用戶們可以快速方便地進行圖片的存儲和查找。

附圖說明

圖1為本發明實施例1兩級索引結構圖。

圖2為本發明實施例2上傳圖片並建立索引的流程圖。

圖3為本發明的算法在內存中具體建立索引的流程圖。

圖4為本發明實施例2搜索圖片的流程圖。

圖5為本發明的算法在內存中具體找尋圖片路徑的流程圖。

具體實施方式

附圖僅用於示例性說明,不能理解為對本專利的限制;

為了更好說明本實施例,附圖某些部件會有省略、放大或縮小,並不代表實際產品的尺寸;

對於本領域技術人員來說,附圖中某些公知結構及其說明可能省略是可以理解的。

下面結合附圖和實施例對本發明的技術方案做進一步的說明。

如圖1-4所示,整個的圖片存儲系統採用了一個典型的c/s架構。客戶端的主要功能有兩個,第一個是提供一個前端界面,供用戶上傳和查找圖片;第二是提供對圖片添加擴展屬性的接口。伺服器的主要功能也有兩個,第一個是圖片文件的存儲;第二個是圖片文件索引結構的建立。

整個系統的功能主要有兩個:第一個是建立圖片的索引結構,用戶在客戶端上傳各種智能設備或者說照相設備裡的照片,伺服器端會根據圖片的元數據利用本文中的算法建立索引。第二個是搜索圖片,用戶在客戶端上發出搜索請求,伺服器響應客戶端的請求,在建立好的數據結構中查找圖片的地址信息,再根據地址信息返回用戶查詢的圖片。

在具體圖片文件的存儲過程中,如圖2所示,客戶端和伺服器之間通信,在圖片文件管理客戶端上,用戶需要編輯完整圖片的擴展屬性,需要注意的是圖片本身具有系統屬性(比如修改時間、訪問時間等),但是用戶並不會根據這些系統屬性進行圖片的查詢,用戶對自己添加的擴展屬性更加青睞,這些屬性包括圖片的拍攝地點,拍攝的時間,以及用戶給所拍攝圖片所加的各種個性標籤等等。

圖片通過ftp協議上傳到伺服器上,ftp協議用於網際網路上的控制文件的雙向傳輸。用戶操作客戶機程序,連接到在遠程的ftp伺服器程序。用戶通過客戶機的程序向伺服器程序發出命令,這些命令包括上傳文件、創建或者改變伺服器上的目錄等等。伺服器程序會執行用戶所發出的命令,並將執行的結果返回至客戶端。

圖片的擴展屬性通過tcp/ip協議傳輸到伺服器,如圖3所示,圖片在伺服器中建立索引的具體步驟:伺服器接收用戶上傳的圖片文件及其擴展屬性,然後存儲文件到用戶指定的目錄中,判斷圖片的擴展屬性是否為空,如果為空,意味著該圖片無法建立索引,系統直接結束整個進程;如果屬性不為空,此時圖片的擴展屬性作為key,圖片在伺服器的存儲路徑作為value,組成了對,key-value分布式存儲系統查詢速度快、存放數據量大、支持高並發,非常適合通過主鍵進行查詢。接著計算key的哈希值,確定其在哈希桶(bucket)中的位置,檢測對應位置的紅黑樹指針是否為空。

在具體實施過程中,如果對應位置的紅黑樹指針是空的,那麼就直接創建紅黑樹的根節點,將對插入根節點即可,整個進程結束;如果說對應位置的紅黑樹指針不為空,那麼就在需要在這個紅黑樹上查詢key值是否存在;如果存在,那麼說明以前插入過相同的圖片,這次只是更新而已,那麼只需將value值添加到該key節點指定的記錄鍊表中,然後整個進程結束。如果不存在,那麼說明該圖片是第一次插入,應當建立新的紅黑樹節點,然後將對插入到相應的位置,然後整個進程結束。

如圖4所示,當伺服器的圖片越來越多時,圖片的檢索機制就成為整個系統最為核心的部分,用戶需要高效和便捷的找到自己查找的圖片,首先用戶在客戶端上根據圖片的擴展屬性進行圖片的查詢,通過rmi遠程調用機制從而在伺服器上進行查詢。,rmi應用程式包括兩個獨立的程序:伺服器程序和客戶機程序。伺服器應用程式將創建多個遠程對象,使這些遠程對象能夠被引用,然後等待客戶機調用這些遠程對象的方法。而客戶機程序則從伺服器中得到一個或多個遠程對象的引用,然後調用遠程對象的方法。rmi為伺服器和客戶機進行通信和信息傳遞提供了一種機制。

伺服器接收這次查詢並進行查詢請求的解析,如圖5所示,根據內存索引來查找圖片的存儲路徑,伺服器提取查詢請求中key的值,將這個key信息傳入到伺服器內存索引中,伺服器計算key的哈希值,確定其是否在哈希桶(bucket)上,如果不在,那直接返回查詢失敗;如果在,則在哈希桶對應位置下的紅黑樹中進行查詢,如果結果為空,返回查詢失敗;如果不為空,那麼就把value值即圖片在伺服器中存儲的位置返回給調用的函數,通過圖片存儲的位置即可找到圖片。

圖2和圖4中描述位置關係的用語僅用於示例性說明,不能理解為對本專利的限制;

本發明的上述實施例僅僅是為清楚地說明本發明所作的舉例,而並非是對本發明的實施方式的限定。對於所屬領域的普通技術人員來說,在上述說明的基礎上還可以做出其它不同形式的變化或變動。這裡無需也無法對所有的實施方式予以窮舉。凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明權利要求的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀