欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種POI數(shù)據(jù)檢索方法及裝置與流程

文檔序號:11627717閱讀:384來源:國知局
一種POI數(shù)據(jù)檢索方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種poi數(shù)據(jù)檢索方法及裝置。



背景技術(shù):

目前,越來越多的用戶在電子地圖中查詢poi(pointofinterest,興趣點),數(shù)據(jù)庫中存儲的poi數(shù)據(jù)為poi查詢提供數(shù)據(jù)支撐。

現(xiàn)有技術(shù)中,將母庫poi數(shù)據(jù)存儲到支持海量存儲的oracle數(shù)據(jù)庫中,通過建立索引,執(zhí)行對poi數(shù)據(jù)的查詢、刪除、備份等操作。也有將母庫poi數(shù)據(jù)存儲到mangodb數(shù)據(jù)庫中,并僅在mangodb數(shù)據(jù)庫中執(zhí)行對poi數(shù)據(jù)的查詢操作。

但是,上述兩種數(shù)據(jù)庫查詢poi數(shù)據(jù)的效率較低。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供了一種poi數(shù)據(jù)檢索方法及裝置,在保證檢索poi數(shù)據(jù)準確性的同時,提高了查詢poi數(shù)據(jù)的效率。

一方面,本發(fā)明實施例提供了一種poi數(shù)據(jù)檢索方法,包括:

接收用戶輸入的poi的位置信息;

根據(jù)所述poi的位置信息,以及預(yù)設(shè)的查詢距離,在mangodb數(shù)據(jù)庫中執(zhí)行查詢操作;

根據(jù)mangodb的查詢結(jié)果,在lucene中建立索引,并進行全文檢索,得到目標poi。

在所述接收用戶輸入的poi的位置信息之前,還包括:

將poi母庫數(shù)據(jù)導(dǎo)入到mangodb數(shù)據(jù)庫中。

所述根據(jù)所述poi的位置信息,以及預(yù)設(shè)的查詢距離,在mangodb數(shù) 據(jù)庫中執(zhí)行查詢操作包括:

在mangodb數(shù)據(jù)庫中建立以所述poi的位置信息為圓心,以所述預(yù)設(shè)的查詢距離為半徑的數(shù)據(jù)緩沖區(qū);

在所述數(shù)據(jù)緩沖區(qū)中查詢poi數(shù)據(jù)。

在所述根據(jù)所述poi的位置信息,以及預(yù)設(shè)的查詢距離,在mangodb數(shù)據(jù)庫中執(zhí)行查詢操作之后還包括:

計算所查詢到的位置信息與所述poi的位置信息之間的距離;

按照所述距離從小到大的順序輸出查詢結(jié)果。

所述poi母庫中的位置數(shù)據(jù)由gdal開源庫將所述位置數(shù)據(jù)轉(zhuǎn)換成bson格式插入到mangodb數(shù)據(jù)庫中。另一方面,本發(fā)明實施例還提供了一種poi數(shù)據(jù)檢索裝置,用于執(zhí)行上述poi數(shù)據(jù)檢索方法,所述裝置包括:

接收模塊,用于接收用戶輸入的poi的位置信息;

查詢模塊,用于根據(jù)所述poi的位置信息,以及預(yù)設(shè)的查詢距離,在mangodb數(shù)據(jù)庫中執(zhí)行查詢;

目標poi獲取模塊,用于根據(jù)mangodb的查詢結(jié)果,在lucene中建立索引,并進行全文檢索,得到目標poi。

所述裝置還包括導(dǎo)入模塊,

所述導(dǎo)入模塊用于將poi母庫數(shù)據(jù)導(dǎo)入到mangodb數(shù)據(jù)庫中。

所述查詢模塊包括:

數(shù)據(jù)緩沖區(qū)建立模塊,用于在mangodb數(shù)據(jù)庫中建立以所述poi的位置信息為圓心,以所述預(yù)設(shè)的查詢距離為半徑的數(shù)據(jù)緩沖區(qū);

執(zhí)行模塊,用于在所述數(shù)據(jù)緩沖區(qū)建立模塊建立的數(shù)據(jù)緩沖區(qū)中,執(zhí)行查詢poi數(shù)據(jù)的步驟。

所述裝置還包括:

計算模塊,用于計算所查詢到的位置信息與所述poi的位置信息的距離;

輸出模塊,用于按照所述距離從小到大的順序輸出查詢結(jié)果。

所述裝置還包括:

轉(zhuǎn)換模塊,用于將所述poi母庫中的位置數(shù)據(jù)由gdal開源庫將所述位置數(shù)據(jù)轉(zhuǎn)換成bson格式插入到mangodb數(shù)據(jù)庫中。

本發(fā)明實施例提供的一種poi數(shù)據(jù)檢索方法及裝置,充分運用了mangodb數(shù)據(jù)庫對空間數(shù)據(jù)查詢的支持,以及l(fā)ucene對全文檢索的支持,將兩者的優(yōu)勢結(jié)合起來,提高了poi數(shù)據(jù)查詢的效率。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:

圖1為本發(fā)明實施例提供的一種poi數(shù)據(jù)檢索方法的流程示意圖;

圖2為本發(fā)明實施例提供的一種poi數(shù)據(jù)檢索方法的創(chuàng)建索引流程圖;

圖3為本發(fā)明實施例提供的一種poi數(shù)據(jù)檢索方法的全文檢索的處理流程圖;

圖4為本發(fā)明實施例提供的一種poi數(shù)據(jù)檢索裝置的結(jié)構(gòu)示意圖。

具體實施方式

如在說明書及權(quán)利要求當中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準則。如在通篇說明書及權(quán)利要求當中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達到所述技術(shù)效果。本發(fā)明的保護范圍當視所附權(quán)利要求所界定者為準。

每個poi包含四個方面的信息:名稱,類別,經(jīng)度,緯度,其中類別又分為大類,小類,比如poi數(shù)據(jù)包含100:餐飲服務(wù),200:公共設(shè)施,300:公司企業(yè),400:購物服務(wù),500:交通設(shè)施服務(wù),600:金融保險服務(wù),700: 科教文化服務(wù)等等大類,而在600:金融保險服務(wù)下又包含601:保險公司,602:金融保險服務(wù)機構(gòu),603:銀行,604:銀行相關(guān),605:證券公司,606:自動提款機等小類。

如圖1所示,本發(fā)明實施例提供的一種poi數(shù)據(jù)檢索方法包括:

s100:接收用戶輸入的位置信息。

這里所說的位置信息一般指的是poi的經(jīng)度和緯度信息,也就是poi的地理坐標。

s200:根據(jù)poi的位置信息,以及預(yù)設(shè)的查詢距離,在mangodb數(shù)據(jù)庫中,執(zhí)行查詢操作。

在該步驟中,具體的查詢操作步驟包括:

s210:在mangodb數(shù)據(jù)庫中建立以poi的位置信息為圓心,以預(yù)設(shè)的查詢距離為半徑的數(shù)據(jù)緩沖區(qū);

s220:在建立的數(shù)據(jù)緩沖區(qū)中查詢poi數(shù)據(jù)。

比如,輸入的poi位置信息,也就是地理坐標為:113.332205°e,23.156263°n。預(yù)設(shè)的查詢距離為1000米,則建立以113.332205°w,23.156263°n為圓心,以1000米為半徑的一個數(shù)據(jù)緩沖區(qū),在建立的數(shù)據(jù)緩沖區(qū)中查詢poi數(shù)據(jù)具體為:遍歷所建立的數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)。

具體查詢方法如下:

db.lbs.find({loc:{$near:{$geometry:{type:″point″,coordinates:[113.332205,23.156263]},$maxdistance:1000}}})

其中,lbs(locationbasedservice,基于位置的服務(wù))是mangodb數(shù)據(jù)庫的一個表。

在本發(fā)明實施例中,執(zhí)行步驟s200之前還包括:將poi母庫數(shù)據(jù)導(dǎo)入到mangodb數(shù)據(jù)庫中,導(dǎo)入到mangodb數(shù)據(jù)庫的字段包括:id,name,kind,address,tel,x,y,citycode,除了坐標x,y之外的字段id,name,kind,address,tel,citycode可以直接插入到mangodb,而因為地理坐標是二維結(jié)構(gòu),需要按照二維結(jié)構(gòu)存儲到mangodb數(shù)據(jù)庫中, 因此地理坐標x,y需要利用gdal開源庫將poi的x,y字段轉(zhuǎn)換成bson格式插入到mangodb中。具體轉(zhuǎn)換方法如下:

將母庫poi導(dǎo)入到mangodb數(shù)據(jù)庫中之后,需要建立索引,索引分為普通索引和空間索引,一般情況下,除地理坐標x,y之外的字段建立普通索引,地理坐標建立空間索引,普通索引如:db.lbs.ensureindex({name:1}),空間索引如:db.lbs.ensureindex({loc:″2dsphere″}),這里建立索引的目的是為了后續(xù)的查詢能夠快速進行。

在步驟s220中,可選地,將查詢結(jié)果按照距離所接收的poi的位置信息由近及遠輸出,具體操作步驟為:

s221:計算所查詢到的位置信息與poi的位置信息之間的距離;

s222:按照距離從小到大的順序輸出查詢結(jié)果。

可選地,輸出查詢結(jié)果的格式為json格式,然后從json格式的輸出結(jié)果中解析出id,name,kind,address,tel,x,y,citycode等字段,解析完畢后,執(zhí)行步驟s300:根據(jù)mangodb的查詢結(jié)果,在lucene中建立索引,并進行全文檢索,得到目標poi。在該步驟中,首先按照lucene的索引機制建立內(nèi)存索引庫,具體執(zhí)行為:

因為在該步驟中,直接利用lucene進行全文檢索,而不再需要執(zhí)行空間查詢的步驟,因此沒有必要把地理坐標存儲到內(nèi)存數(shù)據(jù)庫了。具體地,如圖2所示,創(chuàng)建索引的流程為首先將字符串string輸入分詞器analyzer進行分析,也就是對字符串string進行分詞,將字符串分成多個字段field,將分成的多個字段field組合成一個文檔document,也就是說,文檔document包含了mangodb數(shù)據(jù)庫的查詢結(jié)果中的各個字段,比如id,name,kind等字段,然后通過索引創(chuàng)建器indexwriter將文檔document寫入到內(nèi)存中,形成目錄directory,生成內(nèi)存索引數(shù)據(jù)庫。

經(jīng)過mangodb數(shù)據(jù)庫的初步查詢,即空間數(shù)據(jù)查詢之后,已經(jīng)縮小了poi數(shù)據(jù)檢索的范圍,再通過lucene的全文檢索,便可得到目標poi數(shù)據(jù)。舉例來說,如果檢索“北京四維圖新科技股份有限公司″,按照一般的文檢索的步驟如圖3所示,全文檢索的優(yōu)勢就在于對整個字符串進行分析檢索,并計算各個部分的權(quán)重,選出最相似的poi。例如,全文檢索“北京四維圖新科技股份有限公司”,按照非全文檢索的分詞算法,可檢索“北京”,“四維”,“圖”,“新”,“科技”,“股份”,“有限”,“公司”等關(guān)鍵字,因為“圖新”一般認為是未登陸詞,所以一般的非全文檢索的索引智能按照單個字分詞,而在lucene中,則會根據(jù)每條poi含有以上關(guān)鍵詞的數(shù)量、包含順序、關(guān)鍵詞出現(xiàn)位置等計算出所檢索到的數(shù)據(jù)和需要檢索的poi數(shù)據(jù)之間的相似度,并按照相似度的大小排序給出檢索結(jié)果。由上述實施例可以看出,本發(fā)明實施例提供的poi數(shù)據(jù)檢索方法,充分運用了mangodb數(shù)據(jù)庫對空間數(shù)據(jù)查詢的支持,以及l(fā)ucene對全文檢索的支持,將兩者的優(yōu)勢結(jié)合起來,提高了poi數(shù)據(jù)查詢的效率。

基于相同的發(fā)明構(gòu)思,本申請還提供了一種poi數(shù)據(jù)檢索裝置,包括:接收模塊410,用于接收用戶輸入的poi的位置信息;查詢模塊420,用于根據(jù)poi的位置信息,以及預(yù)設(shè)的查詢距離,在mangodb數(shù)據(jù)庫中執(zhí)行查詢;目標poi獲取模塊430,用于根據(jù)mangodb的查詢結(jié)果,在lucene中建立索引,并進行全文檢索,得到目標poi。

優(yōu)選地,前述的poi數(shù)據(jù)檢索裝置還包括導(dǎo)入模塊,用于將poi母庫數(shù)據(jù)導(dǎo)入到mangodb數(shù)據(jù)庫中。

優(yōu)選地,前述的poi數(shù)據(jù)檢索裝置中的查詢模塊420還包括數(shù)據(jù)緩沖區(qū)模塊,用于在mangodb數(shù)據(jù)庫中建立以poi的位置信息為圓心,以預(yù)設(shè)的查詢距離為半徑的數(shù)據(jù)緩沖區(qū);執(zhí)行模塊,用于在數(shù)據(jù)緩沖區(qū)建立模塊建立的數(shù)據(jù)緩沖區(qū)中,執(zhí)行查詢poi數(shù)據(jù)的步驟。

優(yōu)選地,前述poi數(shù)據(jù)檢索裝置還包括計算模塊,用于計算所查詢到的位置信息與poi的位置信息的距離;輸出模塊,用于按照距離從小到大的順序輸出查詢結(jié)果。

優(yōu)選地,前述的poi數(shù)據(jù)檢索裝置,還包括轉(zhuǎn)換模塊,用于將poi母庫中的位置數(shù)據(jù)由gdal開源庫將位置數(shù)據(jù)轉(zhuǎn)換成bson格式插入到mangodb數(shù)據(jù)庫中。

由上述實施例可以看出,本發(fā)明實施例提供的poi數(shù)據(jù)檢索裝置,用以實現(xiàn)poi數(shù)據(jù)檢索方法,充分運用了mangodb數(shù)據(jù)庫對空間數(shù)據(jù)查詢的支持,以及l(fā)ucene對全文檢索的支持,將兩者的優(yōu)勢結(jié)合起來,提高了poi數(shù)據(jù)查詢的效率。

上述說明示出并描述了本發(fā)明的若干優(yōu)選實施例,但如前所述,應(yīng)當理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護范圍內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
习水县| 雷山县| 迁安市| 弥勒县| 衡南县| 南岸区| 遵义县| 清丰县| 苍梧县| 万山特区| 怀来县| 闽清县| 田阳县| 化隆| 阳西县| 宜昌市| 卢湾区| 融水| 贵港市| 广元市| 察哈| 容城县| 河北省| 大名县| 星座| 柳江县| 西华县| 洪江市| 丹巴县| 灵川县| 海淀区| 梁平县| 郎溪县| 昌黎县| 武鸣县| 紫金县| 政和县| 永和县| 老河口市| 甘肃省| 桑植县|