亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Linux 架構(gòu)下本地文件快速搜索工具設(shè)計(jì)與實(shí)現(xiàn)

        2020-11-27 03:24:28劉兵
        科學(xué)技術(shù)創(chuàng)新 2020年33期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶系統(tǒng)

        劉兵

        (中國(guó)電子科技集團(tuán)第二十八研究所,江蘇 南京210007)

        本論文的研究?jī)?nèi)容是設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于Linux 平臺(tái)B/S架構(gòu)的多功能信息檢索代理系統(tǒng),該系統(tǒng)能夠?qū)崿F(xiàn)本地文件檢索和詞語(yǔ)的在線搜索,使用戶有更好的用戶體驗(yàn)。更好地利用Linux 系統(tǒng),提高工作效率和學(xué)習(xí)效率。

        1 背景介紹

        近年來(lái),Linux 操作系統(tǒng)的普及,Linux 發(fā)行了各種版本,包括Red Hat Linux、Ubuntu Linux、SuSE Linux 及Gentoo Linux等,國(guó)內(nèi)的中標(biāo)和麒麟也越來(lái)越成熟,越來(lái)越多的用戶選擇Linux 系統(tǒng)。但目前各Linux 版本下沒(méi)有一個(gè)易于使用的像Windows 系統(tǒng)下的本地快速搜索工具。因此,開(kāi)發(fā)一個(gè)輕量級(jí)本地文件搜索工具是非常必要的。

        任何操作系統(tǒng)都由數(shù)千個(gè)文件組成,Linux 系統(tǒng)下的公共文件、字符設(shè)備、目錄、塊設(shè)備、套接字等都被視為文件。通常在Linux 系統(tǒng)下確定問(wèn)題存放位置的方法有三種:Linux 系統(tǒng)桌面版本的文件管理器、locate 命令和find 命令。

        1.1 文件管理器

        文件管理器是Linux 系統(tǒng)提供用戶界面管理文件的工具,常見(jiàn)的Linux 文件管理器有鸚鵡螺、海豚、尼莫和牡丹等。這些管理器都提供了文件管理、文檔查看及網(wǎng)絡(luò)瀏覽的功能。對(duì)普通用戶而言文件管理器是最方便的文件搜索工具。但是,Linux系統(tǒng)的文件管理器在搜索文件時(shí)是對(duì)整個(gè)磁盤(pán)文件進(jìn)行掃描,搜索文件的時(shí)間會(huì)很長(zhǎng),嚴(yán)重影響用戶的體驗(yàn)和工作效率。

        1.2 查找命令(find)

        Linux 系統(tǒng)下通常用find 命令在指定的目錄下查找文件。find 命令根據(jù)文件屬性包括文件名、正則表達(dá)式、文件權(quán)限、文件大小等多種查詢方式進(jìn)行搜索。由于find 命令會(huì)在當(dāng)前目錄下查找所有的子目錄和文件,所以如果系統(tǒng)中文件和目錄比較復(fù)雜時(shí)通過(guò)find 命令查找文件的效率會(huì)很低,通常要花十幾分鐘才能搜索完整個(gè)目錄樹(shù)。

        1.3 定位命令(locate)

        Linux 系統(tǒng)下通過(guò)定位命令可以快速的搜索到系統(tǒng)的指定文件,它的效率比f(wàn)ind 命令要快很多。Locate 命令預(yù)先構(gòu)建一個(gè)包括系統(tǒng)所有文件名和路徑的索引數(shù)據(jù)庫(kù),然后當(dāng)搜索文件時(shí)只需要在這個(gè)索引數(shù)據(jù)庫(kù)中進(jìn)行查詢匹配文件信息就可以了。構(gòu)建索引數(shù)據(jù)庫(kù)需要遍歷整個(gè)Linux 系統(tǒng)的根目錄,這個(gè)過(guò)程比較耗費(fèi)資源,而且locate 命令不是實(shí)時(shí)查找,查找的結(jié)果不是百分百準(zhǔn)確。

        通過(guò)對(duì)上述三種方法的分析,都不能滿足用戶快速實(shí)時(shí)準(zhǔn)確進(jìn)行文件檢索和詞語(yǔ)的在線搜索,所以設(shè)計(jì)和開(kāi)發(fā)一個(gè)本地文件快速搜索工具來(lái)滿足工程中的用戶需求當(dāng)務(wù)之急。

        2 快速搜索工具軟件設(shè)計(jì)

        快速搜索工具軟件設(shè)計(jì)結(jié)構(gòu)主要包括業(yè)務(wù)邏輯、后臺(tái)數(shù)據(jù)處理、用戶界面三個(gè)部分,該軟件采用簡(jiǎn)化的模型- 視圖- 控制器(MVC)模式。MVC 模式可以把數(shù)據(jù)庫(kù)和業(yè)務(wù)邏輯以及用戶界面的開(kāi)發(fā)分開(kāi),當(dāng)軟件需求、算法改進(jìn)或用戶界面改變時(shí),軟件易于維護(hù)和升級(jí)。

        2.1 業(yè)務(wù)邏輯模型

        業(yè)務(wù)邏輯模型(LogicModule.py)用于處理搜索工具軟件的數(shù)據(jù)邏輯。它包含了創(chuàng)建文件索引數(shù)據(jù)庫(kù)、索引數(shù)據(jù)庫(kù)庫(kù)的查詢、數(shù)據(jù)庫(kù)記錄更新以及全局變量等。主要功能如表1 所示。這些函數(shù)實(shí)現(xiàn)指定目錄中的文件索引創(chuàng)建、索引數(shù)據(jù)庫(kù)創(chuàng)建、實(shí)時(shí)文件索引更新和索引數(shù)據(jù)的查詢等。

        表1 業(yè)務(wù)邏輯模型中的主要功能

        2.2 后臺(tái)數(shù)據(jù)模塊

        后臺(tái)數(shù)據(jù)管理使用SQLite 數(shù)據(jù)庫(kù)。SQLite 是一款輕型的關(guān)系型數(shù)據(jù)庫(kù),其特點(diǎn)是體積小、性能高、可移植性。同時(shí)它可以在Windows、Unix、Linux 等主流操作系統(tǒng)的軟件平臺(tái)中運(yùn)行。它可以與許多編程語(yǔ)言(C、Java、PHP、Python 等)以及ODBC 接口相結(jié)合。

        2.3 用戶界面顯示

        Python 作為一種跨平臺(tái)的、結(jié)合了編譯性、解釋性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,Python 開(kāi)發(fā)人員可以選擇GUI 開(kāi)發(fā)框架,包括wxpython、pyqt5、gtk 和tkinter。

        由于工程中各應(yīng)用軟件都是基于QT 進(jìn)行開(kāi)發(fā)的,所以該軟件選擇pyqt5 作為用戶界面的開(kāi)發(fā)框架。

        3 關(guān)鍵技術(shù)設(shè)計(jì)

        3.1 索引設(shè)計(jì)與實(shí)現(xiàn)

        3.1.1 數(shù)據(jù)的實(shí)時(shí)更新

        Inotify 是一個(gè)Linux 內(nèi)核特性,它提供了監(jiān)視文件系統(tǒng)事件的機(jī)制,及時(shí)向應(yīng)用程序發(fā)出相關(guān)的事件警告,比如文件刪除、文件添加,文件讀寫(xiě)和卸載操作等,還可以跟蹤活動(dòng)的源頭和目標(biāo)等細(xì)節(jié)。

        3.1.2 實(shí)時(shí)監(jiān)控和更新文件索引

        Inotifywait 用于收集有關(guān)文件訪問(wèn)信息。該命令可以監(jiān)視任何指定的文件或目錄,并且可以遞歸地監(jiān)視該目錄下的整個(gè)目錄樹(shù)。

        在應(yīng)用程序使用inotifywait 命令獲取監(jiān)視目錄更改事件之后,應(yīng)用程序?qū)⒈4娓牡男畔⒉⒏聰?shù)據(jù)庫(kù)中的信息。主要腳本如下:

        3.2 檢索算法實(shí)現(xiàn)設(shè)計(jì)

        為了從字典中快速找到對(duì)應(yīng)的單詞,系統(tǒng)使用一種特定的方法來(lái)查找單詞排序。

        這個(gè)詞建立了一個(gè)等級(jí)索引。在搜索時(shí)使用二進(jìn)制搜索算法,首先在第一級(jí)索引中查找,查找在單詞所在的頁(yè)面之后,仍然使用二進(jìn)制搜索算法在頁(yè)面中找到它。二進(jìn)制搜索要求:a.必須采用順序存儲(chǔ)結(jié)構(gòu);b.必須按關(guān)鍵字大小順序排列。

        優(yōu)缺點(diǎn):半重搜索方法的優(yōu)點(diǎn)是比較次數(shù)少,搜索速度快,平均性能好;缺點(diǎn)是待檢查的表是排序表,插入和刪除困難。因此,二元搜索方法適用于不頻繁變化查找頻繁排序的列表。

        算法思想:首先,將記錄在表的中間位置的關(guān)鍵字與搜索關(guān)鍵字進(jìn)行比較。如果兩者相等,則搜索成功;否則,如果中間位置,則使用中間位置記錄將表劃分為兩個(gè)子表。如果位置記錄的關(guān)鍵字大于搜索關(guān)鍵字,則進(jìn)一步搜索前一個(gè)子表,否則在進(jìn)一步搜索之后。比較后一個(gè)子列表的中間記錄關(guān)鍵字和要搜索的關(guān)鍵字,重復(fù)上述步驟,直到找到為止。下面提供了算法的偽代碼:

        二進(jìn)制搜索算法充分利用待檢數(shù)組的有序特性,采用分治策略。即使在最壞的情況下,算法的搜索時(shí)間復(fù)雜度也是O(log n)。

        4 工程使用及運(yùn)行效果

        該軟件設(shè)計(jì)主要用于某工程的文件檢索和定位,該工程中需要在硬盤(pán)上保存大量的系統(tǒng)實(shí)時(shí)數(shù)據(jù),該數(shù)據(jù)包括原始數(shù)據(jù)、運(yùn)算結(jié)果、報(bào)表評(píng)估等各種結(jié)果數(shù)據(jù),數(shù)據(jù)量大,存儲(chǔ)的結(jié)構(gòu)比較復(fù)雜,而且用戶需要根據(jù)知道的條件快速定位到文件,獲取到文件的詳細(xì)信息。

        系統(tǒng)實(shí)際的運(yùn)行環(huán)境:

        操作系統(tǒng)是Enterprise Red Hat 7; 開(kāi)發(fā)工具是PyDev 插件和Eclipse;硬件CPU 為inter i7、內(nèi)存ddr3 256GB、和1TB 硬盤(pán)。

        軟件運(yùn)行效果如圖1 所示。

        圖1 本地搜索運(yùn)行截圖

        該軟件能滿足用戶在系統(tǒng)軟件中快速定位文件的需求,而且在工程中得到了驗(yàn)證,得到了用戶的肯定。

        結(jié)束語(yǔ)

        和Linux 系統(tǒng)自帶的文件管理器、locate 命令和find 命令相比,該工具體積小,運(yùn)行速度快,搜索文件快,同時(shí)還支持模糊查詢,通過(guò)工具查詢到結(jié)果后雙擊搜索到的文件即可打開(kāi)所需文件并實(shí)現(xiàn)文件索引的實(shí)時(shí)更新。后續(xù)軟件設(shè)計(jì)將引入多線程技術(shù),優(yōu)化文件索引的算法,縮短索引的建立時(shí)間,同時(shí)完善索引接口來(lái)實(shí)現(xiàn)智能化搜索,提高用戶在工程中的使用滿意度。

        猜你喜歡
        數(shù)據(jù)庫(kù)用戶系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫(kù)
        国产成人亚洲精品青草天美| 亚洲av资源网站手机在线| 亚洲一区二区国产激情| 免费视频爱爱太爽了| 欧美成人三级一区二区在线观看| 日本一区二区亚洲三区| 中文字幕影片免费人妻少妇| 久久精品中文字幕大胸 | 国产精品女视频一区二区| 色婷婷av一区二区三区不卡| 国产精品亚洲av三区亚洲| 永久免费av无码入口国语片| 国产哟交泬泬视频在线播放| 国产精品国产三级国a| 在线观看人成视频免费| 国产精品福利视频一区| а的天堂网最新版在线| 青青草中文字幕在线播放| 亚洲一区二区三区四区五区六| 国产成人综合久久精品推| 一亚洲一区二区中文字幕| 国产高清一区二区三区四区色| 天堂…在线最新版资源| 伊人婷婷色香五月综合缴激情| 亚洲精品大全中文字幕| 国产精品爽爽久久久久久竹菊| 久久亚洲av永久无码精品| 扒开双腿操女人逼的免费视频| 亚洲av不卡免费在线| 激情综合一区二区三区| 韩国日本亚洲精品视频| 男女性行为免费视频网站| 乱子伦在线观看| 亚洲AV无码精品呻吟| 国产一区二区在线中文字幕| 国产av国片精品jk制服| 无码少妇一级AV便在线观看| 亚洲黄片av在线免费观看| 国产自国产自愉自愉免费24区| 男女性高爱潮免费观看| 素人系列免费在线观看|