亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種文檔存儲、檢索方法及裝置與流程

文檔序號:12364134閱讀:206來源:國知局
一種文檔存儲、檢索方法及裝置與流程
本發(fā)明涉及計算機(jī)
技術(shù)領(lǐng)域
,尤其涉及一種文檔存儲方法及裝置,同時還涉及一種文檔檢索方法及裝置。
背景技術(shù)
:隨著信息技術(shù)的發(fā)展進(jìn)步,對信息資源的管理是一項綜合性的、多學(xué)科交叉的工作。其中對于信息的檢索往往要占整個信息資源管理工作量的一半以上?,F(xiàn)有的信息檢索系統(tǒng)通常是基于精確索引以及結(jié)構(gòu)化條件進(jìn)行檢索。然而隨著大數(shù)據(jù)和云技術(shù)的普及,由于信息的形式多種多樣,在這種條件下,目前的檢索技術(shù)明顯跟不上步伐,因此對于快速模糊檢索文檔的需求越來越高。目前使用模糊檢索的通常是一些專業(yè)的搜索公司,例如百度、谷歌。然而這些專業(yè)的搜索公司通常是面向網(wǎng)頁的,并且檢索系統(tǒng)的規(guī)模非常龐大和復(fù)雜,不能滿足中小規(guī)模的檢索需求。而目前中小規(guī)模的檢索服務(wù)通常是基于lucene。然而,基于lucene的檢索服務(wù)雖然簡單小巧,但是由于是基于磁盤操作,索引重建費時,搜索速度不夠快,即使固態(tài)硬盤技術(shù)使之有了提高。因此,目前急需一種快速的模糊檢索方法。技術(shù)實現(xiàn)要素:本發(fā)明實施例提供一種文檔存儲、檢索方法及裝置,用以解決現(xiàn)有技術(shù)中中小規(guī)模的檢索服務(wù)效率低的問題。為實現(xiàn)上述發(fā)明目的,本發(fā)明采用下述的技術(shù)方案:依據(jù)本發(fā)明的一個方面,提供一種文檔存儲方法,包括如下步驟:提取文檔的關(guān)鍵字;根據(jù)所述文檔的內(nèi)容生成標(biāo)識信息;獲取所述文檔的存儲信息;將所述關(guān)鍵字與所述文檔標(biāo)識的鍵值對、所述文檔標(biāo)識與所述存儲信息的鍵值對作為所述文檔的索引存儲于數(shù)據(jù)庫中。進(jìn)一步地,所述提取文檔的關(guān)鍵字,具體包括:對文檔內(nèi)容進(jìn)行分詞處理,計算分詞后每個詞在文檔內(nèi)容中的權(quán)值;篩選出權(quán)值不小于第一預(yù)設(shè)閾值的詞語,所述詞語即為所述文檔的關(guān)鍵字。進(jìn)一步地,所述數(shù)據(jù)庫包括內(nèi)存數(shù)據(jù)庫以及mysql數(shù)據(jù)庫;其中,所述內(nèi)存數(shù)據(jù)庫存儲訪問熱度大于第二預(yù)設(shè)閾值的文檔的索引;所述mysql數(shù)據(jù)庫存儲所有文檔的索引。進(jìn)一步地,所述方法還包括:根據(jù)所述訪問熱度對所述數(shù)據(jù)庫存儲的索引進(jìn)行調(diào)整;當(dāng)所述內(nèi)存數(shù)據(jù)庫中文檔的訪問熱度小于或等于第二預(yù)設(shè)閾值時,則將所述文檔的索引刪除;當(dāng)所述mysql數(shù)據(jù)庫中文檔的訪問熱度大于第二預(yù)設(shè)閾值時,則將所述文檔的索引存儲至所述內(nèi)存數(shù)據(jù)庫中。進(jìn)一步地,所述訪問熱度的計算公式為:N=t+hits*a1+{w(key1)+w(key2)+…+w(keyn)}其中,N為所述訪問熱度;t為所述文檔的最近訪問時間;w(keyn)為檢索內(nèi)容關(guān)鍵字keyn的熱度;hits為所述文檔的訪問次數(shù);a1為第一調(diào)整系數(shù)。依據(jù)本發(fā)明的一個方面,提供一種文檔檢索方法,基于上述的文檔存儲方法存儲的數(shù)據(jù)庫進(jìn)行檢索,所述文檔檢索方法包括:提取檢索內(nèi)容關(guān)鍵字;根據(jù)所述數(shù)據(jù)庫中存儲的關(guān)鍵字與文檔標(biāo)識鍵值對,查找所述檢索內(nèi)容關(guān)鍵字所對應(yīng)的目標(biāo)文檔標(biāo)識;根據(jù)所述數(shù)據(jù)庫中的存儲文檔標(biāo)識與存儲信息鍵值對,查找所述目標(biāo)文檔標(biāo)識對應(yīng)的存儲信息,并根據(jù)所述存儲信息獲取目標(biāo)文檔。進(jìn)一步地,所述提取檢索內(nèi)容關(guān)鍵字,具體包括:對所述檢索內(nèi)容進(jìn)行分詞,根據(jù)預(yù)先存儲的語料信息獲取分詞后每個詞語的權(quán)值;篩選出權(quán)值不小于第三預(yù)設(shè)閾值的詞語,所述詞語即為所述檢索內(nèi)容關(guān)鍵字。進(jìn)一步地,所述查找檢索內(nèi)容關(guān)鍵字所對應(yīng)的目標(biāo)文檔標(biāo)識,具體包括:判斷所述檢索內(nèi)容中是否包括符號信息,當(dāng)所述檢索內(nèi)容中包括符號信息時,提取檢索內(nèi)容中的符號信息,并識別所述符號信息的表達(dá)含義;根據(jù)所述表達(dá)含義確定所述檢索內(nèi)容關(guān)鍵字間的邏輯關(guān)系;根據(jù)所述檢索內(nèi)容關(guān)鍵字間的邏輯關(guān)系,對檢索內(nèi)容關(guān)鍵字所對應(yīng)的文檔標(biāo)識進(jìn)行篩選,篩選后的文檔標(biāo)識即為所述目標(biāo)文檔標(biāo)識。進(jìn)一步地,所述方法還包括:根據(jù)所述目標(biāo)文檔標(biāo)識獲取目標(biāo)文檔的緩存信息;其中,所述緩存信息包括檢索內(nèi)容關(guān)鍵字的熱度和所述檢索內(nèi)容關(guān)鍵字在所述目標(biāo)文檔中出現(xiàn)次數(shù);根據(jù)所述目標(biāo)文檔的緩存信息計算所述目標(biāo)文檔與所述檢索內(nèi)容關(guān)鍵字的相關(guān)度;根據(jù)所述相關(guān)度對所述目標(biāo)文檔進(jìn)行排序。進(jìn)一步地,所述相關(guān)度的計算公式為:Q={W(key1)*n1+W(key2)*n2+….+W(keyi)*ni}*a2其中,Q為所述相關(guān)度;W(keyi)為檢索內(nèi)容關(guān)鍵字keyi的熱度;ni為所述檢索內(nèi)容關(guān)鍵字keyi在目標(biāo)文檔的出現(xiàn)次數(shù);a2為第二調(diào)整系數(shù)。進(jìn)一步地,當(dāng)所述數(shù)據(jù)庫包括內(nèi)存數(shù)據(jù)庫和mysql數(shù)據(jù)庫時;首先從所述內(nèi)存數(shù)據(jù)庫中獲取檢索文檔的索引;若所述內(nèi)存數(shù)據(jù)庫查找不到所述索引時,從所述mysql數(shù)據(jù)庫中查找。依據(jù)本發(fā)明的一個方面,提供一種文檔存儲裝置,包括:提取單元,用于提取文檔的關(guān)鍵字;生成單元,用于根據(jù)所述文檔的內(nèi)容生成標(biāo)識信息;獲取單元,用于獲取所述文檔的存儲信息;存儲單元,用于將所述關(guān)鍵字與所述文檔標(biāo)識的鍵值對、所述文檔標(biāo)識與所述存儲信息的鍵值對作為所述文檔的索引存儲于數(shù)據(jù)庫中。進(jìn)一步地,所述提取單元具體用于:對文檔內(nèi)容進(jìn)行分詞處理,計算分詞后每個詞在文檔內(nèi)容中的權(quán)值;篩選出權(quán)值不小于第一預(yù)設(shè)閾值的詞語,所述詞語即為所述文檔的關(guān)鍵字。進(jìn)一步地,所述數(shù)據(jù)庫包括內(nèi)存數(shù)據(jù)庫以及mysql數(shù)據(jù)庫;其中,所述內(nèi)存數(shù)據(jù)庫存儲訪問熱度大于第二預(yù)設(shè)閾值的文檔的索引;所述mysql數(shù)據(jù)庫存儲所有文檔的索引。進(jìn)一步地,所述裝置還包括調(diào)整單元,用于根據(jù)所述訪問熱度對所述數(shù)據(jù)庫存儲的索引進(jìn)行調(diào)整;當(dāng)所述內(nèi)存數(shù)據(jù)庫中文檔的訪問熱度小于或等于第二預(yù)設(shè)閾值時,則將所述文檔的索引刪除;當(dāng)所述mysql數(shù)據(jù)庫中文檔的訪問熱度大于第二預(yù)設(shè)閾值時,則將所述文檔的索引存儲至所述內(nèi)存數(shù)據(jù)庫中。進(jìn)一步地,所述調(diào)整單元計算所述訪問熱度的公式為:N=t+hits*a1+{w(key1)+w(key2)+…+w(keyn)}其中,N為所述訪問熱度;t為所述文檔的最近訪問時間;w(keyn)為檢索內(nèi)容關(guān)鍵字keyn的熱度;hits為所述文檔的訪問次數(shù);a1為第一調(diào)整系數(shù)。依據(jù)本發(fā)明的一個方面,提供一種文檔檢索裝置,基于上述的文檔存儲裝置進(jìn)行檢索,所述文檔檢索裝置包括:提取模塊,用于提取檢索內(nèi)容關(guān)鍵字;第一查找模塊,用于根據(jù)所述文檔存儲裝置存儲的關(guān)鍵字與文檔標(biāo)識鍵值對,查找所述檢索內(nèi)容關(guān)鍵字所對應(yīng)的目標(biāo)文檔標(biāo)識;第二查找模塊,用于根據(jù)所述文檔存儲裝置存儲的文檔標(biāo)識與存儲信息鍵值對,查找所述目標(biāo)文檔標(biāo)識對應(yīng)的存儲信息,并根據(jù)所述存儲信息獲取目標(biāo)文檔。進(jìn)一步地,所述提取模塊具體用于:對所述檢索內(nèi)容進(jìn)行分詞,根據(jù)預(yù)先存儲的語料信息獲取分詞后每個詞語的權(quán)值;篩選出權(quán)值不小于第三預(yù)設(shè)閾值的詞語,所述詞語即為所述檢索內(nèi)容關(guān)鍵字。進(jìn)一步地,所述第一查找模塊具體用于:判斷所述檢索內(nèi)容中是否包括符號信息,當(dāng)所述檢索內(nèi)容中包括符號信息時,提取檢索內(nèi)容中的符號信息,并識別所述符號信息的表達(dá)含義;根據(jù)所述表達(dá)含義確定所述檢索內(nèi)容關(guān)鍵字間的邏輯關(guān)系;根據(jù)所述檢索內(nèi)容關(guān)鍵字間的邏輯關(guān)系,對檢索內(nèi)容關(guān)鍵字所對應(yīng)的文檔標(biāo)識進(jìn)行篩選,篩選后的文檔標(biāo)識即為所述目標(biāo)文檔標(biāo)識。進(jìn)一步地,所述裝置還包括排序模塊,具體用于:根據(jù)所述目標(biāo)文檔標(biāo)識獲取目標(biāo)文檔的緩存信息;其中,所述緩存信息包括檢索內(nèi)容關(guān)鍵字的熱度和所述檢索內(nèi)容關(guān)鍵字在所述目標(biāo)文檔中出現(xiàn)次數(shù);根據(jù)所述目標(biāo)文檔的緩存信息計算所述目標(biāo)文檔與所述檢索內(nèi)容關(guān)鍵字的相關(guān)度;根據(jù)所述相關(guān)度對所述目標(biāo)文檔進(jìn)行排序。進(jìn)一步地,所述排序模塊計算相關(guān)度的公式為:Q={W(key1)*n1+W(key2)*n2+….+W(keyi)*ni}*a2其中,Q為所述相關(guān)度;W(keyi)為檢索內(nèi)容關(guān)鍵字keyi的熱度;ni為所述檢索內(nèi)容關(guān)鍵字keyi在目標(biāo)文檔的出現(xiàn)次數(shù);a2為第二調(diào)整系數(shù)。進(jìn)一步地,當(dāng)所述文檔存儲裝置包括內(nèi)存數(shù)據(jù)庫和mysql數(shù)據(jù)庫時,所述第一查找模塊首先從所述內(nèi)存數(shù)據(jù)庫中獲取檢索文檔的索引;若所述內(nèi)存數(shù)據(jù)庫查找不到所述索引時,從所述mysql數(shù)據(jù)庫中查找。本發(fā)明具有以下有益效果:本發(fā)明實施例所提供的文檔存儲、檢索方法及裝置,對數(shù)據(jù)存儲結(jié)構(gòu)進(jìn)行了優(yōu)化,在數(shù)據(jù)庫中建立文檔的關(guān)鍵字與文檔標(biāo)識的鍵值對、文檔標(biāo)識與存儲信息的鍵值對。根據(jù)文檔的關(guān)鍵字、文檔標(biāo)識、存儲信息之間的對應(yīng)關(guān)系,可以檢索到對應(yīng)的文件信息,從而實現(xiàn)檢索目的。本發(fā)明中通過將文檔內(nèi)容關(guān)鍵字作為文檔信息的檢索信息,而非文件名稱,滿足了文檔模糊檢索的需求。此外,通過采用鍵值對的形式存儲文檔信息,結(jié)構(gòu)簡單,可以滿足中小公司對于模糊檢索需求,同時有效提高檢索的效率。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例中文檔存儲方法的流程圖;圖2為本發(fā)明一具體實施例中文檔存儲方法的時序流程圖;圖3為本發(fā)明實施例中文檔檢索方法的流程圖;圖4為本發(fā)明一具體實施例的文檔檢索方法的時序流程圖;圖5為本發(fā)明實施例中文檔存儲裝置的結(jié)構(gòu)框圖;圖6為本發(fā)明實施例中文檔檢索裝置的結(jié)構(gòu)框圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。實施例1本發(fā)明實施例提供一種文檔存儲方法,參見圖1,具體包括如下步驟:步驟101,提取文檔的關(guān)鍵字。在該步驟中,在提取文檔的關(guān)鍵字時,對文檔內(nèi)容進(jìn)行分詞處理,計算分詞后每個詞在文檔內(nèi)容中的權(quán)值;篩選出權(quán)值不小于第一預(yù)設(shè)閾值的詞語,詞語即為文檔的關(guān)鍵字。具體地,可以利用分詞器將文檔內(nèi)容切割為一個個獨立的詞語。對于分詞器已經(jīng)為非常成熟的技術(shù),因此本發(fā)明采用現(xiàn)有的分詞器即可實現(xiàn)分詞處理,例如ICTCLAS(InstituteofComputingTechnology,ChineseLexicalAnalysisSystem,漢語詞法分析系統(tǒng))、HTTPCWS(HTTPChineseWordSegmentation,基于HTTP的中文分詞系統(tǒng))。在除了進(jìn)行分詞工作外,還需要去除查詢內(nèi)容中無意義或者重要度較低的一些詞語,例如“啊”、“的”等無特殊意思的詞,以達(dá)到消除干擾的目的,提高檢索精度。具體地,根據(jù)每個分詞后的詞語在整個文檔中的權(quán)值確定該詞語重要度。對于確定詞語重要度的可以采用TF-IDF函數(shù)或者對數(shù)函數(shù)等進(jìn)行計算。具體的計算過程已屬于本領(lǐng)域技術(shù)人員所熟知的技術(shù),這里不再贅述。步驟102,根據(jù)文檔的內(nèi)容生成文檔標(biāo)識。在該步驟中,文檔標(biāo)識采用哈希值Hash表示。hash是根據(jù)文檔的內(nèi)容的數(shù)據(jù)通過邏輯運算得到的數(shù)值,不同的文檔(即使是相同的文檔名)得到的hash值是不同的,所以hash值就成了每一個文檔的標(biāo)識。對于哈希值的生成過程已屬于本領(lǐng)域技術(shù)人員所熟知的技術(shù),常用的算法包括MD4、MD5、SHA-1等,這里不再進(jìn)行贅述。步驟103,獲取文檔的存儲信息??蛇x地,文檔的存儲信息包括文檔名、創(chuàng)建日期、修改日期、版本信息、存儲路徑以及文檔大小等。步驟104,將關(guān)鍵字與文檔標(biāo)識的鍵值對、文檔標(biāo)識與存儲信息的鍵值對作為文檔的索引存儲于數(shù)據(jù)庫中。在該步驟中,文檔的索引具體的存儲形式采用鍵值對形式。鍵值對的存儲方式結(jié)構(gòu)簡單,對數(shù)據(jù)存儲結(jié)構(gòu)進(jìn)行了優(yōu)化,可以有效滿足中小企業(yè)的檢索需求,同時提供檢索的效率。具體地,數(shù)據(jù)庫包括內(nèi)存數(shù)據(jù)庫以及mysql數(shù)據(jù)庫;其中,內(nèi)存數(shù)據(jù)庫中存儲訪問熱度大于第二預(yù)設(shè)閾值的文檔的索引;mysql數(shù)據(jù)庫則存儲所有文檔的索引。本發(fā)明通過使用內(nèi)存數(shù)據(jù)庫配合mysql數(shù)據(jù)庫,對存儲的文檔的索引進(jìn)行冷熱分離,提高檢索的速度及效率。進(jìn)一步地,在檢索時,首先在內(nèi)存數(shù)據(jù)庫中檢索,再從mysql數(shù)據(jù)庫中檢索。這樣基于內(nèi)存訪問速度較快的優(yōu)勢,優(yōu)先從內(nèi)存數(shù)據(jù)庫中檢索訪問熱度較高的文檔,可以有效提高檢索的效率,同時還可以有效避免lucene檢索過程中的反復(fù)磁盤操作的問題。進(jìn)一步地,在檢索過程中需要根據(jù)訪問熱度對數(shù)據(jù)庫存儲的索引進(jìn)行更新:當(dāng)內(nèi)存數(shù)據(jù)庫中文檔的訪問熱度小于或等于第二預(yù)設(shè)閾值時,則將該文檔的索引刪除;當(dāng)mysql數(shù)據(jù)庫中文檔的訪問熱度大于第二預(yù)設(shè)閾值時,則將該文檔的索引存儲至內(nèi)存數(shù)據(jù)庫中。其中,當(dāng)訪問熱度小于或等于第二預(yù)設(shè)閾值時,將索引從內(nèi)存數(shù)據(jù)庫刪除淘汰。對于從內(nèi)存中淘汰的數(shù)據(jù)并不是不需要了,而是暫時訪問頻度低,重要度下降,因此淘汰的文檔中與訪問熱度相關(guān)的信息(文檔的最近訪問時間、訪問次數(shù)等信息,后文中關(guān)于數(shù)據(jù)庫的存儲結(jié)構(gòu)中有介紹)需重新寫入mysql數(shù)據(jù)庫中,對mysql數(shù)據(jù)庫中存儲的文檔的訪問熱度的相關(guān)信息進(jìn)行更新?;谏鲜隹芍瑑?nèi)存數(shù)據(jù)庫所處理的數(shù)據(jù)通常是“短暫”的,即有一定時間有更新,過時則有新的數(shù)據(jù)產(chǎn)生?;趦?nèi)存數(shù)據(jù)數(shù)據(jù)讀寫速度快的優(yōu)勢,通過處理熱度高的索引信息,可以有效提高數(shù)據(jù)訪問速度,提高應(yīng)用的性能。而mysql數(shù)據(jù)庫處理永久、穩(wěn)定的數(shù)據(jù),處理實時數(shù)據(jù)就相對少一些,保證數(shù)據(jù)的可靠性和穩(wěn)定性。具體地,訪問熱度的計算公式如下:N=t+hits*a1+{w(key1)+w(key2)+…+w(keyn)}其中,N為訪問熱度;t為文檔的最近訪問時間;hits為訪問次數(shù);w(keyn)為文檔包括關(guān)鍵字keyn時,而在檢索執(zhí)行過程中關(guān)鍵字keyn作為檢索內(nèi)容關(guān)鍵字時,對應(yīng)的熱度值。該熱度信息可以為檢索次數(shù)、檢索頻率等檢索相關(guān)的權(quán)值信息,也可以為語料庫中關(guān)鍵字的權(quán)值信息,這里不做限定。a1為第一調(diào)整系數(shù)。對于第一調(diào)整系數(shù),根據(jù)大量的檢索結(jié)果進(jìn)行確定。在實際檢索過程中,可以根據(jù)檢索需要進(jìn)行調(diào)整。需要說明的是,本發(fā)明實施例中,對于步驟101、步驟102及步驟103的順序僅用于解釋說明,不做具體的限定。任何對于步驟101、步驟102及步驟103的執(zhí)行順序的調(diào)整,都在本發(fā)明的保護(hù)范圍之內(nèi)。圖2為本發(fā)明一個具體實施例中文檔存儲方法的時序流程圖,具體包括如下步驟:步驟201,打開文檔,提取文檔的內(nèi)容。步驟202,對文檔的內(nèi)容進(jìn)行分詞處理,計算分詞后每個詞匯在該文檔中的權(quán)重值。在給定的閾值范圍內(nèi),根據(jù)權(quán)重值去掉重要度低的關(guān)鍵字。步驟203,根據(jù)文檔內(nèi)容生成哈希值。步驟204,將文檔的哈希值、存儲信息以key/value的形式,分別保存至內(nèi)存數(shù)據(jù)庫和mysql數(shù)據(jù)庫中。步驟205,將文檔關(guān)鍵字、hash值以key/value的形式分別存入內(nèi)存數(shù)據(jù)庫和mysql數(shù)據(jù)庫中。步驟206,將文檔按照存儲路徑存儲到指定位置,存儲流程結(jié)束。實施例2本發(fā)明實施例所提供的文檔檢索方法,采用模糊檢索的方式,根據(jù)實施例1中的文檔存儲方法中數(shù)據(jù)庫建立的文檔的索引來檢索文檔,因此,在數(shù)據(jù)庫中預(yù)先存儲包括關(guān)鍵字與文檔標(biāo)識鍵值對、文檔標(biāo)識與存儲信息鍵值對的文檔索引。參見圖3,本實施例所提供的文檔檢索方法,具體包括步驟:步驟301,提取檢索內(nèi)容關(guān)鍵字。在該步驟中,用戶輸入要檢索的內(nèi)容,可能是某個確定的詞,也有可能是句子,也可能檢索表達(dá)式。其中,首先對檢索內(nèi)容進(jìn)行分詞處理。實施例1中已經(jīng)提到具體分詞處理實現(xiàn)方式,這里不再進(jìn)行說明。接著對檢索內(nèi)容進(jìn)行分詞后,需要獲取分詞后每個詞語的權(quán)值。其中,在數(shù)據(jù)庫中預(yù)先設(shè)置了所有詞語的語料信息,包含詞語及該詞語相關(guān)信息,例如數(shù)據(jù)表項及權(quán)值信息,具體的存儲形式可以參見表1。根據(jù)該語料信息直接查詢分詞詞語的權(quán)值信息,并篩選出權(quán)值不小于第三預(yù)設(shè)閾值的詞語作為檢索內(nèi)容關(guān)鍵字。詞語編碼數(shù)據(jù)表項權(quán)值W表1步驟302,根據(jù)數(shù)據(jù)庫中存儲的關(guān)鍵字與文檔標(biāo)識鍵值對,查找檢索內(nèi)容關(guān)鍵字所對應(yīng)的目標(biāo)文檔標(biāo)識。其中,數(shù)據(jù)庫中預(yù)先存儲了文檔的關(guān)鍵字與文檔標(biāo)識的鍵值對。在進(jìn)行查找時,判斷當(dāng)檢索內(nèi)容中是否包含符號信息時:當(dāng)檢索內(nèi)容中不包含符號信息時,根據(jù)該鍵值對即可獲取檢索內(nèi)容關(guān)鍵字對應(yīng)的文檔標(biāo)識即為目標(biāo)文檔標(biāo)識。當(dāng)檢索內(nèi)容中包含符號信息時,需要對檢索到的關(guān)鍵字對應(yīng)的文檔標(biāo)識做進(jìn)一步的篩選。具體包括:步驟3021,提取檢索內(nèi)容中的符號信息,并識別符號信息的表達(dá)含義。在該步驟中,檢索內(nèi)容通常采用檢索表達(dá)式的形式。例如,軍艦+汽車-航母。表達(dá)式中的特殊符號信息。本發(fā)明實施例中,“+”代表“與”邏輯關(guān)系;空格代表“或”邏輯,不帶任何特殊符號表示與,“-”代表“非”邏輯關(guān)系。步驟3022,根據(jù)表達(dá)含義確定關(guān)鍵字間的邏輯關(guān)系。舉例說明,檢索的表達(dá)式是:軍艦+汽車-航母;即在文檔中搜索的必須有軍艦、汽車,并且不能有航母的文檔;如果檢索的表達(dá)式是軍艦汽車,那么搜索內(nèi)容為軍艦、汽車兩個詞匯中的任何一個或兩個全都存在的文檔。步驟3023,根據(jù)關(guān)鍵字間的邏輯關(guān)系,對關(guān)鍵字所對應(yīng)的文檔標(biāo)識進(jìn)行篩選,篩選后的文檔標(biāo)識即為目標(biāo)文檔標(biāo)識。舉例說明,檢索的關(guān)鍵字:軍艦+汽車-航母。獲取含軍艦這個關(guān)鍵字的文檔標(biāo)識集;作為一個文檔序列f1;檢索含有汽車關(guān)鍵字的文檔序列f2和含有航母關(guān)鍵字的文檔序列f3。在篩選時,首先檢索f1中是否有f3中檢索出的文檔hash,從f1中去除f3中含有的項目,對f2做同樣的處理操作,從而生成f1`和f2`;取f1`和f2`中的數(shù)據(jù)結(jié)果進(jìn)行取交集操作,合并為序列f,篩選完成。進(jìn)一步地,數(shù)據(jù)庫包括內(nèi)存數(shù)據(jù)庫以及mysql數(shù)據(jù)庫。首先從內(nèi)存數(shù)據(jù)庫中查找索引信息;若內(nèi)存數(shù)據(jù)庫查找不到文檔的索引時,從mysql數(shù)據(jù)庫中檢索。本發(fā)明中通過采用內(nèi)存數(shù)據(jù)庫存儲索引信息,可以有效提高檢索的速度,同時還可以有效避免lucene檢索過程中的反復(fù)磁盤操作的問題。步驟303,根據(jù)數(shù)據(jù)庫中的存儲文檔標(biāo)識與存儲信息鍵值對,查找目標(biāo)文檔標(biāo)識對應(yīng)的存儲信息,并根據(jù)存儲信息獲取目標(biāo)文檔。當(dāng)獲取關(guān)鍵字對應(yīng)哈希值后,根據(jù)數(shù)據(jù)庫中存儲的哈希值-存儲信息鍵值對獲取每個哈希值對應(yīng)的存儲信息,并將該文檔存儲信息返回給用戶。具體地文檔存儲信息的存儲結(jié)構(gòu),參見表2,表名為_file_index。Index為文檔哈希值對應(yīng)的存儲信息指向。文檔名創(chuàng)建日期修改日期版本信息存儲路徑文檔大小表2用戶根據(jù)具體的文檔名、創(chuàng)建日期、版本信息、存儲路徑、文檔大小等信息確定是否符合檢索要求。當(dāng)確定后,選取某一文檔的存儲信息,并根據(jù)該存儲信息從文檔的存儲位置中提取文檔內(nèi)容。進(jìn)一步地,該文檔檢索方法還包括:根據(jù)目標(biāo)文檔標(biāo)識獲取目標(biāo)文檔的緩存信息;其中,緩存信息包括檢索內(nèi)容關(guān)鍵字的熱度和檢索內(nèi)容關(guān)鍵字在目標(biāo)文檔中出現(xiàn)次數(shù);根據(jù)目標(biāo)文檔的緩存信息計算目標(biāo)文檔與檢索內(nèi)容關(guān)鍵字的相關(guān)度;根據(jù)相關(guān)度對目標(biāo)文檔進(jìn)行排序。具體地,文檔緩存信息包括檢索內(nèi)容關(guān)鍵字的熱度以及檢索內(nèi)容關(guān)鍵字在目標(biāo)文檔的出現(xiàn)次數(shù)。兩個參數(shù)信息作為文檔的屬性信息與文檔標(biāo)識一同存儲至數(shù)據(jù)庫中。數(shù)據(jù)庫中對于文檔標(biāo)識的存儲結(jié)構(gòu)參見表3。表3與表1相對應(yīng)的存儲,例如表1中存儲的詞語信息為測試,則表3對應(yīng)的表名為_tb_ceshi。表3進(jìn)一步地,根據(jù)檢索內(nèi)容關(guān)鍵字熱度以及關(guān)鍵字在文檔中的出現(xiàn)次數(shù)對目標(biāo)文檔的相關(guān)度計算,公式如下:Q={W(key1)*n1+W(key2)*n2+….+W(keyi)*ni}*a2其中,Q為相關(guān)度;W(keyi)為文檔包括關(guān)鍵字keyi時,而在檢索過程中關(guān)鍵字keyi作為檢索內(nèi)容關(guān)鍵字時,對應(yīng)的熱度值;n為檢索內(nèi)容關(guān)鍵字keyi在目標(biāo)文檔的出現(xiàn)次數(shù);a2為第二調(diào)整系數(shù),與第一調(diào)整系數(shù)類似,根據(jù)大量的檢索結(jié)果進(jìn)行確定。在實際檢索過程中,可以根據(jù)檢索需要進(jìn)行調(diào)整。參見圖4,本發(fā)明提供了一具體實施例的文檔檢索方法的時序流程圖,具體包括如下步驟:步驟401,對該輸入的查詢內(nèi)容進(jìn)行分詞,計算分詞后關(guān)鍵字的權(quán)值,對小于閾值的關(guān)鍵字進(jìn)行排除;步驟402,建立關(guān)鍵字的邏輯表達(dá)式,處理與、或、非等邏輯關(guān)系;步驟403,根據(jù)關(guān)鍵字檢索文檔的哈希值;步驟404,根據(jù)生成的邏輯表達(dá)式對獲取的哈希值進(jìn)一步篩選;步驟405,對生成檢索結(jié)果文檔按照相關(guān)度的權(quán)重值進(jìn)行計算,獲取排序結(jié)果;步驟406,根據(jù)結(jié)果hash列表,查詢文檔存儲信息,返回給用戶;步驟407,用戶根據(jù)搜索結(jié)果,選取指定文檔信息,提取文檔信息,檢索流程完畢。實施例3本發(fā)明實施例還提供了一種文檔存儲裝置,如圖5所示,包括:提取單元,用于提取文檔的關(guān)鍵字;生成單元,用于根據(jù)文檔的內(nèi)容生成標(biāo)識信息;獲取單元,用于獲取文檔的存儲信息;存儲單元,用于將關(guān)鍵字與文檔標(biāo)識的鍵值對、文檔標(biāo)識與存儲信息的鍵值對作為文檔的索引存儲于數(shù)據(jù)庫中。進(jìn)一步地,提取單元具體用于:對文檔內(nèi)容進(jìn)行分詞處理,計算分詞后每個詞在文檔內(nèi)容中的權(quán)值;篩選出權(quán)值不小于第一預(yù)設(shè)閾值的詞語,詞語即為文檔的關(guān)鍵字。進(jìn)一步地,數(shù)據(jù)庫包括內(nèi)存數(shù)據(jù)庫以及mysql數(shù)據(jù)庫;其中,內(nèi)存數(shù)據(jù)庫存儲訪問熱度大于第二預(yù)設(shè)閾值的文檔的索引;mysql數(shù)據(jù)庫存儲所有文檔的索引。進(jìn)一步地,裝置還包括調(diào)整單元,用于根據(jù)訪問熱度對數(shù)據(jù)庫存儲的索引進(jìn)行調(diào)整;當(dāng)內(nèi)存數(shù)據(jù)庫中文檔的訪問熱度小于或等于第二預(yù)設(shè)閾值時,則將文檔的索引刪除;當(dāng)mysql數(shù)據(jù)庫中文檔的訪問熱度大于第二預(yù)設(shè)閾值時,則將文檔的索引存儲至內(nèi)存數(shù)據(jù)庫中。進(jìn)一步地,調(diào)整單元計算訪問熱度的公式為:N=t+hits*a1+{w(key1)+w(key2)+…+w(keyn)}其中,N為訪問熱度;t為文檔的最近訪問時間;w(keyn)為文檔包括關(guān)鍵字keyn時,而在檢索過程中關(guān)鍵字keyn作為檢索內(nèi)容關(guān)鍵字時,對應(yīng)的熱度值;hits為文檔的訪問次數(shù);a1為第一調(diào)整系數(shù)。對于裝置實施例而言,由于其與方法實施例1基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。實施例4本發(fā)明提供一種文檔檢索裝置,基于實施例3中的文檔存儲裝置進(jìn)行檢索,包括:提取模塊,用于提取檢索內(nèi)容關(guān)鍵字;第一查找模塊,用于根據(jù)文檔存儲裝置存儲的關(guān)鍵字與文檔標(biāo)識鍵值對,查找檢索內(nèi)容關(guān)鍵字所對應(yīng)的目標(biāo)文檔標(biāo)識;第二查找模塊,用于根據(jù)文檔存儲裝置存儲的文檔標(biāo)識與存儲信息鍵值對,查找目標(biāo)文檔標(biāo)識對應(yīng)的存儲信息,并根據(jù)存儲信息獲取目標(biāo)文檔。進(jìn)一步地,提取模塊具體用于:對檢索內(nèi)容進(jìn)行分詞,根據(jù)預(yù)先存儲的語料信息獲取分詞后每個詞語的權(quán)值;篩選出權(quán)值不小于第三預(yù)設(shè)閾值的詞語,詞語即為檢索內(nèi)容關(guān)鍵字。進(jìn)一步地,第一查找模塊具體用于:判斷檢索內(nèi)容中是否包括符號信息,當(dāng)檢索內(nèi)容中包括符號信息時,提取檢索內(nèi)容中的符號信息,并識別符號信息的表達(dá)含義;根據(jù)表達(dá)含義確定關(guān)鍵字間的邏輯關(guān)系;根據(jù)關(guān)鍵字間的邏輯關(guān)系,對關(guān)鍵字所對應(yīng)的文檔標(biāo)識進(jìn)行篩選,篩選后的文檔標(biāo)識即為目標(biāo)文檔標(biāo)識。進(jìn)一步地,裝置還包括排序模塊,具體用于:根據(jù)目標(biāo)文檔標(biāo)識獲取目標(biāo)文檔的緩存信息;其中,緩存信息包括檢索內(nèi)容關(guān)鍵字的熱度和檢索內(nèi)容關(guān)鍵字在目標(biāo)文檔中出現(xiàn)次數(shù);根據(jù)目標(biāo)文檔的緩存信息計算目標(biāo)文檔與檢索內(nèi)容關(guān)鍵字的相關(guān)度;根據(jù)相關(guān)度對目標(biāo)文檔進(jìn)行排序。進(jìn)一步地,排序模塊計算相關(guān)度的公式為:Q={W(key1)*n1+W(key2)*n2+….+W(keyi)*ni}*a2其中,Q為相關(guān)度;W(keyi)為文檔包括關(guān)鍵字keyi時,而在檢索過程中關(guān)鍵字keyi作為檢索內(nèi)容關(guān)鍵字時,對應(yīng)的熱度值;ni為檢索內(nèi)容關(guān)鍵字keyi在目標(biāo)文檔的出現(xiàn)次數(shù);a2為第二調(diào)整系數(shù)。進(jìn)一步地,當(dāng)文檔存儲裝置包括內(nèi)存數(shù)據(jù)庫和mysql數(shù)據(jù)庫時,第一查找模塊首先從內(nèi)存數(shù)據(jù)庫中獲取檢索文檔的索引;若內(nèi)存數(shù)據(jù)庫查找不到索引時,從mysql數(shù)據(jù)庫中查找。對于裝置實施例而言,由于其與方法實施例2基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,程序可存儲于計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。雖然通過實施例描述了本申請,本領(lǐng)域的技術(shù)人員知道,本申請有許多變形和變化而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1