国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      文件搜索方法及裝置與流程

      文檔序號:11134180閱讀:768來源:國知局
      文件搜索方法及裝置與制造工藝

      本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種文件搜索方法及裝置。



      背景技術(shù):

      SVN(subversion)是一款文件管理系統(tǒng),其用于管理工程項(xiàng)目中的文檔、圖片、代碼等文件管理,能夠記錄文件每次修改的內(nèi)容。如果需要查找SVN工程項(xiàng)目中特定版本的特定文件,當(dāng)一個工程項(xiàng)目中的文件數(shù)量為m個,且每個文件平均經(jīng)歷過n次修改,那么搜索的復(fù)雜程度將會達(dá)到m×n。因此,當(dāng)m與n的乘積結(jié)果達(dá)到較大數(shù)值時,意圖在SVN工程項(xiàng)目中查找特定文件將會變得極為費(fèi)時。

      雖然SVN自帶的搜索功能可以根據(jù)日志和提交者等標(biāo)識來搜索特定文件,但是卻無法通過文件內(nèi)容來對文件進(jìn)行搜索,如果希望根據(jù)文檔中的具體語段或者特定一張圖來查找這個文件,則只能逐個文件更新到歷史每一個版本,然后打開文件再進(jìn)行查找,其查找過程依然十分費(fèi)時。

      為此,相關(guān)技術(shù)中提供了Windows本地文件檢索功能,其可以檢索到指定目錄下的文件或者文件夾名字包含該關(guān)鍵字的內(nèi)容。這種方式僅限于采用文件名稱進(jìn)行檢索,而不包含對文件內(nèi)容的檢索。對于SVN管理的本地文件而言,如果需要對每個版本進(jìn)行檢索,則在檢索之前需要采用SVN版本管理逐個更新到特定版本之后才能開始進(jìn)行搜索。

      由此可見,Windows本地文件檢索功能存在如下缺陷:

      (1)無法搜索文檔內(nèi)容,而只能搜索文件或者文件夾名;

      (2)缺少索引圖片功能,無法利用圖片搜索文件,更無法通過圖文信息結(jié)合的方式來搜索文件;

      (3)對于SVN版本控制系統(tǒng)而言,Windows的資源管理器并沒有對SVN的日志建立索引,因此無法根據(jù)日志搜索SVN中的文件;

      (4)SVN本地文件只有一個版本,因此windows資源管理的搜索功能只能搜索一個SVN版本文件。

      此外,相關(guān)技術(shù)中還提供了SVN的日志搜索功能,其能夠提供對于日志、文件路徑、提交者、版本、提交日期等日志信息搜索,通過選中指定日志條目,可以查看文件位置。然而,該功能無法根據(jù)具體的文件內(nèi)容來進(jìn)行搜索,也無法根據(jù)圖像信息來進(jìn)行文件篩選或者搜索,因而無法實(shí)現(xiàn)圖文信息結(jié)合的本地文件搜索。

      由此可見,SVN的日志搜索功能存在如下缺陷:

      (1)未能對文檔內(nèi)容建立索引,因此無法搜索文檔內(nèi)容;

      (2)未能對圖片建立索引并進(jìn)行搜索,更無法提供圖文信息結(jié)合的搜索功能。

      進(jìn)一步地,相關(guān)技術(shù)中還提供了一種SVN全文搜索系統(tǒng)及搜索方法,該方法能夠?qū)崿F(xiàn)Subversion文件庫的全文搜索,其主要由提交偵測模塊、變更文檔抽取模塊、變更文檔索引模塊、版本過濾器構(gòu)建模塊、修訂版本更新文件過濾器構(gòu)建模塊和全文搜索執(zhí)行模塊組成,其中,各個模塊所要實(shí)現(xiàn)的具體功能如下:

      提交偵測模塊負(fù)責(zé)偵測SVN版本庫中文件的新增與變化情況;

      變更文檔抽取模塊負(fù)責(zé)調(diào)用SVN版本庫的函數(shù)指令從SVN版本庫中獲取當(dāng)前版本的變更的文檔集;

      變更文檔索引模塊負(fù)責(zé)根據(jù)提取的變更文檔集和發(fā)生變更的版本號,利用Lucene對變更文檔集進(jìn)行全文索引;

      版本過濾器構(gòu)建模塊負(fù)責(zé)在SVN版本庫中的版本變更時獲取變更的文檔,并提取變更的文檔,建立版本的搜索過濾器;

      修訂版本更新文件過濾器構(gòu)建模塊負(fù)責(zé)獲取修訂版本過濾器存模塊中相鄰兩個修訂版本的搜索過濾器;

      全文搜索執(zhí)行模塊負(fù)責(zé)獲取搜索過濾器,訪問Lucene索引搜索庫。

      然而,該技術(shù)方案雖然相對于上述兩種解決方案有所改進(jìn),但是并沒有明確不同文檔的內(nèi)容需要統(tǒng)一編碼,不同文件編碼方式不一致會降低搜索準(zhǔn)確性和搜索效率;并且該技術(shù)方案在建立索引的時候只對文檔內(nèi)容建立索引,而忽視了SVN日志信息,僅能夠通過文檔內(nèi)容進(jìn)行搜索,而無法在日志文本與文檔內(nèi)文本之間建立關(guān)聯(lián)搜索。除此之外,在建立索引過程中,由于缺少提取圖片信息,因而也不能夠?qū)D像進(jìn)行索引,進(jìn)而無法通過單一的文檔圖片搜索到文檔位置,也無法形成圖文信息結(jié)合的搜索功能。

      由此可見,上述SVN全文搜索系統(tǒng)及搜索方法存在如下缺陷:

      (1)無法對圖片建立索引并進(jìn)行搜索,更無法提供圖文信息結(jié)合的搜索方式;

      (2)在文檔信息提取過程中,無法提取文檔中的圖片,例如:PDF文檔、EXCEL文檔中的圖片;

      (3)沒有考慮多種文檔中格式編碼的非一致性問題;

      (4)建立索引僅針對文檔內(nèi)容建立索引,而未對SVN版本日志建立索引,從而無法建立日志文本和文檔文本內(nèi)容之間的關(guān)聯(lián)。

      綜上所述,相關(guān)技術(shù)中所提供的上述技術(shù)方案均無法提供單獨(dú)通過圖片進(jìn)行搜索或圖文信息結(jié)合的搜索方式,而且還未考慮到在搜索過程中結(jié)合文件更新的屬性信息進(jìn)行搜索。

      針對上述的問題,目前尚未提出有效的解決方案。



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

      本發(fā)明實(shí)施例提供了一種文件搜索方法及裝置,以至少解決相關(guān)技術(shù)中所提供的文件搜索方案無法提供單獨(dú)通過圖片進(jìn)行搜索或圖文信息結(jié)合的搜索方式,而且還未考慮到在搜索過程中結(jié)合文件更新的屬性信息進(jìn)行搜索的技術(shù)問題。

      根據(jù)本發(fā)明實(shí)施例的一個方面,提供了一種文件搜索方法,包括:

      從預(yù)設(shè)文件存儲區(qū)域獲取更新文件集合以及更新文件集合中每個文件對應(yīng)的文件屬性信息集合;從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容;對獲取到的文件屬性信息集合以及提取到的文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引。

      可選地,從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容包括:根據(jù)更新文件集合中包含的每個文件的文件名稱后綴進(jìn)行分類;從分類后未包含圖片信息的第一類型文件中提取文本內(nèi)容,和/或,從分類后包含圖片信息的第二類型文件中分別提取圖片內(nèi)容或者提取文本內(nèi)容和圖片內(nèi)容。

      可選地,對文件屬性信息集合以及文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換包括:判斷文件屬性信息集合所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文件屬性信息集合所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;判斷文本內(nèi)容所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文本內(nèi)容所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;和/或,從圖片內(nèi)容中提取圖像特征,并判斷圖像特征所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將圖像特征所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式。

      可選地,建立文件搜索索引包括以下之一:當(dāng)提取到文本內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與圖片內(nèi)容對應(yīng)的字段填入空字符串;當(dāng)提取到圖片內(nèi)容時,在采用統(tǒng)一編碼后的圖片內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與文本內(nèi)容對應(yīng)的字段填入空字符串;當(dāng)提取到文本內(nèi)容和圖片內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容、圖片內(nèi)容和文件屬性信息集合三者之間建立關(guān)聯(lián)索引。

      可選地,在對文件屬性信息集合以及文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引之后,還包括:接收來自于用戶終端的文本搜索信息和/或圖片搜索信息,其中,文本搜索信息和/或圖片搜索信息均采用預(yù)定義的編碼格式,文本搜索信息是從用戶在用戶終端輸入的文本信息中提取的一個或多個關(guān)鍵詞且文本信息包括以下至少之一:文件本身包含的字符內(nèi)容、文件屬性信息集合中的部分或全部文件屬性信息,圖片搜索信息從用戶在用戶終端輸入的圖片信息中提取的圖像特征;采用文件搜索索引查找與文本搜索信息對應(yīng)的第一備選文本集合,和/或,與圖片搜索信息對應(yīng)的第二備選文件集合,和/或,與文本搜索信息和圖片搜索信息對應(yīng)的第三備選文件集合,其中,第一備選文本集合和第二備選文件集合中包含的文件數(shù)量為預(yù)先自定義,第三備選文件集合是由文本搜索信息對應(yīng)的搜索結(jié)果與圖片搜索信息對應(yīng)的搜索結(jié)果進(jìn)行邏輯與操作后得到的。

      可選地,在采用文件搜索索引查找第一備選文本集合和/或第二備選文件集合之后,還包括:向用戶終端返回第一備選文本集合、第二備選文件集合與第三備選文件集合中至少之一,其中,第一備選文本集合中的文件按照關(guān)鍵詞匹配度由高到低進(jìn)行排列,第二備選文本集合中的文件按照圖像特征距離匹配度由高到低進(jìn)行排列,在向用戶終端返回第三備選文件集合時,優(yōu)先顯示第三備選文件集合。

      可選地,更新文件集合為預(yù)設(shè)文件存儲區(qū)域內(nèi)存儲的部分或全部文件在不同版本號之間發(fā)生過更新的文件。

      可選地,文件屬性信息集合包括以下至少之一:對文件進(jìn)行更新的人員信息;文件更新時間;文件更新后的版本號;文件更新的日志信息;文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、刪除文件。

      根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種文件搜索裝置,包括:

      獲取模塊,用于從預(yù)設(shè)文件存儲區(qū)域獲取更新文件集合以及更新文件集合中每個文件對應(yīng)的文件屬性信息集合;提取模塊,用于從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容;處理模塊,用于對獲取到的文件屬性信息集合以及提取到的文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引。

      可選地,提取模塊包括:分類單元,用于根據(jù)更新文件集合中包含的每個文件的文件名稱后綴進(jìn)行分類;提取單元,用于從分類后未包含圖片信息的第一類型文件中提取文本內(nèi)容,和/或,從分類后包含圖片信息的第二類型文件中分別提取圖片內(nèi)容或者提取文本內(nèi)容和圖片內(nèi)容。

      可選地,處理模塊包括:第一處理單元,用于判斷文件屬性信息集合所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文件屬性信息集合所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;第二處理單元,用于判斷文本內(nèi)容所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文本內(nèi)容所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;和/或,從圖片內(nèi)容中提取圖像特征,并判斷圖像特征所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將圖像特征所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式。

      可選地,處理模塊包括:第三處理單元,用于當(dāng)提取到文本內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與圖片內(nèi)容對應(yīng)的字段填入空字符串;或者,當(dāng)提取到圖片內(nèi)容時,在采用統(tǒng)一編碼后的圖片內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與文本內(nèi)容對應(yīng)的字段填入空字符串;或者,當(dāng)提取到文本內(nèi)容和圖片內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容、圖片內(nèi)容和文件屬性信息集合三者之間建立關(guān)聯(lián)索引。

      可選地,上述裝置還包括:接收模塊,用于接收來自于用戶終端的文本搜索信息和/或圖片搜索信息,其中,文本搜索信息和/或圖片搜索信息均采用預(yù)定義的編碼格式,文本搜索信息是從用戶在用戶終端輸入的文本信息中提取的一個或多個關(guān)鍵詞且文本信息包括以下至少之一:文件本身包含的字符內(nèi)容、文件屬性信息集合中的部分或全部文件屬性信息,圖片搜索信息從用戶在用戶終端輸入的圖片信息中提取的圖像特征;查找模塊,用于采用文件搜索索引查找與文本搜索信息對應(yīng)的第一備選文本集合,和/或,與圖片搜索信息對應(yīng)的第二備選文件集合,和/或,與文本搜索信息和圖片搜索信息對應(yīng)的第三備選文件集合,其中,第一備選文本集合和第二備選文件集合中包含的文件數(shù)量為預(yù)先自定義,第三備選文件集合是由文本搜索信息對應(yīng)的搜索結(jié)果與圖片搜索信息對應(yīng)的搜索結(jié)果進(jìn)行邏輯與操作后得到的。

      可選地,上述裝置還包括:反饋模塊,用于向用戶終端返回第一備選文本集合、第二備選文件集合與第三備選文件集合中至少之一,其中,第一備選文本集合中的文件按照關(guān)鍵詞匹配度由高到低進(jìn)行排列,第二備選文本集合中的文件按照圖像特征距離匹配度由高到低進(jìn)行排列,在向用戶終端返回第三備選文件集合時,優(yōu)先顯示第三備選文件集合。

      可選地,更新文件集合為預(yù)設(shè)文件存儲區(qū)域內(nèi)存儲的部分或全部文件在不同版本號之間發(fā)生過更新的文件。

      可選地,文件屬性信息集合包括以下至少之一:對文件進(jìn)行更新的人員信息;文件更新時間;文件更新后的版本號;文件更新的日志信息;文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、刪除文件。

      在本發(fā)明實(shí)施例中,采用從預(yù)設(shè)文件存儲區(qū)域獲取更新文件集合以及更新文件集合中每個文件對應(yīng)的文件屬性信息集合并從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容的方式,通過對獲取到的文件屬性信息集合以及提取到的文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引,達(dá)到了不僅可以針對文件名稱或者路徑進(jìn)行檢索,而且還可以提取文件中的文本內(nèi)容和/或圖片內(nèi)容,對文本內(nèi)容和/或圖片內(nèi)容建立索引,另外還進(jìn)一步支持根據(jù)文件屬性信息集合進(jìn)行檢索的目的,從而實(shí)現(xiàn)了提升檢索效率和準(zhǔn)確率的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中所提供的文件搜索方案無法提供單獨(dú)通過圖片進(jìn)行搜索或圖文信息結(jié)合的搜索方式,而且還未考慮到在搜索過程中結(jié)合文件更新的屬性信息進(jìn)行搜索的技術(shù)問題。

      附圖說明

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

      圖1是根據(jù)本發(fā)明實(shí)施例的文件搜索方法的流程圖;

      圖2是根據(jù)本發(fā)明實(shí)施例的文件搜索裝置的流程圖;

      圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的文件搜索裝置的流程圖。

      具體實(shí)施方式

      為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

      需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

      根據(jù)本發(fā)明實(shí)施例,提供了一種文件搜索方法的實(shí)施例,該方法可以適用于基于python的flask框架開發(fā)的web應(yīng)用程序,主要包括:在服務(wù)器端提供索引的建立功能以及在客戶端提供搜索功能。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

      圖1是根據(jù)本發(fā)明實(shí)施例的文件搜索方法的流程圖,如圖1所示,該方法包括如下步驟:

      步驟S10,從預(yù)設(shè)文件存儲區(qū)域獲取更新文件集合以及更新文件集合中每個文件對應(yīng)的文件屬性信息集合;

      步驟S12,從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容;

      步驟S14,對獲取到的文件屬性信息集合以及提取到的文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引。

      通過上述步驟,可以采用從預(yù)設(shè)文件存儲區(qū)域獲取更新文件集合以及更新文件集合中每個文件對應(yīng)的文件屬性信息集合并從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容的方式,通過對獲取到的文件屬性信息集合以及提取到的文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引,達(dá)到了不僅可以針對文件名稱或者路徑進(jìn)行檢索,而且還可以提取文件中的文本內(nèi)容和/或圖片內(nèi)容,對文本內(nèi)容和/或圖片內(nèi)容建立索引,另外還進(jìn)一步支持根據(jù)文件屬性信息集合進(jìn)行檢索的目的,從而實(shí)現(xiàn)了提升檢索效率和準(zhǔn)確率的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中所提供的文件搜索方案無法提供單獨(dú)通過圖片進(jìn)行搜索或圖文信息結(jié)合的搜索方式,而且還未考慮到在搜索過程中結(jié)合文件更新的屬性信息進(jìn)行搜索的技術(shù)問題。

      上述更新文件集合為預(yù)設(shè)文件存儲區(qū)域內(nèi)存儲的部分或全部文件在不同版本號之間發(fā)生過更新的文件。

      通過在服務(wù)端設(shè)置SVN版本庫,其用于存儲全部被檢索的文件,利用SVN版本管理功能(基于PySVN實(shí)現(xiàn))可以從SVN版本庫中獲取在對當(dāng)前版本文件與先前版本之間進(jìn)行比較后,發(fā)生更新的一個或多個文件,得到文件列表(即上述更新文件集合)。

      上述文件屬性信息集合可以包括但不限于以下至少之一:

      (1)對文件進(jìn)行更新的人員信息;

      (2)文件更新時間;

      (3)文件更新后的版本號;

      (4)文件更新的日志信息;

      (5)文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、刪除文件。

      此外,在建立索引的過程中,除了加入文件的文本內(nèi)容和圖片內(nèi)容之外,還需要從SVN版本庫中獲取每個更新后文件對應(yīng)的提交人員信息、提交時間、版本編號、用戶輸入的提交日志信息。這部分信息單獨(dú)加以存儲,并且直接用于后續(xù)統(tǒng)一編碼和索引建立。

      例如:用戶userA已經(jīng)提交對文件fileA的修改,其修改時間為dateA,用戶userA為本次文件提交隨附的日志為logA,這是用戶的第2次修改。那么在監(jiān)測到這次修改之后,便會顯示并記錄以下信息:

      {提交者:userA,提交文件:fileA,修改時間:dateA,日志:logA,版本號:2,修改類型:Modify}。

      由于后續(xù)處理只需對發(fā)生更新的文件建立索引,而無需對全部文件進(jìn)行處理,因此提高了索引建立和更新的效率。另外,由于建立索引的過程不僅為文件內(nèi)容建立索引,而且還為每個文件的屬性信息建立索引,由此既可以滿足用戶通過文件內(nèi)容來搜索的需求,又可以滿足用戶通過屬性信息(例如:SVN日志)來進(jìn)行搜索的需求。

      在優(yōu)選實(shí)施過程中,還可以從SVN版本庫中獲取該文件的更新方式,其可以包括但不限于以下至少之一:

      方式一、在文件列表中新增一條文件記錄;

      方式二、定位到文件列表中特定文件對應(yīng)的條目進(jìn)行修改;

      方式三、對文件列表中的特定文件停止更新,只保留其歷史記錄。

      考慮到更新類型決定后續(xù)對于這條索引的處理方式,此處定義三個狀態(tài)符號分別為Modify,Add,Del,其中,Modify表示修改,代表特定文件對應(yīng)的信息在后續(xù)處理過程中執(zhí)行更新操作,Add表示新增,代表特定文件是新增的文件,后續(xù)的操作需要增加特定文件的信息,Del表示刪除,代表特定文件對應(yīng)的記錄需要在系統(tǒng)中停止更新,而僅保留先前記錄的版本信息。

      可選地,在步驟S12中,從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容可以包括以下執(zhí)行步驟:

      步驟S120,根據(jù)更新文件集合中包含的每個文件的文件名稱后綴進(jìn)行分類;

      步驟S121,從分類后未包含圖片信息的第一類型文件中提取文本內(nèi)容,和/或,從分類后包含圖片信息的第二類型文件中分別提取圖片內(nèi)容或者提取文本內(nèi)容和圖片內(nèi)容。

      根據(jù)文件名稱的后綴可以將不同類型文件進(jìn)行分類,并針對不同分類采用對應(yīng)的處理方式進(jìn)行文件信息提取。具體地,根據(jù)文件名稱的后綴可以將文件具體劃分為:

      (1)文本文件:后綴為txt、js、py、html、xml等,其處理方式為:直接讀取文件中的文本內(nèi)容,如果出現(xiàn)不可讀,則忽略這個文件。

      (2)圖片文件:后綴為jpg、bmp、png等,其處理方式為:直接進(jìn)行后續(xù)圖像特征處理。

      (3)pdf文件:后綴為pdf,其處理方式為:利用python的pdfminer功能組件來提取pdf文件的文本內(nèi)容和圖片內(nèi)容,對于圖片部分需要進(jìn)行后續(xù)圖像特征處理。

      (4)excel文件:后綴為xlsx或者xls,其處理方式為:采用python的xlrd功能組件來提取excel的文本內(nèi)容和圖片內(nèi)容,對于圖片部分需要進(jìn)行后續(xù)圖像特征處理。

      (5)word文件:后綴為doc或者docx,其處理方式為:采用python的docx功能組件來提取word的文本內(nèi)容和圖片內(nèi)容,對于圖片部分需要進(jìn)行后續(xù)圖像特征處理。

      此外,其他類型的文件將統(tǒng)一采用與文本文件相同的處理方式。

      可選地,在步驟S14中,對文件屬性信息集合以及文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換可以包括以下執(zhí)行步驟:

      步驟S140,判斷文件屬性信息集合所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文件屬性信息集合所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;

      步驟S141,判斷文本內(nèi)容所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文本內(nèi)容所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;和/或,從圖片內(nèi)容中提取圖像特征,并判斷圖像特征所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將圖像特征所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式。

      在優(yōu)選實(shí)施例中,可以采用預(yù)設(shè)圖片特征提取算法提取圖像特征,其能夠?qū)⒁环鶊D像采用一組特征描述算子來表示。對于單獨(dú)的圖片文件,可以直接從圖片內(nèi)容中提取圖像特征,再結(jié)合上述文件屬性信息集合,進(jìn)行統(tǒng)一編碼后建立索引。對于文件中的圖片,將同樣采用上述預(yù)設(shè)圖片特征提取算法提取圖像特征,然后將圖像特征、文件中的文本內(nèi)容以及上述文件屬性信息集合進(jìn)行統(tǒng)一編碼后建立索引。

      對于圖片文件或者包含圖片的文件,對圖片進(jìn)行特征提取,采用圖像特征代替圖片文件,由于只保留特征信息而不是圖像的每個像素點(diǎn),因此,極大地減少了存儲空間,提高了檢索效率。

      例如:圖片文件的尺寸為n×n大小,其中,n表示像素個數(shù);該圖片文件需要占用的存儲空間即為n×n個像素所需要占用的存儲空間,其檢索需要比較的樣本點(diǎn)數(shù)同樣為n×n個。而通過特征提取,可以采用一組特征向量來表示該圖片文件,特征向量大小為m×1,其中,m表示特征向量個數(shù)??紤]到在通常情況下,m將遠(yuǎn)小于n×n,由此可以較為明顯地降低存儲空間的占用,提升搜索效率。

      另外,不同的文件字符可能分別采用不同的編碼方式,常見的編碼方式可以包括但不限于:Unicode、ASCII、GBK、GB2312、UTF-8。對于相同的文本內(nèi)容而言,如果分別采用不同的編碼方式,則用戶終端會將兩者識別為不同內(nèi)容。但是對于文本內(nèi)容搜索而言,并不關(guān)注文本的編碼方式,如果不對文本進(jìn)行統(tǒng)一的編碼,易造成搜索過程可能因?yàn)榫幋a不同導(dǎo)致搜索不到對應(yīng)文件,進(jìn)而降低搜索的準(zhǔn)確性。然而,如果在搜索過程中,對于每個文件搜索,都針對不同的文本進(jìn)行編碼識別和轉(zhuǎn)碼,又會帶來額外的時間開銷。因此,需要對文本中的字符進(jìn)行統(tǒng)一編碼。

      在本發(fā)明所提供的優(yōu)選實(shí)施例中,采用的文本編碼為Unicode,統(tǒng)一編碼的處理方式如下:

      (1)對于占用較小存儲空間的文件,讀取全部文件內(nèi)容;對于占用較大存儲空間的文件,讀取該文件中的預(yù)設(shè)行數(shù)文本(例如:前三行文本),并標(biāo)記為S。

      (2)采用python的chardet功能組件檢測S的編碼方式,作為該文本的編碼方式。文本文件通常全文采用同一種編碼方式,對于幾萬行至更多行的較大文件,只抽樣前幾行進(jìn)行編碼方式識別,可以降低內(nèi)存消耗,同時提高檢測速度。

      (3)如果(2)中檢測到的文本編碼并非是Unicode,那么需要將文本統(tǒng)一編碼為Unicode。

      可選地,在步驟S14中,建立文件搜索索引還可以包括以下執(zhí)行步驟:

      步驟S142,當(dāng)提取到文本內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與圖片內(nèi)容對應(yīng)的字段填入空字符串;或者,當(dāng)提取到圖片內(nèi)容時,在采用統(tǒng)一編碼后的圖片內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與文本內(nèi)容對應(yīng)的字段填入空字符串;或者,當(dāng)提取到文本內(nèi)容和圖片內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容、圖片內(nèi)容和文件屬性信息集合三者之間建立關(guān)聯(lián)索引。

      采用全文搜索引擎whoosh對每個文件中提取的文本,文本中的圖片特征和文件屬性信息集合進(jìn)行新增索引、索引內(nèi)容更新或者索引內(nèi)容停止更新操作。索引中缺失的字段默認(rèn)存入空字符串即可,例如:對于單純的圖片文件,文件中沒有文本內(nèi)容,該字段存入空字符串即可。

      可選地,在步驟S14,對文件屬性信息集合以及文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引之后,還可以包括以下執(zhí)行步驟:

      步驟S15,接收來自于用戶終端的文本搜索信息和/或圖片搜索信息,其中,文本搜索信息和/或圖片搜索信息均采用預(yù)定義的編碼格式,文本搜索信息是從用戶在用戶終端輸入的文本信息中提取的一個或多個關(guān)鍵詞且文本信息包括以下至少之一:文件本身包含的字符內(nèi)容、文件屬性信息集合中的部分或全部文件屬性信息,圖片搜索信息從用戶在用戶終端輸入的圖片信息中提取的圖像特征;

      步驟S16,采用文件搜索索引查找與文本搜索信息對應(yīng)的第一備選文本集合,和/或,與圖片搜索信息對應(yīng)的第二備選文件集合,和/或,與文本搜索信息和圖片搜索信息對應(yīng)的第三備選文件集合,其中,第一備選文本集合和第二備選文件集合中包含的文件數(shù)量為預(yù)先自定義,第三備選文件集合是由文本搜索信息對應(yīng)的搜索結(jié)果與圖片搜索信息對應(yīng)的搜索結(jié)果進(jìn)行邏輯與操作后得到的。

      用戶不僅可以選擇輸入文字進(jìn)行檢索,服務(wù)端會根據(jù)用戶的輸入自動選擇利用文本信息進(jìn)行搜索;用戶而且可以選擇輸入圖片進(jìn)行檢索,服務(wù)端會根據(jù)用戶的輸入自動選擇利用圖像特征進(jìn)行搜索;此外,用戶還可以選擇輸入結(jié)合文字和圖片進(jìn)行檢索,服務(wù)端會根據(jù)用戶的輸入自動選擇利用結(jié)合圖像特征和文本信息進(jìn)行搜索

      對于輸入的文本信息,服務(wù)端或用戶終端可以利用python的結(jié)巴分詞功能組件提取文本中的關(guān)鍵詞,然后將關(guān)鍵詞變?yōu)闉楫?dāng)前系統(tǒng)建立索引使用的統(tǒng)一編碼,此處使用的統(tǒng)一編碼方式為Unicode,然后利用關(guān)鍵詞在文本索引中進(jìn)行搜索。

      如果輸入的是圖片信息,則首先利用服務(wù)端或用戶終端進(jìn)行特征提取,其次將其編碼為Unicode,然后在圖像特征索引中進(jìn)行搜索,以查找關(guān)聯(lián)的圖片文件或者是包含該圖片的word、excel、pdf等類型文件。

      如果輸入的是圖片和文本的組合信息,服務(wù)端將分別按照文本和圖片的搜索的處理方式進(jìn)行檢索,以獲取圖片搜索結(jié)果和文本搜索的結(jié)果。

      對于不同的文件進(jìn)行統(tǒng)一編碼,不但可以提高檢索的正確性,同時還可以減少搜索內(nèi)容在不同編碼類型之間轉(zhuǎn)換的時間開銷。

      可選地,在步驟S16,采用文件搜索索引查找第一備選文本集合和/或第二備選文件集合之后,還可以包括以下執(zhí)行步驟:

      步驟S17,向用戶終端返回第一備選文本集合、第二備選文件集合與第三備選文件集合中至少之一,其中,第一備選文本集合中的文件按照關(guān)鍵詞匹配度由高到低進(jìn)行排列,第二備選文本集合中的文件按照圖像特征距離匹配度由高到低進(jìn)行排列,在向用戶終端返回第三備選文件集合時,優(yōu)先顯示第三備選文件集合。

      在結(jié)果的顯示方面,搜索的結(jié)果優(yōu)先顯示文本特征檢索命中并且圖像特征檢索命中的結(jié)果,其次,依次顯示M個圖像特征檢索命中,但文本關(guān)鍵字檢索未命中的結(jié)果,再次,依次顯示N個文本關(guān)鍵字檢索命中,但圖像特征檢索未命中的結(jié)果,其中,M和N可以由用戶自定義。具體地,對于純文本的搜索方式,關(guān)鍵字匹配越多的文件排在最前面。對于圖片檢索的方式,圖片特征距離越短,表明圖片越相似,則優(yōu)先顯示。對于圖片加文本組合的搜索方式,對于圖片搜索結(jié)果和文本搜索結(jié)果進(jìn)行邏輯與的操作,優(yōu)先顯示,然后優(yōu)先顯示圖片特征檢索命中的M個文件,和文本關(guān)鍵字檢索命中的N個文件。

      根據(jù)本發(fā)明實(shí)施例,提供了一種文件搜索裝置的實(shí)施例,圖2是根據(jù)本發(fā)明實(shí)施例的文件搜索裝置的流程圖。如圖2所示,該裝置包括:獲取模塊10,用于從預(yù)設(shè)文件存儲區(qū)域獲取更新文件集合以及更新文件集合中每個文件對應(yīng)的文件屬性信息集合;提取模塊20,用于從更新文件集合的每個文件中分別提取文本內(nèi)容和/或圖片內(nèi)容;處理模塊30,用于對獲取到的文件屬性信息集合以及提取到的文本內(nèi)容和/或圖片內(nèi)容進(jìn)行統(tǒng)一編碼格式轉(zhuǎn)換,并建立文件搜索索引。

      上述更新文件集合為預(yù)設(shè)文件存儲區(qū)域內(nèi)存儲的部分或全部文件在不同版本號之間發(fā)生過更新的文件。

      上述文件屬性信息集合可以包括但不限于以下至少之一:

      (1)對文件進(jìn)行更新的人員信息;

      (2)文件更新時間;

      (3)文件更新后的版本號;

      (4)文件更新的日志信息;

      (5)文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、刪除文件。

      可選地,圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的文件搜索裝置的流程圖。如圖3所示,提取模塊20可以包括:分類單元200,用于根據(jù)更新文件集合中包含的每個文件的文件名稱后綴進(jìn)行分類;提取單元202,用于從分類后未包含圖片信息的第一類型文件中提取文本內(nèi)容,和/或,從分類后包含圖片信息的第二類型文件中分別提取圖片內(nèi)容或者提取文本內(nèi)容和圖片內(nèi)容。

      可選地,如圖3所示,處理模塊30可以包括:第一處理單元300,用于判斷文件屬性信息集合所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文件屬性信息集合所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;第二處理單元302,用于判斷文本內(nèi)容所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將文本內(nèi)容所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式;和/或,從圖片內(nèi)容中提取圖像特征,并判斷圖像特征所采用的編碼格式與預(yù)定義的編碼格式是否相同,如果不同,則將圖像特征所采用的編碼格式轉(zhuǎn)換為預(yù)定義的編碼格式。

      可選地,如圖3所示,處理模塊30還可以包括:第三處理單元304,用于當(dāng)提取到文本內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與圖片內(nèi)容對應(yīng)的字段填入空字符串;或者,當(dāng)提取到圖片內(nèi)容時,在采用統(tǒng)一編碼后的圖片內(nèi)容與文件屬性信息集合之間建立關(guān)聯(lián)索引,并在與文本內(nèi)容對應(yīng)的字段填入空字符串;或者,當(dāng)提取到文本內(nèi)容和圖片內(nèi)容時,在采用統(tǒng)一編碼后的文本內(nèi)容、圖片內(nèi)容和文件屬性信息集合三者之間建立關(guān)聯(lián)索引。

      可選地,如圖3所示,上述裝置還可以包括:接收模塊40,用于接收來自于用戶終端的文本搜索信息和/或圖片搜索信息,其中,文本搜索信息和/或圖片搜索信息均采用預(yù)定義的編碼格式,文本搜索信息是從用戶在用戶終端輸入的文本信息中提取的一個或多個關(guān)鍵詞且文本信息包括以下至少之一:文件本身包含的字符內(nèi)容、文件屬性信息集合中的部分或全部文件屬性信息,圖片搜索信息從用戶在用戶終端輸入的圖片信息中提取的圖像特征;查找模塊50,用于采用文件搜索索引查找與文本搜索信息對應(yīng)的第一備選文本集合,和/或,與圖片搜索信息對應(yīng)的第二備選文件集合,和/或,與文本搜索信息和圖片搜索信息對應(yīng)的第三備選文件集合,其中,第一備選文本集合和第二備選文件集合中包含的文件數(shù)量為預(yù)先自定義,第三備選文件集合是由文本搜索信息對應(yīng)的搜索結(jié)果與圖片搜索信息對應(yīng)的搜索結(jié)果進(jìn)行邏輯與操作后得到的。

      可選地,如圖3所示,上述裝置還可以包括:反饋模塊60,用于向用戶終端返回第一備選文本集合、第二備選文件集合與第三備選文件集合中至少之一,其中,第一備選文本集合中的文件按照關(guān)鍵詞匹配度由高到低進(jìn)行排列,第二備選文本集合中的文件按照圖像特征距離匹配度由高到低進(jìn)行排列,在向用戶終端返回第三備選文件集合時,優(yōu)先顯示第三備選文件集合。

      上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

      在本發(fā)明的上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

      在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

      所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

      另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

      所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可為個人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

      以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1