專利名稱:興趣點(diǎn)檢索的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息檢索領(lǐng)域,特別涉及一種興趣點(diǎn)檢索的方法及裝置。
背景技術(shù):
POI (Point of Interest,興趣點(diǎn))檢索是指對(duì)感興趣的目標(biāo)進(jìn)行檢索。如對(duì)建筑物、道路、餐廳及公司等地點(diǎn)進(jìn)行檢索時(shí),通過(guò)查詢名稱,檢索出與該名稱匹配的地址。一條 POI記錄一般包括名稱、地址、所屬行政區(qū)域及所屬類別等內(nèi)容。為了使檢索到的結(jié)果更精確,現(xiàn)有技術(shù)實(shí)現(xiàn)了帶有屬性的POI檢索。POI的屬性包括行政區(qū)域?qū)傩院皖悇e屬性等,行政區(qū)域?qū)傩缘母Y(jié)點(diǎn)是“全國(guó)”,其子結(jié)點(diǎn)是省級(jí)(含直轄市、自治區(qū))行政區(qū)域,省級(jí)下面是市級(jí)行政區(qū)域,市級(jí)行政區(qū)域下面是區(qū)縣級(jí)行政區(qū)域等,類別屬性的根結(jié)點(diǎn)是“興趣點(diǎn)”, 其子節(jié)點(diǎn)是“餐飲服務(wù)”、“風(fēng)景名勝”等,而“餐飲服務(wù)”下面有“夾餐廳”、“中餐廳”等,“中餐廳”下面又有“粵菜”、“湘菜”等,這兩種屬性都具有嚴(yán)格的樹狀結(jié)構(gòu)。現(xiàn)有技術(shù)中帶有屬性的POI檢索方案如下現(xiàn)有技術(shù)一篩選法篩選法在檢索時(shí)先忽略檢索的屬性,只根據(jù)查詢?cè)~對(duì)應(yīng)的關(guān)鍵字檢索出所有與查詢?cè)~匹配的POI記錄,然后逐一檢查這些POI記錄的屬性是否與所檢索的屬性相同,如果相同,則保留該記錄,如果不相同,則記錄被篩掉。以行政區(qū)域內(nèi)檢索為例,當(dāng)檢索(廣東省+ 實(shí)驗(yàn)小學(xué))時(shí),先對(duì)查詢?cè)~“實(shí)驗(yàn)小學(xué)”進(jìn)行檢索,得到在全國(guó)范圍內(nèi)匹配的POI記錄,然后逐一檢查這些POI記錄是否在廣東省內(nèi),是則保留,不是則篩掉?,F(xiàn)有技術(shù)二 特殊關(guān)鍵詞法特殊關(guān)鍵詞法先建立包含屬性等特殊關(guān)鍵詞的倒排鏈表,當(dāng)進(jìn)行POI檢索時(shí),把用戶輸入的屬性和查詢?cè)~組裝成新的查詢?cè)~,然后根據(jù)新的查詢?cè)~進(jìn)行檢索,得到的結(jié)果就是最終結(jié)果。以行政區(qū)域內(nèi)檢索為例,當(dāng)用戶檢索(廣東省+實(shí)驗(yàn)小學(xué))時(shí),將其組裝成新的查詢?cè)~“廣東省,實(shí)驗(yàn)小學(xué)”,通過(guò)新的查詢?cè)~檢索出同時(shí)含有關(guān)鍵詞“廣東省”、“實(shí)驗(yàn)” 和“小學(xué)”的POI記錄,即為檢索的最終結(jié)果。在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺點(diǎn)在現(xiàn)有技術(shù)一的篩選法中,不考慮屬性得到的所有屬性下的POI記錄是非常多的,歸并出的結(jié)果也非常多,而與用戶指定的屬性相匹配的POI記錄卻相對(duì)少很多,如果每次都對(duì)關(guān)鍵詞對(duì)應(yīng)的所有屬性下的POI記錄進(jìn)行歸并及篩選,會(huì)做很多無(wú)用功,嚴(yán)重影響檢索性能,導(dǎo)致檢索效率低。以行政區(qū)域內(nèi)檢索為例,全國(guó)范圍內(nèi)與“實(shí)驗(yàn)小學(xué)”相匹配的 POI記錄有數(shù)千個(gè),而在深圳市內(nèi)與其相匹配的POI記錄只有數(shù)十個(gè),如果用戶檢索(深圳市+實(shí)驗(yàn)小學(xué)),檢索出來(lái)的大部分結(jié)果都會(huì)由于區(qū)域不匹配而被篩掉,檢索效率低。在現(xiàn)有技術(shù)二的特殊關(guān)鍵詞法中,屬性等特殊關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,實(shí)際上是這個(gè)屬性下的所有POI記錄的集合。而普通關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,則是與這個(gè)關(guān)鍵詞對(duì)應(yīng)的所有屬性下的POI記錄的集合。鏈表歸并的過(guò)程就是求這兩個(gè)集合的交集的過(guò)程。由于特殊關(guān)鍵詞法增加了特殊關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,則增加了歸并的鏈表數(shù)量,特別是當(dāng)特殊關(guān)鍵詞鏈表與普通關(guān)鍵詞鏈表都較長(zhǎng)、但它們的交集較小時(shí),進(jìn)行鏈表歸并的計(jì)算耗費(fèi)更多的時(shí)間和內(nèi)存,使檢索效率低。由此可見,無(wú)論是現(xiàn)有技術(shù)中的篩選法還是特殊關(guān)鍵詞法,其主要缺點(diǎn)都是性能差,檢索效率低。
發(fā)明內(nèi)容
為了增強(qiáng)帶有屬性的POI檢索的性能,提高檢索效率,本發(fā)明實(shí)施例提供了一種 POI檢索的方法及裝置。所述技術(shù)方案如下一方面,提供了一種興趣點(diǎn)檢索的方法,所述方法包括接收興趣點(diǎn)檢索的請(qǐng)求,所述請(qǐng)求包括查詢?cè)~和屬性;將所述查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞;獲取每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;根據(jù)所述每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和所述屬性,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;對(duì)獲取的所有子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為興趣點(diǎn)檢索的結(jié)果。其中,所述根據(jù)所述每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和所述屬性,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表,具體包括根據(jù)所述屬性在每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找,得到所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度;根據(jù)所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表。具體地,所述接收興趣點(diǎn)檢索的請(qǐng)求之前,還包括對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),根據(jù)編號(hào)后的興趣點(diǎn)建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,其中,所述倒排鏈表中的興趣點(diǎn)按照編號(hào)從小到大進(jìn)行排序。其中,所述對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),具體包括對(duì)興趣點(diǎn)的屬性進(jìn)行遍歷,按樹的線性化對(duì)屬性進(jìn)行編號(hào);按照屬性的編號(hào)順序?qū)λ鏊信d趣點(diǎn)進(jìn)行編號(hào),其中,具有相同屬性的興趣點(diǎn)進(jìn)行編號(hào)的順序是自由的。進(jìn)一步地,所述對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),根據(jù)編號(hào)后的興趣點(diǎn)建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表之后,還包括分別遍歷所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,記錄所述倒排鏈表中的所有興趣點(diǎn)包含的各屬性的編號(hào)及所述屬性在所述倒排鏈表中的起始位置,得到與所述關(guān)鍵詞和倒排鏈表對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引。另一方面,提供了一種興趣點(diǎn)檢索的裝置,所述裝置包括接收模塊,用于接收興趣點(diǎn)檢索的請(qǐng)求,所述請(qǐng)求包括查詢?cè)~和屬性;切分模塊,用于將所述接收模塊接收的查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞;第一獲取模塊,用于獲取所述切分模塊切分得到的每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;第二獲取模塊,用于根據(jù)所述第一獲取模塊獲取的每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和所述屬性,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;歸并模塊,用于對(duì)所述第二獲取模塊獲取的所有子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為興趣點(diǎn)檢索的結(jié)果。其中,所述第二獲取模塊,具體用于根據(jù)所述接收模塊接收的屬性在每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找,得到所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度; 根據(jù)所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表。具體地,所述接收模塊之前,還包括第一創(chuàng)建模塊,用于對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),根據(jù)編號(hào)后的興趣點(diǎn)建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,其中,所述倒排鏈表中的興趣點(diǎn)按照編號(hào)從小到大進(jìn)行排序。其中,所述第一創(chuàng)建模塊用于對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào)時(shí),具體用于對(duì)興趣點(diǎn)的屬性進(jìn)行遍歷,按樹的線性化對(duì)屬性進(jìn)行編號(hào);按照屬性的編號(hào)順序?qū)λ鏊信d趣點(diǎn)進(jìn)行編號(hào),其中,具有相同屬性的興趣點(diǎn)進(jìn)行編號(hào)的順序是自由的。進(jìn)一步地,所述第一創(chuàng)建模塊之后,還包括第二創(chuàng)建模塊,用于分別遍歷所述第一創(chuàng)建模塊建立的所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,記錄所述倒排鏈表中的所有興趣點(diǎn)包含的各屬性的編號(hào)及所述屬性在所述倒排鏈表中的起始位置,得到與所述關(guān)鍵詞和倒排鏈表對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引。本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是通過(guò)建立具有樹形結(jié)構(gòu)的倒排鏈表,根據(jù)屬性和查詢?cè)~在關(guān)鍵詞擴(kuò)展索引中找到屬性對(duì)應(yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度,并從倒排鏈表中獲取該子倒排鏈表,對(duì)其進(jìn)行與歸并得到檢索結(jié)果,由于進(jìn)行歸并的各子倒排鏈表是從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中取出的一段與檢索屬性相匹配的子鏈表,對(duì)其進(jìn)行歸并時(shí)大大減小了歸并的數(shù)量, 增強(qiáng)了檢索的性能,極大的提高了檢索效率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例一提供的POI檢索的方法流程圖;圖2是本發(fā)明實(shí)施例二提供的POI檢索的方法流程圖;圖3是本發(fā)明實(shí)施例二提供的樹形倒排索引文件建立的方法流程圖;圖4是本發(fā)明實(shí)施例二提供的行政區(qū)域編號(hào)的方法流程圖;圖5是本發(fā)明實(shí)施例二提供的關(guān)鍵詞擴(kuò)展索引建立的方法流程圖;圖6是本發(fā)明實(shí)施例三提供的第一種POI檢索的裝置示意圖;圖7是本發(fā)明實(shí)施例三提供的第二種POI檢索的裝置示意圖;圖8是本發(fā)明實(shí)施例三提供的第三種POI檢索的裝置示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例一本發(fā)明實(shí)施例提供了一種POI檢索的方法,參見圖1,方法流程具體如下101 接收興趣點(diǎn)檢索的請(qǐng)求,該請(qǐng)求包括查詢?cè)~和屬性;102 將該查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞;103 獲取每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;104 根據(jù)每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和屬性,從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;105:對(duì)獲取的所有子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為興趣點(diǎn)檢索的結(jié)^ ο本發(fā)明實(shí)施例提供的方法,通過(guò)建立具有樹形結(jié)構(gòu)的倒排鏈表,根據(jù)屬性和查詢?cè)~在關(guān)鍵詞擴(kuò)展索引中找到屬性對(duì)應(yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度,并從倒排鏈表中獲取該子倒排鏈表,對(duì)其進(jìn)行與歸并得到檢索結(jié)果,由于進(jìn)行歸并的各子倒排鏈表是從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中取出的一段與檢索屬性相匹配的子鏈表,對(duì)其進(jìn)行歸并時(shí)大大減小了歸并的數(shù)量,增強(qiáng)了檢索的性能,極大的提高了檢索效率。實(shí)施例二本發(fā)明實(shí)施例提供了一種POI檢索的方法,參見圖2,方法流程具體如下201 接收POI檢索的請(qǐng)求,該請(qǐng)求包括查詢?cè)~和屬性;具體地,接收用戶的POI檢索的請(qǐng)求,本發(fā)明實(shí)施例不對(duì)用戶輸入查詢?cè)~和屬性的形式進(jìn)行具體限定,如用戶可以用(查詢?cè)~+屬性)的形式進(jìn)行POI檢索。其中,檢索的屬性包括行政區(qū)域?qū)傩曰蝾悇e屬性等,且行政區(qū)域和POI類別都具有嚴(yán)格的樹狀結(jié)構(gòu)?;谛姓^(qū)域的檢索叫做行政區(qū)域內(nèi)檢索,指給定一個(gè)行政區(qū)域及查詢?cè)~,檢索出這個(gè)行政區(qū)域及其所有子行政區(qū)域中,所有與查詢?cè)~相匹配的POI記錄;基于類別的檢索叫做類別內(nèi)檢索,指給定一個(gè)POI類別及查詢?cè)~,檢索出這個(gè)POI類別及其所有子類別中,所有與查詢?cè)~相匹配的POI記錄。其中,POI類別表示各POI記錄所屬的種類, 如“餐飲服務(wù)”、“風(fēng)景名勝”或“公司企業(yè)”等。由于行政區(qū)域內(nèi)檢索與類別內(nèi)檢索的解決方法十分一致,都是應(yīng)用本發(fā)明實(shí)施例所提供的方法,因此下文僅以行政區(qū)域內(nèi)檢索為例進(jìn)行說(shuō)明,類別內(nèi)檢索和其它類似的基于樹形倒排索引的應(yīng)用同樣適用于本方法,本發(fā)明實(shí)施例對(duì)此不做具體限定。202 將請(qǐng)求中的查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞;具體地,以行政區(qū)域內(nèi)檢索為例,用戶以(行政區(qū)域+查詢?cè)~)的形式進(jìn)行檢索時(shí),如果用戶檢索(深圳市+實(shí)驗(yàn)小學(xué)),可以將查詢?cè)~“實(shí)驗(yàn)小學(xué)”切分成對(duì)應(yīng)的關(guān)鍵詞 “實(shí)驗(yàn)”和“小學(xué)”。203 獲取每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;其中,該關(guān)鍵詞擴(kuò)展索引中記錄了對(duì)應(yīng)的倒排鏈表中的所有POI包含的各屬性的編號(hào)及該屬性在該倒排鏈表中的起始位置。本發(fā)明實(shí)施例不對(duì)關(guān)鍵詞擴(kuò)展索引的存儲(chǔ)方式進(jìn)行具體限定,僅以采用有序數(shù)組進(jìn)行存儲(chǔ)的方式進(jìn)行說(shuō)明,還可以采用哈希表等其它存儲(chǔ)方式。關(guān)鍵詞擴(kuò)展索引的有序數(shù)組中的各元素記錄了屬性的編號(hào)以及該屬性在該倒排鏈表中的起始位置,還可以記錄該屬性在該倒排鏈表中的長(zhǎng)度。并且該有序數(shù)組中的元素按照屬性的編號(hào)從小到大進(jìn)行排序。其中,該屬性在該倒排鏈表中的長(zhǎng)度可以不事先保存,而是簡(jiǎn)單的從下一個(gè)元素的起始位置與當(dāng)前元素的起始位置相減而獲得,本發(fā)明實(shí)施例對(duì)此不作具體限定。具體地,該倒排鏈表中記錄了包含該關(guān)鍵詞的所有POI的編號(hào),這些編號(hào)是按照從小到大的順序進(jìn)行存儲(chǔ)的,并且具有同種屬性的POI的編號(hào)是連續(xù)存放在一起的,即在任一倒排鏈表中,任何一種屬性及其所有子屬性的POI編號(hào)都是連續(xù)存放在一起的。在本發(fā)明實(shí)施例中,關(guān)鍵詞、關(guān)鍵詞擴(kuò)展索引及倒排鏈表合起來(lái)稱為樹形倒排索引文件。其中,以關(guān)鍵詞為入口,關(guān)鍵詞指向關(guān)鍵詞擴(kuò)展索引,該關(guān)鍵詞擴(kuò)展索引再指向倒排鏈表。以行政區(qū)域內(nèi)檢索為例,關(guān)鍵詞擴(kuò)展索引的有序數(shù)組中的各元素記錄了行政區(qū)域的編號(hào)以及該行政區(qū)域?qū)?yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度,并且該有序數(shù)組中的元素按照行政區(qū)域的編號(hào)從小到大進(jìn)行排序。倒排鏈表中記錄的POI的編號(hào)是按照從小到大的順序進(jìn)行存儲(chǔ)的,且在任一倒排鏈表中,任何一個(gè)行政區(qū)域及其子行政區(qū)域的 POI編號(hào)都是連續(xù)存放在一起的。204:根據(jù)請(qǐng)求中的屬性在每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找,得到該屬性在倒排鏈表中的起始位置及長(zhǎng)度;具體地,根據(jù)請(qǐng)求中的屬性在每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找的方式可以采用有序數(shù)組的二分查找法,也可以采用其它方式,本發(fā)明實(shí)施例對(duì)此不作具體限定。具體地,根據(jù)請(qǐng)求中的屬性找到與該屬性對(duì)應(yīng)的編號(hào)后,通過(guò)二分查找法在關(guān)鍵詞擴(kuò)展索引中找出與該屬性編號(hào)相一致的元素。通過(guò)該元素得到該屬性在倒排鏈表中的起始位置及長(zhǎng)度,該長(zhǎng)度的獲取方式既可以為從記錄有該長(zhǎng)度的元素中直接獲取,也可以為從下一個(gè)元素的起始位置與當(dāng)前元素的起始位置相減而獲得,本發(fā)明實(shí)施例對(duì)此不作具體限定。以行政區(qū)域內(nèi)檢索為例,根據(jù)請(qǐng)求中的行政區(qū)域的編號(hào)在關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找,通過(guò)二分查找法在關(guān)鍵詞擴(kuò)展索引中找出與用戶指定行政區(qū)域的編號(hào)相一致的元素,此元素包含該行政區(qū)域?qū)?yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度等信息。205:根據(jù)該屬性在倒排鏈表中的起始位置及長(zhǎng)度,從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;其中,子倒排鏈表是倒排鏈表中與該屬性對(duì)應(yīng)的一段連續(xù)的子鏈表,根據(jù)該屬性在倒排鏈表中的起始位置及長(zhǎng)度得到。具體地,以行政區(qū)域內(nèi)檢索為例,如果用戶檢索(深圳市+實(shí)驗(yàn)小學(xué)),我們可以在關(guān)鍵詞“實(shí)驗(yàn)”和“小學(xué)”對(duì)應(yīng)的包含全國(guó)范圍內(nèi)的POI編號(hào)的倒排鏈表中,根據(jù)深圳市對(duì)應(yīng)的起始位置及長(zhǎng)度,從倒排鏈表中取出只包含深圳市及市內(nèi)各區(qū)的一段連續(xù)的子倒排鏈表。206:對(duì)獲取的所有子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為興趣點(diǎn)檢索的結(jié)^ ο其中,與歸并可以找出各子倒排鏈表中共同出現(xiàn)的POI編號(hào),根據(jù)該共同出現(xiàn)的 POI編號(hào)得到最終與屬性和查詢?cè)~相匹配的所有記錄。具體地,以行政區(qū)域內(nèi)檢索為例,將上述步驟得到的與關(guān)鍵詞“實(shí)驗(yàn)”和“小學(xué)”對(duì)應(yīng)的兩段只包含深圳市及市內(nèi)各區(qū)的子倒排鏈表進(jìn)行與歸并,找出各子倒排鏈表中共同出現(xiàn)的POI編號(hào),根據(jù)該共同出現(xiàn)的POI編號(hào)得到最終與(深圳市+實(shí)驗(yàn)小學(xué))相匹配的所
有記錄。進(jìn)一步地,在用戶進(jìn)行POI檢索之前,需要先建立樹形倒排索引文件。為本發(fā)明實(shí)施例提供的方法建立的樹形倒排索引文件具有明顯的樹狀特性,參見圖3,方法流程具體如下301 對(duì)POI的屬性進(jìn)行遍歷,按樹的線性化對(duì)屬性進(jìn)行編號(hào);其中,POI的屬性包括行政區(qū)域或POI的類別等,它們都具有嚴(yán)格的樹狀結(jié)構(gòu)。我們按深度優(yōu)先來(lái)遍歷屬性樹,按照遍歷的訪問(wèn)順序,對(duì)屬性從0開始編號(hào),直到所有節(jié)點(diǎn)遍歷結(jié)束,完成對(duì)屬性樹的線性化編號(hào)。該編號(hào)具有的重要特性是任何一種屬性及其所有子屬性的編號(hào)都在一個(gè)連續(xù)的區(qū)間內(nèi)。具體地,以行政區(qū)域內(nèi)檢索為例,參見圖4,“全國(guó)”是遍歷過(guò)程中第一個(gè)被訪問(wèn)的結(jié)點(diǎn),編號(hào)為0;“安徽省”是第二個(gè)被訪問(wèn)的結(jié)點(diǎn),編號(hào)為1,以此類推,直到全國(guó)范圍內(nèi)的最后一個(gè)行政區(qū)域被遍歷到。于是全國(guó)的行政區(qū)域都得到一個(gè)線性化編號(hào),且它們是連續(xù)的。在這種編號(hào)下有一個(gè)重要特性,即任何一個(gè)行政區(qū)域及其所有子行政區(qū)域的編號(hào)都在一個(gè)連續(xù)的區(qū)間內(nèi)。例如,“廣東省”及其下面所有子行政區(qū)域編號(hào)范圍是[101,150],“廣州市”及其下面所有子行政區(qū)域編號(hào)范圍是[102,110],特殊地,“全國(guó)”及其下面所有子行政區(qū)域編碼范圍是
(N為全國(guó)范圍內(nèi)的所有行政區(qū)域數(shù))。302:按照屬性的編號(hào)順序?qū)λ蠵OI進(jìn)行編號(hào),其中,具有相同屬性的POI進(jìn)行編號(hào)的順序是自由的;其中,由于每個(gè)POI都具有相應(yīng)的屬性,并且每種屬性都已經(jīng)按照上述方式進(jìn)行了編號(hào),因此對(duì)POI重新編號(hào),只需要根據(jù)POI的屬性,按照屬性的編號(hào)的先后順序?qū)OI 進(jìn)行編號(hào)即可,其中,對(duì)具有相同屬性的POI進(jìn)行編號(hào)時(shí),POI之間編號(hào)的先后順序是自由的。由此得到的POI編號(hào)具有的重要特性是任何一種屬性及其所有子屬性對(duì)應(yīng)的POI編號(hào)都在一個(gè)連續(xù)的區(qū)間內(nèi),且屬性編號(hào)較小的POI排在前面,屬性編號(hào)較大的POI排在后面。具體地,以行政區(qū)域內(nèi)檢索為例,先對(duì)行政區(qū)域編號(hào)為0的η個(gè)POI進(jìn)行編號(hào),
POI (a)的編號(hào)為0,POI (b)的編號(hào)為1,......, POI (η)的編號(hào)為η_1,然后對(duì)行政區(qū)域編
號(hào)為1的POI進(jìn)行編號(hào),POI (η+1)的編號(hào)為η,Ρ0Ι(η+2)的編號(hào)為η+1,以此類推,直到所有 POI編號(hào)完畢。其中,相同行政區(qū)域內(nèi)的POI進(jìn)行編號(hào)時(shí),POI之間編號(hào)的先后順序是自由
的,如對(duì)政區(qū)域編號(hào)為0的POI進(jìn)行編號(hào)時(shí),不對(duì)POI (a)、POI (b),......,POI (η)的編號(hào)
的先后順序進(jìn)行限定,還可以使POI (b)的編號(hào)為0,Ρ0Ι(η)的編號(hào)為1,......, POI (a)的
編號(hào)為n-1。由此得到的POI編號(hào)具有的重要特性是任何一個(gè)行政區(qū)域及其所有子行政區(qū)域?qū)?yīng)的POI編號(hào)都在一個(gè)連續(xù)的區(qū)間內(nèi),且行政區(qū)域編號(hào)為0的POI排在最前面(即編號(hào)較小),行政區(qū)域編號(hào)為1的POI緊隨其后(即編號(hào)較大),以此類推。303 完成對(duì)所有POI進(jìn)行編號(hào)后,根據(jù)編號(hào)后的POI建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表;具體地,根據(jù)編號(hào)后的POI建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表時(shí),把編號(hào)后的POI記
錄的文本信息切分成若干個(gè)關(guān)鍵詞(term),如terml, term2、term3、.......termN。以關(guān)
鍵詞為入口,每個(gè)關(guān)鍵詞對(duì)應(yīng)一條倒排鏈表,鏈表里記錄了出現(xiàn)這個(gè)關(guān)鍵詞的所有POI的編號(hào),并且POI編號(hào)是從小到大進(jìn)行排序的。由于POI是根據(jù)屬性樹的線性化編號(hào)進(jìn)行編號(hào)的,使POI的編號(hào)順序具有更強(qiáng)的特性,即在任一條倒排鏈表中,任何一種屬性及其所有子屬性對(duì)應(yīng)的POI編號(hào)都是連續(xù)存放在一起的,使倒排鏈表具有樹形結(jié)構(gòu)。以行政區(qū)域內(nèi)檢索為例,參見圖5,關(guān)鍵詞termX對(duì)應(yīng)的倒排鏈表(101,102,108, 110,111,113,117,800)中,POI編號(hào)是從小到大進(jìn)行排序的,且“廣東省”及其所有子行政區(qū)域(如廣州市、深圳市)對(duì)應(yīng)的POI編號(hào)是連續(xù)存放在一起的,“廣州市”及其所有子行政區(qū)域?qū)?yīng)的POI編號(hào)也是連續(xù)存放在一起的。304 根據(jù)關(guān)鍵詞對(duì)應(yīng)的倒排鏈表得到對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引。其中,分別遍歷各關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,將倒排鏈表中的所有興趣點(diǎn)包含的各屬性的編號(hào)及該屬性在該倒排鏈表中的起始位置記錄到關(guān)鍵詞擴(kuò)展索引中,得到與各關(guān)鍵詞和倒排鏈表對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引。具體地,本發(fā)明實(shí)施例不對(duì)關(guān)鍵詞擴(kuò)展索引的存儲(chǔ)方式進(jìn)行具體限定,僅以采用有序數(shù)組進(jìn)行存儲(chǔ)的方式進(jìn)行說(shuō)明,還可以采用哈希表等其它存儲(chǔ)方式。關(guān)鍵詞擴(kuò)展索弓I 的有序數(shù)組中的各元素記錄了屬性的編號(hào)以及該屬性對(duì)應(yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度,并且該有序數(shù)組中的元素按照屬性的編號(hào)從小到大進(jìn)行排序。其中,子倒排鏈表的長(zhǎng)度可以不事先保存,而是簡(jiǎn)單的從下一個(gè)元素的起始位置與當(dāng)前元素的起始位置相減而獲得。在本發(fā)明實(shí)施例中,關(guān)鍵詞、關(guān)鍵詞擴(kuò)展索引及倒排鏈表合起來(lái)稱為樹形倒排索引文件。其中,以關(guān)鍵詞為入口,關(guān)鍵詞指向關(guān)鍵詞擴(kuò)展索引,該關(guān)鍵詞擴(kuò)展索引再指向倒排鏈表。以行政區(qū)域內(nèi)檢索為例,參見圖5,關(guān)鍵詞擴(kuò)展索引的有序數(shù)組中的各元素記錄了行政區(qū)域的編號(hào)以及該行政區(qū)域?qū)?yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度,例如元素A記錄了全國(guó)范圍內(nèi)的POI在倒排鏈表中的起始位置及長(zhǎng)度,元素B記錄了廣東省內(nèi)的POI在倒排鏈表中的起始位置及長(zhǎng)度,元素C記錄了廣州市內(nèi)的POI在倒排鏈表中的起始位置及長(zhǎng)度,元素D記錄了深圳市內(nèi)的POI在倒排鏈表中的起始位置及長(zhǎng)度,以此類推。 并且該有序數(shù)組中的元素按照行政區(qū)域的編號(hào)從小到大進(jìn)行排序。本發(fā)明實(shí)施例提供的方法,通過(guò)建立具有樹形結(jié)構(gòu)的倒排鏈表,根據(jù)屬性和查詢?cè)~在關(guān)鍵詞擴(kuò)展索引中找到屬性對(duì)應(yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度,并從倒排鏈表中獲取該子倒排鏈表,對(duì)其進(jìn)行與歸并得到檢索結(jié)果,由于進(jìn)行歸并的各子倒排鏈表是從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中取出的一段與檢索屬性相匹配的子鏈表,對(duì)其進(jìn)行歸并時(shí)大大減小了歸并的數(shù)量,增強(qiáng)了檢索的性能,極大的提高了檢索效率。實(shí)施例三本發(fā)明實(shí)施例提供了一種POI檢索的裝置,參見圖6,該裝置包括接收模塊601,用于接收POI檢索的請(qǐng)求,該請(qǐng)求包括查詢?cè)~和屬性;切分模塊602,用于將接收模塊601接收的查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞;第一獲取模塊603,用于獲取切分模塊602切分得到的每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;第二獲取模塊604,用于根據(jù)第一獲取模塊603獲取的每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和屬性,從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;
歸并模塊605,用于對(duì)第二獲取模塊604獲取的所有子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為POI檢索的結(jié)果。其中,第二獲取模塊604,具體用于根據(jù)接收模塊601接收的屬性在每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找,得到該屬性在倒排鏈表中的起始位置及長(zhǎng)度;根據(jù)該屬性在倒排鏈表中的起始位置及長(zhǎng)度,從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表。具體地,參見圖7,接收模塊601之前,還包括第一創(chuàng)建模塊606,用于對(duì)所有POI按照屬性進(jìn)行編號(hào),根據(jù)編號(hào)后的POI建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,其中,該倒排鏈表中的POI按照編號(hào)從小到大進(jìn)行排序。其中,第一創(chuàng)建模塊606用于對(duì)所有POI按照屬性進(jìn)行編號(hào)時(shí),具體用于對(duì)POI的屬性進(jìn)行遍歷,按樹的線性化對(duì)屬性進(jìn)行編號(hào);按照屬性的編號(hào)順序?qū)λ蠵OI進(jìn)行編號(hào), 其中,具有相同屬性的POI進(jìn)行編號(hào)的順序是自由的。進(jìn)一步地,參見圖8,第一創(chuàng)建模塊606之后,還包括第二創(chuàng)建模塊607,用于分別遍歷第一創(chuàng)建模塊606建立的關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,記錄倒排鏈表中的所有POI包含的各屬性的編號(hào)及該屬性在倒排鏈表中的起始位置, 得到與關(guān)鍵詞和倒排鏈表對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引。綜上所述,本發(fā)明實(shí)施例通過(guò)建立具有樹形結(jié)構(gòu)的倒排鏈表,根據(jù)屬性和查詢?cè)~在關(guān)鍵詞擴(kuò)展索引中找到屬性對(duì)應(yīng)的子倒排鏈表在倒排鏈表中的起始位置及長(zhǎng)度,并從倒排鏈表中獲取該子倒排鏈表,對(duì)其進(jìn)行與歸并得到檢索結(jié)果,由于進(jìn)行歸并的各子倒排鏈表是從關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中取出的一段與檢索屬性相匹配的子鏈表,對(duì)其進(jìn)行歸并時(shí)大大減小了歸并的數(shù)量,增強(qiáng)了檢索的性能,極大的提高了檢索效率。需要說(shuō)明的是上述實(shí)施例提供的POI檢索的裝置在進(jìn)行POI檢索時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的POI檢索的裝置與POI檢索的方法實(shí)施例屬于同一構(gòu)思, 其具體實(shí)現(xiàn)過(guò)程詳見方法實(shí)施例,這里不再贅述。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。本發(fā)明實(shí)施例中的全部或部分步驟,可以利用軟件實(shí)現(xiàn),相應(yīng)的軟件程序可以存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如光盤或硬盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種興趣點(diǎn)檢索的方法,其特征在于,所述方法包括 接收興趣點(diǎn)檢索的請(qǐng)求,所述請(qǐng)求包括查詢?cè)~和屬性; 將所述查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞;獲取每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;根據(jù)所述每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和所述屬性,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;對(duì)獲取的所有子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為興趣點(diǎn)檢索的結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和所述屬性,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表,具體包括根據(jù)所述屬性在每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找,得到所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度;根據(jù)所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表。
3.根據(jù)權(quán)利要求1或權(quán)利要求2所述的方法,其特征在于,所述接收興趣點(diǎn)檢索的請(qǐng)求之前,還包括對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),根據(jù)編號(hào)后的興趣點(diǎn)建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,其中,所述倒排鏈表中的興趣點(diǎn)按照編號(hào)從小到大進(jìn)行排序。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),具體包括對(duì)興趣點(diǎn)的屬性進(jìn)行遍歷,按樹的線性化對(duì)屬性進(jìn)行編號(hào);按照屬性的編號(hào)順序?qū)λ鏊信d趣點(diǎn)進(jìn)行編號(hào),其中,具有相同屬性的興趣點(diǎn)進(jìn)行編號(hào)的順序是自由的。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),根據(jù)編號(hào)后的興趣點(diǎn)建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表之后,還包括分別遍歷所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,記錄所述倒排鏈表中的所有興趣點(diǎn)包含的各屬性的編號(hào)及所述屬性在所述倒排鏈表中的起始位置,得到與所述關(guān)鍵詞和倒排鏈表對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引。
6.一種興趣點(diǎn)檢索的裝置,其特征在于,所述裝置包括接收模塊,用于接收興趣點(diǎn)檢索的請(qǐng)求,所述請(qǐng)求包括查詢?cè)~和屬性; 切分模塊,用于將所述接收模塊接收的查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞; 第一獲取模塊,用于獲取所述切分模塊切分得到的每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;第二獲取模塊,用于根據(jù)所述第一獲取模塊獲取的每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和所述屬性,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;歸并模塊,用于對(duì)所述第二獲取模塊獲取的所有子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為興趣點(diǎn)檢索的結(jié)果。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第二獲取模塊,具體用于根據(jù)所述接收模塊接收的屬性在每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引上進(jìn)行查找,得到所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度;根據(jù)所述屬性在所述倒排鏈表中的起始位置及長(zhǎng)度,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表。
8.根據(jù)權(quán)利要求6或權(quán)利要求7所述的裝置,其特征在于,所述接收模塊之前,還包括第一創(chuàng)建模塊,用于對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào),根據(jù)編號(hào)后的興趣點(diǎn)建立所有關(guān)鍵詞對(duì)應(yīng)的倒排鏈表,其中,所述倒排鏈表中的興趣點(diǎn)按照編號(hào)從小到大進(jìn)行排序。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一創(chuàng)建模塊用于對(duì)所有興趣點(diǎn)按照屬性進(jìn)行編號(hào)時(shí),具體用于對(duì)興趣點(diǎn)的屬性進(jìn)行遍歷,按樹的線性化對(duì)屬性進(jìn)行編號(hào);按照屬性的編號(hào)順序?qū)λ鏊信d趣點(diǎn)進(jìn)行編號(hào),其中,具有相同屬性的興趣點(diǎn)進(jìn)行編號(hào)的順序是自由的。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一創(chuàng)建模塊之后,還包括第二創(chuàng)建模塊,用于分別遍歷所述第一創(chuàng)建模塊建立的所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表, 記錄所述倒排鏈表中的所有興趣點(diǎn)包含的各屬性的編號(hào)及所述屬性在所述倒排鏈表中的起始位置,得到與所述關(guān)鍵詞和倒排鏈表對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引。
全文摘要
本發(fā)明公開了一種興趣點(diǎn)檢索的方法及裝置,屬于信息檢索領(lǐng)域。所述方法包括接收興趣點(diǎn)檢索的請(qǐng)求,所述請(qǐng)求包括查詢?cè)~和屬性;將所述查詢?cè)~切分成對(duì)應(yīng)的關(guān)鍵詞;獲取每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和倒排鏈表;根據(jù)所述每個(gè)關(guān)鍵詞對(duì)應(yīng)的關(guān)鍵詞擴(kuò)展索引和所述屬性,從所述關(guān)鍵詞對(duì)應(yīng)的倒排鏈表中獲取子倒排鏈表;對(duì)所有獲取的子倒排鏈表進(jìn)行與歸并,歸并后的結(jié)果即為興趣點(diǎn)檢索的結(jié)果。所述裝置包括接收模塊、切分模塊、第一獲取模塊、第二獲取模塊和歸并模塊。本發(fā)明通過(guò)建立關(guān)鍵詞擴(kuò)展索引和具有樹形結(jié)構(gòu)的倒排鏈表,在檢索時(shí)獲取子倒排鏈表并歸并,使歸并的數(shù)量大大減少,增強(qiáng)了檢索的性能,極大的提高了檢索效率。
文檔編號(hào)G06F17/30GK102456055SQ20101052931
公開日2012年5月16日 申請(qǐng)日期2010年10月28日 優(yōu)先權(quán)日2010年10月28日
發(fā)明者江紅英, 熊科浪, 王建宇, 王景剛 申請(qǐng)人:騰訊科技(深圳)有限公司