999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux 架構下本地文件快速搜索工具設計與實現

2020-11-27 03:24:28劉兵
科學技術創新 2020年33期
關鍵詞:數據庫用戶系統

劉兵

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

本論文的研究內容是設計并實現一個基于Linux 平臺B/S架構的多功能信息檢索代理系統,該系統能夠實現本地文件檢索和詞語的在線搜索,使用戶有更好的用戶體驗。更好地利用Linux 系統,提高工作效率和學習效率。

1 背景介紹

近年來,Linux 操作系統的普及,Linux 發行了各種版本,包括Red Hat Linux、Ubuntu Linux、SuSE Linux 及Gentoo Linux等,國內的中標和麒麟也越來越成熟,越來越多的用戶選擇Linux 系統。但目前各Linux 版本下沒有一個易于使用的像Windows 系統下的本地快速搜索工具。因此,開發一個輕量級本地文件搜索工具是非常必要的。

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

1.1 文件管理器

文件管理器是Linux 系統提供用戶界面管理文件的工具,常見的Linux 文件管理器有鸚鵡螺、海豚、尼莫和牡丹等。這些管理器都提供了文件管理、文檔查看及網絡瀏覽的功能。對普通用戶而言文件管理器是最方便的文件搜索工具。但是,Linux系統的文件管理器在搜索文件時是對整個磁盤文件進行掃描,搜索文件的時間會很長,嚴重影響用戶的體驗和工作效率。

1.2 查找命令(find)

Linux 系統下通常用find 命令在指定的目錄下查找文件。find 命令根據文件屬性包括文件名、正則表達式、文件權限、文件大小等多種查詢方式進行搜索。由于find 命令會在當前目錄下查找所有的子目錄和文件,所以如果系統中文件和目錄比較復雜時通過find 命令查找文件的效率會很低,通常要花十幾分鐘才能搜索完整個目錄樹。

1.3 定位命令(locate)

Linux 系統下通過定位命令可以快速的搜索到系統的指定文件,它的效率比find 命令要快很多。Locate 命令預先構建一個包括系統所有文件名和路徑的索引數據庫,然后當搜索文件時只需要在這個索引數據庫中進行查詢匹配文件信息就可以了。構建索引數據庫需要遍歷整個Linux 系統的根目錄,這個過程比較耗費資源,而且locate 命令不是實時查找,查找的結果不是百分百準確。

通過對上述三種方法的分析,都不能滿足用戶快速實時準確進行文件檢索和詞語的在線搜索,所以設計和開發一個本地文件快速搜索工具來滿足工程中的用戶需求當務之急。

2 快速搜索工具軟件設計

快速搜索工具軟件設計結構主要包括業務邏輯、后臺數據處理、用戶界面三個部分,該軟件采用簡化的模型- 視圖- 控制器(MVC)模式。MVC 模式可以把數據庫和業務邏輯以及用戶界面的開發分開,當軟件需求、算法改進或用戶界面改變時,軟件易于維護和升級。

2.1 業務邏輯模型

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

表1 業務邏輯模型中的主要功能

2.2 后臺數據模塊

后臺數據管理使用SQLite 數據庫。SQLite 是一款輕型的關系型數據庫,其特點是體積小、性能高、可移植性。同時它可以在Windows、Unix、Linux 等主流操作系統的軟件平臺中運行。它可以與許多編程語言(C、Java、PHP、Python 等)以及ODBC 接口相結合。

2.3 用戶界面顯示

Python 作為一種跨平臺的、結合了編譯性、解釋性、互動性和面向對象的腳本語言,Python 開發人員可以選擇GUI 開發框架,包括wxpython、pyqt5、gtk 和tkinter。

由于工程中各應用軟件都是基于QT 進行開發的,所以該軟件選擇pyqt5 作為用戶界面的開發框架。

3 關鍵技術設計

3.1 索引設計與實現

3.1.1 數據的實時更新

Inotify 是一個Linux 內核特性,它提供了監視文件系統事件的機制,及時向應用程序發出相關的事件警告,比如文件刪除、文件添加,文件讀寫和卸載操作等,還可以跟蹤活動的源頭和目標等細節。

3.1.2 實時監控和更新文件索引

Inotifywait 用于收集有關文件訪問信息。該命令可以監視任何指定的文件或目錄,并且可以遞歸地監視該目錄下的整個目錄樹。

在應用程序使用inotifywait 命令獲取監視目錄更改事件之后,應用程序將保存更改的信息并更新數據庫中的信息。主要腳本如下:

3.2 檢索算法實現設計

為了從字典中快速找到對應的單詞,系統使用一種特定的方法來查找單詞排序。

這個詞建立了一個等級索引。在搜索時使用二進制搜索算法,首先在第一級索引中查找,查找在單詞所在的頁面之后,仍然使用二進制搜索算法在頁面中找到它。二進制搜索要求:a.必須采用順序存儲結構;b.必須按關鍵字大小順序排列。

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

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

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

4 工程使用及運行效果

該軟件設計主要用于某工程的文件檢索和定位,該工程中需要在硬盤上保存大量的系統實時數據,該數據包括原始數據、運算結果、報表評估等各種結果數據,數據量大,存儲的結構比較復雜,而且用戶需要根據知道的條件快速定位到文件,獲取到文件的詳細信息。

系統實際的運行環境:

操作系統是Enterprise Red Hat 7; 開發工具是PyDev 插件和Eclipse;硬件CPU 為inter i7、內存ddr3 256GB、和1TB 硬盤。

軟件運行效果如圖1 所示。

圖1 本地搜索運行截圖

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

結束語

和Linux 系統自帶的文件管理器、locate 命令和find 命令相比,該工具體積小,運行速度快,搜索文件快,同時還支持模糊查詢,通過工具查詢到結果后雙擊搜索到的文件即可打開所需文件并實現文件索引的實時更新。后續軟件設計將引入多線程技術,優化文件索引的算法,縮短索引的建立時間,同時完善索引接口來實現智能化搜索,提高用戶在工程中的使用滿意度。

猜你喜歡
數據庫用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 91麻豆精品视频| 97综合久久| 久久国产高清视频| 亚洲三级a| 91亚瑟视频| a亚洲天堂| 亚洲精品国产日韩无码AV永久免费网| 91久久大香线蕉| 色综合久久无码网| 国产91麻豆视频| 久久精品波多野结衣| 欧美成人综合视频| 一级毛片在线播放免费观看| 91免费观看视频| 国产网站黄| 国产一级毛片网站| 亚瑟天堂久久一区二区影院| 怡春院欧美一区二区三区免费| 玖玖精品视频在线观看| 尤物在线观看乱码| 18禁黄无遮挡免费动漫网站| 综合色亚洲| 欧美人人干| 国产精品区网红主播在线观看| 国产精品久久久久鬼色| 婷婷综合亚洲| 国产精品视频久| 国产乱子伦视频在线播放| 亚洲中文无码h在线观看| 在线观看国产网址你懂的| 日韩AV手机在线观看蜜芽| 国产一区二区三区在线观看免费| 二级毛片免费观看全程| 91久久国产成人免费观看| 国产99热| 国产日韩丝袜一二三区| 综合亚洲色图| 国产午夜精品一区二区三区软件| 日韩成人在线网站| 91麻豆精品视频| 青草视频久久| 麻豆国产精品一二三在线观看| 亚洲欧美成人在线视频| 午夜a视频| 欧美日韩专区| 国产女主播一区| 免费高清a毛片| 2021无码专区人妻系列日韩| 国产精品香蕉| 伦伦影院精品一区| 伊人激情综合| 亚洲全网成人资源在线观看| 免费无码网站| 国产免费怡红院视频| 日韩福利在线视频| 久996视频精品免费观看| 久草性视频| 亚洲小视频网站| 波多野结衣AV无码久久一区| 国内熟女少妇一线天| 色妞永久免费视频| 精品乱码久久久久久久| 日韩免费视频播播| 国产地址二永久伊甸园| 美女毛片在线| 九九香蕉视频| 91免费国产在线观看尤物| 欧美日韩中文国产| 99久久国产综合精品2023| 国产91小视频在线观看 | 成人综合网址| 999国产精品| 亚洲中文字幕在线观看| 丰满的少妇人妻无码区| 天天综合色天天综合网| 67194亚洲无码| 色综合a怡红院怡红院首页| 亚洲人成人无码www| 国产成人精品一区二区秒拍1o| 亚洲精品天堂在线观看| 最新国产麻豆aⅴ精品无| 国产人在线成免费视频|