專利名稱:基于搜索引擎的文檔索引方法、數(shù)據(jù)查詢方法及服務器的制作方法
技術(shù)領(lǐng)域:
本申請涉及搜索引擎技術(shù)領(lǐng)域,尤其涉及一種基于搜索引擎的文檔索引方法、數(shù) 據(jù)查詢方法及服務器。
背景技術(shù):
搜索引擎(Search Engine)是指根據(jù)一定的策略、運用特定的計算機程序搜集互 聯(lián)網(wǎng)上的信息,在對信息進行組織和處理后,并將處理后的信息顯示給用戶,為用戶提供檢 索服務的系統(tǒng)。搜索引擎的工作原理如下首先,進行網(wǎng)頁抓取,每個獨立的搜索引擎都有自己的 網(wǎng)頁抓取程序,俗稱網(wǎng)絡蜘蛛(Spider),Spider順著網(wǎng)頁中的超鏈接,連續(xù)地抓取網(wǎng)頁,被 抓取的網(wǎng)頁被稱之為網(wǎng)頁快照,由于互聯(lián)網(wǎng)中超鏈接的應用很普遍,理論上,從一定范圍的 網(wǎng)頁出發(fā),就能搜集到絕大多數(shù)的網(wǎng)頁;其次,進行網(wǎng)頁處理,搜索引擎抓到網(wǎng)頁后,提取關(guān) 鍵詞,建立索引文件;才能提供檢索服務;最后,提供檢索服務,用戶輸入關(guān)鍵詞進行檢索, 搜索引擎從索引數(shù)據(jù)庫中找到匹配該關(guān)鍵詞的網(wǎng)頁,為了用戶便于判斷,除了網(wǎng)頁標題和 URL外,還會提供一段來自網(wǎng)頁的摘要以及其他信息。對于中文搜索引擎來說,在進行索引和查詢時,都需要進行中文分詞的操作,其中 常用的中文分詞方法為一元分詞法,即將句子中的每個漢字作為一個單位,假設(shè)待索引的 句子為“中國股市”,則經(jīng)過一元分詞后的結(jié)果為四個單字,分別為“中”、“國”、“股”、“市”。 以“市”字為例,在索引了 600萬個文檔的單臺搜索引擎服務器內(nèi),“市”字出現(xiàn)的概率高達 93%,因此在根據(jù)一元分詞劃分結(jié)果查詢“中國股市”時,對于“市”字的查詢將極大消耗搜 索引擎服務器的資源,因此在搜索引擎內(nèi),預先保存了高頻字列表,對于高頻字采用過濾的 方式不進行查詢,因此搜索“中國股市”就簡化為搜索“中國股”,以跳過對高頻字“市”的查 詢。在對現(xiàn)有技術(shù)的研究和實踐過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中存在以下問題在采 用一元分詞法進行索引和查詢時,雖然通過預先設(shè)置的高頻字列表跳過了對高頻字的查 詢,但是卻會導致查詢結(jié)果不準確。仍然以查詢“中國股市”為例,雖然跳過了 “市”字的查 詢,但是返回的查詢結(jié)果中將包括大量的“中國股民”、“中國股票”等包含“中國股”的查詢 結(jié)果,因此導致查詢結(jié)果與需要查詢的內(nèi)容不相符。
發(fā)明內(nèi)容
本申請實施例的目的是提供一種基于搜索引擎的文檔索引方法、數(shù)據(jù)查詢方法及 服務器,以解決現(xiàn)有通過高頻詞過濾方式進行索引和查詢,導致查詢結(jié)果不準確的問題。為解決上述技術(shù)問題,本申請實施例提供了一種基于搜索引擎的文檔索引方法, 是這樣實現(xiàn)的一種基于搜索引擎的文檔索引方法,包括獲取待索引的文檔,并對所述文檔進行分詞操作得到一元分詞;
判斷每個一元分詞是否為過濾字,若所述一元分詞是過濾字,將所述一元分詞和 與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,對所述多元分詞建立索引;若所述一元分詞不是過濾字,則直接對所述一元分詞建立索引。為解決上述技術(shù)問題,本申請實施例提供了一種基于搜索引擎的數(shù)據(jù)查詢方法, 是這樣實現(xiàn)的一種基于搜索引擎的數(shù)據(jù)查詢方法,所述數(shù)據(jù)查詢方法應用所述文檔索引方法所 建立的索引,包括獲取待查詢的數(shù)據(jù),并對所述數(shù)據(jù)進行分詞操作得到一元分詞;判斷每個一元分詞是否為過濾字,若所述一元分詞是過濾字,將所述一元分詞和 與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,根據(jù)所述多元分詞查找所述 索引,若所述一元分詞不是過濾字,則根據(jù)所述一元分詞查找所述索引;將查找所述索引后得到的查詢結(jié)果進行合并。為解決上述技術(shù)問題,本申請實施例還提供了一種基于搜索引擎的文檔索引服務 器,是這樣實現(xiàn)的一種基于搜索引擎的文檔索引服務器,包括獲取單元,用于獲取待索引的文檔;分詞單元,用于對所述獲取單元獲取的文檔進行分詞操作得到一元分詞;判斷單元,用于判斷每個一元分詞是否為過濾字;索引單元,用于當所述判斷單元判斷所述一元分詞是過濾字時,將所述一元分詞 和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,對所述多元分詞建立索 引,當所述判斷單元判斷所述一元分詞不是過濾字時,則直接對所述一元分詞建立索引。為解決上述技術(shù)問題,本申請實施例還提供了一種基于搜索引擎的數(shù)據(jù)查詢服務 器,是這樣實現(xiàn)的一種基于搜索引擎的數(shù)據(jù)查詢服務器,所述數(shù)據(jù)查詢服務器應用所述文檔索引服 務器所建立的索引,包括獲取單元,用于獲取待查詢的數(shù)據(jù);分詞單元,用于對所述獲取單元獲取的數(shù)據(jù)進行分詞操作得到一元分詞;判斷單元,用于判斷每個一元分詞是否為過濾字;查找單元,用于當所述判斷單元判斷所述一元分詞是過濾字時,將所述一元分詞 和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,根據(jù)所述多元分詞查找所 述索引,當所述判斷單元判斷所述一元分詞不是過濾字時,則根據(jù)所述一元分詞查找所述 索引;合并單元,用于將所述查找單元查找所述索引后得到的查詢結(jié)果進行合并??梢?,本申請實施例中在進行索引或查詢時,將作為高頻字的一元分詞與其相鄰 的至少一個一元分詞組成多元分詞,以保證不會因為對高頻字進行索引而導致查詢時浪費 搜索引擎的資源,并且也不會因為跳過對高頻字的索引而導致查詢結(jié)果不準確;以查詢“中 國股市”為例,本申請實施例將以分詞“中”、“國”、“股”、“股市”進行查詢,由于分詞“股市” 的命中率遠低于高頻字“市”的命中率,并且也不會由于跳過對“市”的查詢而查詢到除“股 市”以外的分詞,因此在降低搜索引擎資源消耗的同時可以返回正確的查詢結(jié)果,由此提高了搜索引擎的性能。
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請基于搜索引擎的文檔索引方法的第一實施例流程圖;圖2為本申請基于搜索引擎的文檔索引方法的第二實施例流程圖;圖3為本申請基于搜索引擎的數(shù)據(jù)查詢方法的第一實施例流程圖;圖4為本申請基于搜索引擎的數(shù)據(jù)查詢方法的第二實施例流程圖;圖5為本申請基于搜索引擎的文檔索引服務器的第一實施例框圖;圖6為本申請基于搜索引擎的文檔索引服務器的第二實施例框圖;圖7為本申請基于搜索引擎的數(shù)據(jù)查詢服務器的第一實施例框圖;圖8為本申請基于搜索引擎的數(shù)據(jù)查詢服務器的第二實施例框圖。
具體實施例方式本申請實施例提供一種基于搜索引擎的文檔索引方法、數(shù)據(jù)查詢方法及服務器。為了使本技術(shù)領(lǐng)域的人員更好地理解本申請實施例中的技術(shù)方案,并使本申請實 施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本申請實施例中技術(shù)方 案作進一步詳細的說明。搜索引擎按照功能劃分,通常由搜索模塊、索引模塊、查詢模塊和用戶接口模塊四 個部分組成。其中,搜索模塊的功能是通過Spider在互聯(lián)網(wǎng)中漫游,發(fā)現(xiàn)和搜集網(wǎng)頁信息; 索引模塊的功能是從搜索模塊搜索到的網(wǎng)頁中抽取出索引項,用于表示文檔以及生成文檔 庫的索引表;查詢模塊的功能是根據(jù)用戶的查詢在索引庫中檢索文檔,并對將要輸出的結(jié) 果進行排序,按照用戶的查詢需求合理反饋信息;用戶接口模塊的作用是接收用戶的查詢 請求,并向用戶返回查詢結(jié)果。本申請實施例主要描述搜索引擎中的索引功能和查詢功能 的實現(xiàn)過程。為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實 施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施 例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通 技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護 的范圍。參見圖1,為本申請基于搜索引擎的文檔索引方法的第一實施例流程圖步驟101 獲取待索引的文檔。本申請實施例中待索引的文檔通常為通過搜索引擎的搜索功能從互聯(lián)網(wǎng)中搜集 的網(wǎng)頁信息,這些網(wǎng)頁信息被保存在搜索引擎服務器的存儲空間內(nèi)(例如磁盤),當搜索引 擎服務器需要進行索引時,則從存儲空間內(nèi)獲取還未索引過的網(wǎng)頁信息。步驟102 對待索引的文檔進行分詞操作得到一元分詞。
需要說明的是,如果待索引的文檔中只有一個字,并且該字是高頻字,則不再為該 文檔建立索引。步驟103 判斷每個一元分詞是否為過濾字,若是,則執(zhí)行步驟104 ;否則,執(zhí)行步 驟 105。其中,過濾字就是搜索引擎在查詢時會直接忽略不查的高頻字,這些高頻字由于 在文檔中出現(xiàn)的頻率較高,因此查詢時會耗費大量系統(tǒng)資源,所以通常事先通過統(tǒng)計等手 段在索引前就確定好過濾字列表,用于后續(xù)查詢時跳過對這些高頻字的查詢。例如,根據(jù)統(tǒng) 計結(jié)果,“中國股市”中的“市”為高頻字,因此可以將“市”寫入過濾字列表。通常對文檔分詞后得到的一元分詞結(jié)果中包含若干個一元分詞,因此順序?qū)γ總€ 一元分詞是否為過濾字進行判斷。步驟104 將一元分詞和與該一元分詞順序相鄰的至少一個一元分詞組成多元分 詞,對該多元分詞建立索引,結(jié)束當前流程。其中,優(yōu)選的,將一元分詞和與該一元分詞順序相鄰的一元分詞組成二元分詞,對 于判斷為高頻字的當前一元分詞,如果該一元分詞是文檔中的第一個一元分詞時,則將該 一元分詞與其后一個一元分詞組成二元分詞;如果該一元分詞是文檔中的最后一個一元分 詞時,則將該一元分詞與其前一個一元分詞組成二元分詞;如果該一元分詞不是該文檔中 的第一個一元分詞和最后一個一元分詞,則將該一元分詞與其前一個一元分詞和后一個一 元分詞分別組成二元分詞。對于按照上述方式組成的二元分詞建立索引,由上述描述可知,兩個相鄰的一元 分詞組成一個二元分詞,例如,“我”和“的”是兩個一元分詞,則將它們結(jié)合起來組成“我的” 就是二元分詞。同理,多元分詞指至少兩個相鄰的一元分詞組成一個多元分詞,除了上述二元分 詞外,還有三元分詞、四元分詞等,例如,由“中”、“國”和“人”組成一個三元分詞“中國人”。步驟105 直接對該一元分詞建立索引,結(jié)束當前流程。對于不是高頻字的一元分詞,則按照現(xiàn)有技術(shù)中的方式直接對其建立索引。參見圖2,為本申請基于搜索引擎的文檔索引方法的第二實施例流程圖,該實施例 以多元分詞為二元分詞為例,詳細描述了文檔索引過程步驟201 預先設(shè)置過濾字列表。過濾字列表的設(shè)置可以通過對互聯(lián)網(wǎng)中大量文檔的統(tǒng)計計算得到。例如,假設(shè)對 600萬個文檔分別進行一元分詞,然后計算這些一元分詞在每個文檔中出現(xiàn)的次數(shù),最后對 這些一元分詞出現(xiàn)的次數(shù)進行排序,取排序最高(例如前10個)的一元分詞作為高頻字, 構(gòu)建高頻字列表。步驟202 加載過濾字列表后,獲取待索引的文檔。步驟203 對待索引的文檔進行分詞操作得到一元分詞。步驟204 遍歷所述一元分詞。遍歷一元分詞,即按照文檔的分詞結(jié)果順序獲取每一個一元分詞,并對獲取的每 一個一元分詞執(zhí)行后續(xù)是否為過濾字的判斷步驟。步驟205 通過查找過濾字列表判斷當前一元分詞是否為過濾字,若是,則執(zhí)行步 驟206 ;否則,執(zhí)行步驟208。
步驟206 將所述一元分詞和與所述一元分詞順序相鄰的一元分詞組成二元分詞。步驟207 對二元分詞建立索引,執(zhí)行步驟209。步驟208 直接對一元分詞建立索引。步驟209 判斷是否遍歷完所述一元分詞,若是,則結(jié)束當前流程;否則,返回步驟 204。上述本申請基于搜索引擎的文檔索引方法的第二實施例中,步驟204至步驟208 可以采用如下示例的偽碼實現(xiàn)Token token = getCurrentToken () ;//獲取當前分詞If (isFreqfford(token)) {//如果當前是高頻字Token token2 = mergeToken (preToken, token) ;//禾口前一個分詞組成新單詞doTokenIndex(token2) ;//建索弓|Token token3 = mergeToken (lastToken, token) ;//禾口后一個分詞組成新單 詞doTokenIndex(token3) ;//建索弓|}elsedoTokenlndex (token) ;//如果不是高頻字,則直接建索引在搜索引擎中應用上述文檔索引方法實施例建立的索引中,沒有為高頻字建立的 索引,但包括了對高頻字與其相鄰的字組合而成的二元分詞建立的索引,為后續(xù)數(shù)據(jù)查詢 的準確性提供了保證。與本申請基于搜索引擎的文檔索引方法的實施例相對應,本申請還提供了基于搜 索引擎的數(shù)據(jù)查詢方法的實施例,所述數(shù)據(jù)查詢方法的實施例通過應用所述文檔索引方法 的實施例所建立的索引進行數(shù)據(jù)查詢。參見圖3,為本申請基于搜索引擎的數(shù)據(jù)查詢方法的第一實施例流程圖;步驟301 獲取待查詢的數(shù)據(jù)。待查詢的數(shù)據(jù)通常為互聯(lián)網(wǎng)用戶從網(wǎng)站前端輸入的需要查詢的數(shù)據(jù),由搜索引擎 接收該輸入的查詢數(shù)據(jù)。步驟302 對待查詢的數(shù)據(jù)進行分詞操作得到一元分詞。步驟303 判斷每個一元分詞是否為過濾字,若是,則執(zhí)行步驟304;否則,執(zhí)行步 驟 305。通常對數(shù)據(jù)分詞后得到的一元分詞結(jié)果中包含若干個一元分詞,因此順序?qū)γ總€ 一元分詞是否為過濾字進行判斷。步驟304 將一元分詞和與該一元分詞順序相鄰的至少一個一元分詞組成多元分 詞,根據(jù)該多元分詞查找建立的索引,執(zhí)行步驟306。其中,優(yōu)選的,將所述一元分詞和與所述一元分詞順序相鄰的一元分詞組成二元 分詞,對于判斷為高頻字的當前一元分詞,如果該一元分詞是待查詢數(shù)據(jù)中的第一個一元 分詞,則將該一元分詞與其后一個一元分詞組成二元分詞;如果該一元分詞不是待查詢數(shù) 據(jù)中的第一個一元分詞,則將該一元分詞與其前一個一元分詞或后一個一元分詞組成二元分詞。步驟305 根據(jù)該一元分詞查找建立的索引。步驟306 將查找索引后得到的查詢結(jié)果進行合并,結(jié)束當前流程。參見圖4,為本申請基于搜索引擎的數(shù)據(jù)查詢方法的第二實施例流程圖,該實施例 以多元分詞為二元分詞為例,詳細描述了數(shù)據(jù)查詢過程步驟401 加載預先設(shè)置的過濾字列表后,獲取待查詢的數(shù)據(jù)。步驟402 對待查詢的數(shù)據(jù)進行分詞操作得到一元分詞。步驟403 遍歷所述一元分詞。遍歷一元分詞,即按照待查詢數(shù)據(jù)的分詞結(jié)果順序獲取每一個一元分詞,并對獲 取的一元分詞執(zhí)行后續(xù)是否為過濾字的判斷步驟。步驟404 通過查找過濾字列表判斷當前一元分詞是否為過濾字,若是,則執(zhí)行步 驟405 ;否則,執(zhí)行步驟407。步驟405 將所述一元分詞和與所述一元分詞順序相鄰的一元分詞組成二元分 詞。步驟406 根據(jù)該二元分詞查找建立的索引,執(zhí)行步驟208。步驟407 根據(jù)該一元分詞查找建立的索引。步驟408 判斷是否遍歷完所述一元分詞,若是,則執(zhí)行步驟409 ;否則,返回步驟 403。步驟409 將查找索引后得到的所有查詢結(jié)果進行合并,結(jié)束當前流程。對于根據(jù)每個分詞查詢索引后得到的結(jié)果進行合并,進一步還可以根據(jù)預先設(shè)置 的條件(例如返回20個結(jié)果)向用戶返回最終顯示的查詢結(jié)果,此處與現(xiàn)有技術(shù)一致,在 此不再贅述。上述本申請基于搜索引擎的數(shù)據(jù)查詢方法的第二實施例中,步驟403至步驟407 可以采用如下示例的偽碼實現(xiàn)Token token = getCurrentToken () ;//獲取當前分詞If (isFreqfford(token)) {//如果當前是高頻字Token token2 ;If (isFri stfford (token))token2 = mergeToken (lastToken, token) ;// 位于句首則后向結(jié)合elsetoken2 = mergeToken (preToken,token) ;// 非句首則前向結(jié)合doTokenSearch(token2) ;//對結(jié)合后的新詞進行查詢}elsedoTokenSearch (token) ;//如果不是高頻字,則直接查詢 在搜索引擎中應用上述數(shù)據(jù)查詢方法實施例進行數(shù)據(jù)查詢,由于建立的索引中沒 有高頻字,并且將高頻字與其它字組成二元分詞后建立了索引,因此在數(shù)據(jù)查詢時不會因 為對高頻字進行索引而浪費搜索引擎的資源,并且也不會因為跳過對高頻字的查詢而導致 結(jié)果不準確。
另外,需要說明的是,上述本申請索引和查詢實施例應用在中文搜索引擎時,其中 對待查詢的數(shù)據(jù)進行分詞操作得到的一元分詞指每個單字,以“中國股市”為例,根據(jù)統(tǒng)計 結(jié)果預先設(shè)置的過濾字為“市”,劃分得到的一元分詞為“中”、“國”、“股”、“市”;當上述本 申請索引和查詢實施例應用在外文搜索引擎時,以英文“Chinese Stock Market”為例,則 假設(shè)根據(jù)統(tǒng)計“Stock”是過濾字,則按照英文分詞特點劃分得到的一元分詞為“Chinese”、 “St0Ck”、“Market”,后續(xù)索引和查詢的過程與中文字一致,即在索引時,過濾“Stock”后,得 到的索引分別為“Chinese”、“Chinese Stock","Stock Market” 和“Market”;查詢時,可以 對“Chinese”、“Chinese Stock”、“Market”進行查詢,在此不再贅述。與本申請基于搜索引擎的文檔索引方法和數(shù)據(jù)查詢方法的實施例相對應,本申請 還提供了基于搜索引擎的文檔索引服務器和數(shù)據(jù)查詢服務器的實施例。參見圖5,為本申請基于搜索引擎的文檔索引服務器的第一實施例框圖該文檔索引服務器包括獲取單元510、分詞單元520、判斷單元530和索引單元 540。其中,獲取單元510,用于獲取待索引的文檔;分詞單元520,用于對所述獲取單元510獲取的文檔進行分詞操作得到一元分詞;判斷單元530,用于判斷每個一元分詞是否為過濾字;索引單元540,用于當所述判斷單元530判斷所述一元分詞是過濾字時,將所述一 元分詞和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,對所述多元分詞建 立索引,當所述判斷單元530判斷所述一元分詞不是過濾字時,則直接對所述一元分詞建 立索引。參見圖6,為本申請基于搜索引擎的文檔索引服務器的第二實施例框圖該文檔索引服務器包括預置單元610、加載單元620、獲取單元630、分詞單元 640、判斷單元650和索引單元660。其中,預置單元610,用于預先設(shè)置過濾字列表;加載單元620,用于加載所述閾值單元610中的過濾字列表;獲取單元630,用于獲取待索引的文檔;分詞單元640,用于對所述獲取單元630獲取的文檔進行分詞操作得到一元分詞;判斷單元650,用于判斷每個一元分詞是否為過濾字;索引單元660,用于當所述判斷單元650判斷所述一元分詞是過濾字時,將所述一 元分詞和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,對所述多元分詞建 立索引,當所述判斷單元650判斷所述一元分詞不是過濾字時,則直接對所述一元分詞建 立索引。優(yōu)選的,索引單元660將所述一元分詞和與所述一元分詞順序相鄰的一元分詞組 成二元分詞,對所述二元分詞建立索引。具體的,判斷單元650可以包括(圖6中未示出)遍歷分詞單元,用于遍歷所述一 元分詞;查找過濾字單元,用于通過查找所述過濾字列表判斷每個一元分詞是否為過濾字。本申請?zhí)峁┑幕谒阉饕娴臄?shù)據(jù)查詢服務器的實施例通過應用所述文檔索引 服務器的實施例所建立的索引進行數(shù)據(jù)查詢。參見圖7,為本申請基于搜索引擎的數(shù)據(jù)查詢服務器的第一實施例框圖該數(shù)據(jù)查詢服務器包括獲取單元710、分詞單元720、判斷單元730、查找單元740和合并單元750。獲取單元710,用于獲取待查詢的數(shù)據(jù);分詞單元720,用于對所述獲取單元獲取的數(shù)據(jù)進行分詞操作得到一元分詞;判斷單元730,用于判斷每個一元分詞是否為過濾字;查找單元740,用于當所述判斷單元730判斷所述一元分詞是過濾字時,將所述一 元分詞和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,根據(jù)所述多元分詞 查找所述索引,當所述判斷單元730判斷所述一元分詞不是過濾字時,則根據(jù)所述一元分 詞查找所述索引;合并單元750,用于將所述查找單元740查找所述索引后得到的查詢結(jié)果進行合并。參見圖8,為本申請基于搜索引擎的數(shù)據(jù)查詢服務器的第二實施例框圖該數(shù)據(jù)查詢服務器包括加載單元810、獲取單元820、分詞單元830、判斷單元 840、查找單元850和合并單元860。加載單元810,用于加載預先設(shè)置的過濾字列表;獲取單元820,用于獲取待查詢的數(shù)據(jù);分詞單元830,用于對所述獲取單元820獲取的數(shù)據(jù)進行分詞操作得到一元分詞;判斷單元840,用于判斷每個一元分詞是否為過濾字;查找單元850,用于當所述判斷單元840判斷所述一元分詞是過濾字時,將所述一 元分詞和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,根據(jù)所述多元分詞 查找所述索引,當所述判斷單元840判斷所述一元分詞不是過濾字時,則根據(jù)所述一元分 詞查找所述索引;優(yōu)選的,查找單元850將所述一元分詞和與所述一元分詞順序相鄰的一 元分詞組成二元分詞,根據(jù)所述二元分詞查找所述索引;合并單元860,用于將所述查找單元850查找所述索引后得到的查詢結(jié)果進行合并。具體的,判斷單元840可以包括(圖8中未示出)遍歷分詞單元,用于遍歷所述一 元分詞;查找過濾字單元,用于通過查找所述過濾字列表判斷每個一元分詞是否為過濾字。通過以上的實施方式的描述可知,本申請實施例在對搜索引擎的索引和查詢過程 中,通過將高頻一元分詞組成有限多元分詞,從而將對高頻字的查詢轉(zhuǎn)換為對低頻詞的查 詢,在獲取正確查詢結(jié)果的基礎(chǔ)上降低了搜索引擎的負載,提升了搜索引擎的查詢性能。通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可 借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì) 上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品 可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備 (可以是個人計算機,服務器,或者網(wǎng)絡設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些 部分所述的方法。本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部 分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實 施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例 的部分說明即可。
本申請可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如個人計算機、服務 器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂 盒、可編程的消費電子設(shè)備、網(wǎng)絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設(shè)備的 分布式計算環(huán)境等等。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序 模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組 件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由 通過通信網(wǎng)絡而被連接的遠程處理設(shè)備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以 位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。雖然通過實施例描繪了本申請,本領(lǐng)域普通技術(shù)人員知道,本申請有許多變形和 變化而不脫離本申請的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請的 精神。
權(quán)利要求
一種基于搜索引擎的文檔索引方法,其特征在于,包括獲取待索引的文檔,并對所述文檔進行分詞操作得到一元分詞;判斷每個一元分詞是否為過濾字,若所述一元分詞是過濾字,將所述一元分詞和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,對所述多元分詞建立索引;若所述一元分詞不是過濾字,則直接對所述一元分詞建立索引。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括預先設(shè)置過濾字列表。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取待索引的文檔之前還包括加載 所述過濾字列表。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷每個一元分詞是否為過濾字包括遍歷所述一元分詞;通過查找所述過濾字列表判斷每個一元分詞是否為過濾字。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述一元分詞和與所述一元分詞 順序相鄰的至少一個一元分詞組成多元分詞包括將所述一元分詞和與所述一元分詞順序 相鄰的一元分詞組成二元分詞。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述一元分詞和與所述一元分詞 順序相鄰的一元分詞組成二元分詞包括當所述一元分詞是所述文檔中的第一個一元分詞時,將所述一元分詞與其后一個一元 分詞組成二元分詞;當所述一元分詞是所述文檔中的最后一個一元分詞時,將所述一元分詞與其前一個一 元分詞組成二元分詞;當所述一元分詞不是所述文檔中的第一個一元分詞和最后一個一元分詞時,將所述一 元分詞與其前一個一元分詞和后一個一元分詞分別組成二元分詞。
7.一種基于搜索引擎的數(shù)據(jù)查詢方法,其特征在于,所述方法應用如權(quán)利要求1所述 文檔索引方法所建立的索引,包括獲取待查詢的數(shù)據(jù),并對所述數(shù)據(jù)進行分詞操作得到一元分詞; 判斷每個一元分詞是否為過濾字,若所述一元分詞是過濾字,將所述一元分詞和與所 述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,根據(jù)所述多元分詞查找所述索 弓丨,若所述一元分詞不是過濾字,則根據(jù)所述一元分詞查找所述索引; 將查找所述索引后得到的查詢結(jié)果進行合并。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述獲取待查詢數(shù)據(jù)之前,還包括加載 預先設(shè)置的過濾字列表。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述判斷每個一元分詞是否為過濾字,包括遍歷所述一元分詞;通過查找所述過濾字列表判斷每個一元分詞是否為過濾字。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于,將所述一元分詞和與所述一元分詞順序 相鄰的至少一個一元分詞組成多元分詞包括將所述一元分詞和與所述一元分詞順序相鄰 的一元分詞組成二元分詞。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述將所述一元分詞和與所述一元分 詞順序相鄰的一元分詞組成二元分詞包括當所述一元分詞是所述數(shù)據(jù)中的第一個一元分詞時,將所述一元分詞與其后一個一元 分詞組成二元分詞;當所述一元分詞不是所述數(shù)據(jù)中的第一個一元分詞時,將所述一元分詞與其前一個一 元分詞或后一個一元分詞組成二元分詞。
12.一種基于搜索引擎的文檔索引服務器,其特征在于,包括獲取單元,用于獲取待索引的文檔;分詞單元,用于對所述獲取單元獲取的文檔進行分詞操作得到一元分詞;判斷單元,用于判斷每個一元分詞是否為過濾字;索引單元,用于當所述判斷單元判斷所述一元分詞是過濾字時,將所述一元分詞和與 所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,對所述多元分詞建立索引,當 所述判斷單元判斷所述一元分詞不是過濾字時,則直接對所述一元分詞建立索引。
13.根據(jù)權(quán)利要求12所述的服務器,其特征在于,還包括預置單元,用于預先設(shè)置過濾字列表。
14.根據(jù)權(quán)利要求13所述的服務器,其特征在于,還包括加載單元,用于所述獲取單元獲取待索引的文檔之前,加載所述過濾字列表。
15.根據(jù)權(quán)利要14所述的服務器,其特征在于,所述判斷單元包括遍歷分詞單元,用于遍歷所述一元分詞;查找過濾字單元,用于通過查找所述過濾字列表判斷每個一元分詞是否為過濾字。
16.一種基于搜索引擎的數(shù)據(jù)查詢服務器,其特征在于,所述服務器應用如權(quán)利要求 12所述文檔索引服務器所建立的索引,包括獲取單元,用于獲取待查詢的數(shù)據(jù);分詞單元,用于對所述獲取單元獲取的數(shù)據(jù)進行分詞操作得到一元分詞;判斷單元,用于判斷每個一元分詞是否為過濾字;查找單元,用于當所述判斷單元判斷所述一元分詞是過濾字時,將所述一元分詞和與 所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,根據(jù)所述多元分詞查找所述 索引,當所述判斷單元判斷所述一元分詞不是過濾字時,則根據(jù)所述一元分詞查找所述索 引;合并單元,用于將所述查找單元查找所述索引后得到的查詢結(jié)果進行合并。
17.根據(jù)權(quán)利要求16所述的服務器,其特征在于,還包括加載單元,用于所述獲取單元獲取待查詢的數(shù)據(jù)之前,加載預先設(shè)置的過濾字列表。
18.根據(jù)權(quán)利要求16所述的服務器,其特征在于,所述判斷單元包括遍歷分詞單元,用于遍歷所述一元分詞;查找過濾字單元,用于通過查找所述過濾字列表判斷每個一元分詞是否為過濾字。
全文摘要
本申請實施例公開了基于搜索引擎的文檔索引方法、數(shù)據(jù)查詢方法及服務器,所述文檔索引方法包括獲取待索引的文檔,并對所述文檔進行分詞操作得到一元分詞;判斷每個一元分詞是否為過濾字,若所述一元分詞是過濾字,將所述一元分詞和與所述一元分詞順序相鄰的至少一個一元分詞組成多元分詞,對所述多元分詞建立索引;若所述一元分詞不是過濾字,則直接對所述一元分詞建立索引。本申請實施例中在進行索引或查詢時,將作為高頻字的一元分詞與其相鄰的至少一個一元分詞組成多元分詞,以保證不會因為對高頻字進行索引而導致查詢時浪費搜索引擎的資源,并且也不會因為跳過對高頻字的索引而導致查詢結(jié)果不準確。
文檔編號G06F17/30GK101963965SQ20091015148
公開日2011年2月2日 申請日期2009年7月23日 優(yōu)先權(quán)日2009年7月23日
發(fā)明者沈加翔, 魏磊 申請人:阿里巴巴集團控股有限公司