




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
[13]是一個分布式、可擴展、面向列的數(shù)據(jù)庫系統(tǒng),它基于Google的Bigtable設計,且開源實現(xiàn),在ApacheHadoop上運行。HBase的設計靈感來自于Bigtable,但與Bigtable相比,HBase更加開源且適用于更廣泛的應用場景,旨在提供高可靠性、高性能和高可用性的數(shù)據(jù)存儲和訪問解決方案。HBase支持強一致性和最終一致性的數(shù)據(jù)訪問模型,并通過ApacheZooKeeper實現(xiàn)分布式協(xié)調(diào)和管理。HBase還提供了一些高級特性,例如復制、自動失效轉(zhuǎn)移和自動分區(qū)等,以提高數(shù)據(jù)可靠性和系統(tǒng)可用性。3.1.2HBase系統(tǒng)架構如下圖1所示,HBase是一個基于Hadoop的分布式列存儲數(shù)據(jù)庫,核心由HMaster和RegionServer組成。HMaster負責管理元數(shù)據(jù)和分布式協(xié)調(diào),RegionServer負責數(shù)據(jù)存儲和計算。數(shù)據(jù)以表名和行鍵組織,表由多個Region組成。讀寫通過客戶端與HMaster和RegionServer交互實現(xiàn),數(shù)據(jù)存儲在HDFS上。ZooKeeper用于分布式協(xié)調(diào)和故障恢復。HBase具備高擴展性、高可用性和容錯性,適用于大規(guī)模結(jié)構化數(shù)據(jù)處理。圖1HBase系統(tǒng)架構圖3.1.3HBase數(shù)據(jù)模型在HBase中,數(shù)據(jù)是以表(Table)的形式進行組織和存儲的,表由多個行(Row)組成,每個行由多個列(Column)組成,每個列可以有多個版本(Version)。表中的行是按照Rowkey(行鍵)排序的,并且可以通過Rowkey來進行快速訪問和檢索。在HBase中,每個表可以包含多個列族(ColumnFamily),列族是表中的邏輯組織單元,不同的列族可以包含不同的列。每個列族在表中以一個目錄(Directory)的形式存在,目錄中包含了該列族下的所有列。HBase中的列是按照列族進行存儲的,同一列族下的所有列被存儲在一起,每個列的名稱由列族和列限定符(ColumnQualifier)組成。在HBase中,數(shù)據(jù)以一個三元組(Rowkey、Column、Timestamp)進行唯一標識,即可以用唯一的Rowkey來定位到某個行,再通過列族和列限定符來定位到某個列,最后通過Timestamp來定位到該列的某個版本。版本的數(shù)量和有效期可以通過配置來進行調(diào)整,這使得HBase在數(shù)據(jù)的更新和歷史記錄的查詢方面都有很好的支持。圖2HBase數(shù)據(jù)模型圖3.2ElasticSearchElasticSearchREF_Ref29624\r\h[14]是由Elastic公司基于Lucene開發(fā)的一款分布式、RESTful風格的企業(yè)級數(shù)據(jù)搜索及分析引擎,具有安裝方便、穩(wěn)定可靠、以及近實時搜索等特點,是市面上主流的開源搜索引擎之一。與同樣是基于Lucene開發(fā)的搜索引擎Solr相比,ElasticSearch在加載數(shù)據(jù)時的查詢性能相對更為穩(wěn)定。3.2.1ElasticSearch概念ElasticSearch是一個面向文檔的搜索引擎,它的誕生就是為了解決海量文檔數(shù)據(jù)的快速檢索查詢問題。ElasticSearch對Lucene進行了進一步封裝,Lucene為ElasticSearch提供了底層API,因此Lucene節(jié)點支持ElasticSearch的每個節(jié)點REF_Ref29624\r\h[14]。ElasticSearch之所以查詢檢索速度快,是因為它不僅僅是簡單的存儲數(shù)據(jù),還會對錄入的每一條文檔數(shù)據(jù)都進行倒排索引,并且將總數(shù)據(jù)拆解成了多個副本,每個副本又被分成多個分片,每個分片都可以被看作是一個獨立的Lucene搜索引擎,在分別檢索后返回結(jié)果并由集群的管理節(jié)點進行數(shù)據(jù)的匯總及整理。3.2.2倒排索引技術倒排索引(InvertedIndex)是ElasticSearch的核心組件之一,它是一種用于快速查找文本內(nèi)容的數(shù)據(jù)結(jié)構,通常用于全文搜索引擎和關鍵字檢索系統(tǒng)中。在傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)通常是按照記錄的形式存儲在表中,每個記錄都有一個唯一的標識符,如行號或主鍵。對于文本內(nèi)容的搜索,必須掃描整個表,逐個記錄地檢查每個字段是否包含該搜索關鍵字,這種方法在大規(guī)模數(shù)據(jù)下的效率和速度都比較低。倒排索引技術的目的就是提高文本內(nèi)容搜索的效率和速度,通過預先構建一個由關鍵字到文檔的映射表,進而快速定位包含指定該關鍵字的文檔。這種技術的本質(zhì)是將文檔的內(nèi)容從記錄的角度轉(zhuǎn)換為關鍵字的角度,以便更好地支持文本搜索和關鍵字檢索。倒排索引的構建過程分為以下兩個階段:(1)分詞(Tokenization):對于一篇文檔,首先需要對其進行分詞,將其切分成一個個單獨的詞語。這個過程通常涉及到處理停用詞(如the、a、an等)和詞干提取(將單詞的各種變形映射到其基本形式)等步驟。ElasticSearch使用的是Lucene的分詞器(Tokenizer)和過濾器(Filter)。(2)建立索引(Indexing):對于每個詞語,需要將其添加到倒排索引中。倒排索引的實際數(shù)據(jù)結(jié)構通常是一個哈希表或紅黑樹,每個詞語都對應一個由文檔編號和出現(xiàn)位置組成的倒排列表(PostingList)。這個列表通常是按照文檔編號從小到大排列的。建立完倒排索引后,ElasticSearch將對查詢語句進行分詞處理,然后在倒排索引中查找包含查詢詞的倒排列表,將所有包含查詢詞的倒排列表合并,生成文檔ID的交集,并根據(jù)相關性計算,對文檔ID進行排序,最后返回排序后的文檔列表。倒排索引將查詢的關鍵字與文檔內(nèi)容的關聯(lián)關系提前建立好,查詢時只需要檢索倒排索引中的信息,不需要遍歷所有文檔,因此查詢速度非???。倒排索引記錄了每個文檔中每個關鍵字的出現(xiàn)位置,如下圖3所示,因此可以進行更加精確的匹配,排除無關的文檔,提高搜索結(jié)果的準確度。倒排索引支持短語搜索、通配符搜索、模糊搜索、近義詞搜索等高級搜索功能,可以滿足用戶多樣化的搜索需求。此外,由于倒排索引是基于詞語建立的,因此可以將不同文檔的倒排列表合并,實現(xiàn)數(shù)據(jù)的分布式存儲和處理。ElasticSearch本身就是一款分布式搜索引擎,具備良好的擴展性和可伸縮性。圖3倒排索引示意圖3.3本章小結(jié)本章主要介紹了HBase和ElasticSearch兩個相關的知識點。在HBase部分,首先介紹了HBase的起源和發(fā)展歷程,以及它作為一個基于Hadoop的分布式數(shù)據(jù)庫系統(tǒng)的特點和優(yōu)勢。然后詳細介紹了HBase的概念,HBase的系統(tǒng)架構以及各個組件的作用和相互關系。最后介紹了HBase的數(shù)據(jù)模型和查詢機制,包括基于Rowkey的隨機查詢和范圍掃描查詢的操作流程。在ElasticSearch部分,介紹了ElasticSearch作為一款分布式、RESTful風格的搜索引擎的特點和優(yōu)勢。具體包括它基于Lucene的開發(fā),安裝方便、穩(wěn)定可靠、近實時搜索的特點等。此外,還介紹了倒排索引技術,以及它在文本內(nèi)容快速檢索中的作用和優(yōu)勢。
4.中藥文獻數(shù)據(jù)全文檢索系統(tǒng)的設計與實現(xiàn)要搭建一個具有高可用性的中藥文獻數(shù)據(jù)全文檢索系統(tǒng),必須要滿足兩大要求:海量數(shù)據(jù)存儲和快速復雜查詢。對于中藥文獻數(shù)據(jù)這種典型的非結(jié)構化數(shù)據(jù),我們可以用HBase這種NoSQL數(shù)據(jù)庫來進行存儲,實現(xiàn)海量數(shù)據(jù)的存儲及查詢。但是HBase只對Rowkey字段查詢效率高,對于普通字段查詢效率相對較低,且不支持復雜查詢,因而我們這里選擇引入ElasticSearch這一組件來實現(xiàn)我們的快速復雜查詢要求。ElasticSearch對Lucene進行了封裝,可用性高,且支持分布式,對HBase有良好的兼容性。通過將二者結(jié)合,我們可以基于HBase和ElasticSearch技術,搭建一個支持海量數(shù)據(jù)的存儲及快速查詢的中藥文獻數(shù)據(jù)全文檢索系統(tǒng)。4.1系統(tǒng)需求分析在軟件開發(fā)過程中,需求分析是軟件開發(fā)的重要一環(huán),對于軟件開發(fā)的成功與否至關重要。對于中藥文獻數(shù)據(jù)全文檢索系統(tǒng)這樣一個面向用戶的功能性系統(tǒng)而言,需求分析顯得尤為重要,在系統(tǒng)開發(fā)之前,我們需要進行詳細的需求分析,包括對系統(tǒng)的功能、性能、可靠性等方面的分析。下面本小節(jié)將從功能性需求及非功能性需求兩方面,來具體分析用戶對系統(tǒng)的需求。4.1.1功能性需求(1)檢索及展示功能:用戶可以輸入一個或多個關鍵詞,在中藥文獻數(shù)據(jù)中進行全文檢索,并得到相關文獻的檢索結(jié)果。系統(tǒng)需要將檢索結(jié)果以列表或網(wǎng)格的形式展示出來,包括文獻標題、摘要、作者、出版時間等信息,并提供相關文獻的下載功能。(2)文獻管理功能:管理員可以上傳、編輯或刪除中藥文獻數(shù)據(jù),系統(tǒng)要支持txt、PDF、json等多種格式的非結(jié)構化文獻數(shù)據(jù)的上傳。(3)用戶管理功能:系統(tǒng)要支持用戶的注冊和登錄,用戶可以注冊并登錄系統(tǒng),以便使用檢索和管理功能。此外,還要支持管理員對用戶權限進行管理,包括瀏覽、編輯、添加、刪除等權限。4.1.2非功能性需求(1)檢索響應時間:系統(tǒng)需要保證檢索速度快速響應用戶的查詢請求,響應時間應該控制在毫秒級別。(2)存儲容量:系統(tǒng)需要能夠支持存儲大規(guī)模的中藥文獻數(shù)據(jù),容量需求具體根據(jù)實際情況而定。(3)可擴展性:系統(tǒng)需要能夠支持后續(xù)數(shù)據(jù)的持續(xù)增加和擴展,例如新增文獻數(shù)據(jù)、新增搜索功能等。(4)穩(wěn)定性及安全性:系統(tǒng)需要保證在長時間運行過程中,不會出現(xiàn)系統(tǒng)崩潰等故障,并保證數(shù)據(jù)安全和用戶隱私,例如數(shù)據(jù)加密、權限控制等。在實現(xiàn)中藥文獻數(shù)據(jù)全文檢索系統(tǒng)時,我們需要綜合考慮這些需求,以確保系統(tǒng)能夠滿足用戶的需求,同時也要考慮實現(xiàn)的可行性和成本等因素,并通過合理的架構設計和技術實現(xiàn)來滿足用戶的需求。4.2系統(tǒng)架構設計良好的系統(tǒng)架構設計能夠提高系統(tǒng)的可靠性和可維護性。通過合理的模塊劃分和組件設計,可以降低系統(tǒng)的復雜度,減少錯誤發(fā)生的可能性,并且使系統(tǒng)更容易進行測試、調(diào)試和維護。通過定義松耦合的組件和可插拔的模塊,系統(tǒng)能夠容易地進行功能擴展或?qū)π滦枨筮M行適應,系統(tǒng)架構設計使得對系統(tǒng)進行修改和改進變得更加容易。通過系統(tǒng)架構設計,可以選擇最適合系統(tǒng)需求和目標的技術棧,從而提高系統(tǒng)的性能、安全性和可擴展性。4.2.1系統(tǒng)功能模塊設計在系統(tǒng)的整體設計中,我們將主要關注三個核心模塊:注冊登錄模塊、文獻檢索模塊和系統(tǒng)管理模塊,如下圖4所示。注冊登錄模塊是系統(tǒng)的入口,它包含了注冊功能、登錄功能和權限管理功能。注冊功能允許用戶創(chuàng)建新賬戶并提供必要的個人信息。登錄功能允許已注冊用戶使用其憑證進行身份驗證,以便訪問系統(tǒng)的其他功能。權限管理功能用于控制不同用戶的權限級別,確保系統(tǒng)安全和數(shù)據(jù)隱私。文獻檢索模塊是系統(tǒng)的核心功能之一,它包括全文檢索功能和文獻呈現(xiàn)及下載功能。全文檢索功能允許用戶通過關鍵詞或特定條件在中藥文獻數(shù)據(jù)庫中進行快速檢索,以找到相關的文獻記錄。文獻呈現(xiàn)及下載功能使用戶能夠查看檢索到的文獻詳細信息,并選擇進行在線預覽或下載保存。系統(tǒng)管理模塊涵蓋了用戶管理、文獻管理和系統(tǒng)監(jiān)控功能。用戶管理功能用于管理注冊用戶信息,包括添加、編輯和刪除用戶賬戶。文獻管理功能允許管理員對中藥文獻數(shù)據(jù)庫進行維護,包括文獻記錄的添加、編輯和刪除。系統(tǒng)監(jiān)控功能用于實時監(jiān)測系統(tǒng)的運行狀態(tài)、性能指標和日志記錄,以便及時發(fā)現(xiàn)和解決潛在的問題。通過以上系統(tǒng)模塊的設計,我們將實現(xiàn)一個功能完備、安全可靠的中藥文獻檢索系統(tǒng),為用戶提供高效、便捷的信息檢索和管理體驗,促進中藥研究和使用的進一步發(fā)展。圖4系統(tǒng)模塊設計圖4.2.2項目整體搭建流程圖5項目搭建流程圖如圖5所示,本項目的整體搭建流程主要包括數(shù)據(jù)采集、數(shù)據(jù)存儲、建立索引和數(shù)據(jù)展示四個環(huán)節(jié)。首先,我們需要將我們從互聯(lián)網(wǎng)上獲取到的開源數(shù)據(jù),以及現(xiàn)有數(shù)據(jù)庫中存儲的現(xiàn)有數(shù)據(jù)通過入庫程序?qū)?shù)據(jù)存儲到HBase中。接著,在數(shù)據(jù)存儲環(huán)節(jié),我們需要在HBase中建立合理的表結(jié)構和索引,以便后續(xù)進行檢索和展示。根據(jù)我們上文的需求分析,我們可以在HBaseshell中使用如下圖6的建表語句來創(chuàng)建一個名為"article"的表,其中有一個名為"info"的列族。圖7HBase建表語句要將具體字段(如DOI、author、title、summary和date)添加到表中,只需將其存儲在對應列族下的不同列中即可,HBase將會自動地根據(jù)列族信息對表數(shù)據(jù)進行管理。如圖7所示,接下來我們就可以通過我們的程序?qū)?shù)據(jù)入庫到HBase中。圖7數(shù)據(jù)入庫HBase代碼段截圖然后,我們需要利用ElasticSearch建立全文索引,將HBase中的數(shù)據(jù)同步到ElasticSearch中,并建立相應的索引。這部分過程主要是利用ElasticSearch的倒排索引技術,實現(xiàn)全文檢索功能。ElasticSearch自帶的分詞器是英文的,所以我們這里需要下載一個中文分詞器插件IKAnalyzer并修改Elasticsearch的IK分詞器配置文件。進入Elasticsearch的plugins目錄,下載并解壓IKAnalyzer,接著進入到config目錄下的analysis-ik下,編輯my_ik_config文件。對于Elasticsearch,我們需要先定義一個如下圖8所示的索引及其映射。圖8ElasticSearch索引配置此外,考慮到中藥文獻數(shù)據(jù)存在很多特有名詞及術語,為了提高檢索效率并節(jié)約存儲空間,我們還需要配置一下elasticsearch.yml文件,添加如下圖9所示的配置項來配置ElasticSearch的停用詞和擴展詞。圖9elasticsearch.yml配置在這個配置項中,我們創(chuàng)建了一個名為custom_analyzer的自定義分析器,它使用ik分詞器的ik_max_word分詞模式,stopwords.txt和synonyms.txt就是我們上傳的停用詞和擴展詞文件,我們可以在文件中按需添加對應的停用詞和擴展詞。最后,我們需要利用VUE框架搭建前端系統(tǒng),用于數(shù)據(jù)檢索和數(shù)據(jù)展示。這部分過程主要是開發(fā)前端頁面并連接后臺服務,實現(xiàn)用戶交互和數(shù)據(jù)呈現(xiàn)。整個搭建流程需要注重數(shù)據(jù)的合理存儲和索引設計,以及前端頁面的用戶友好性和性能優(yōu)化。4.2.3項目整體執(zhí)行流程圖10項目整體執(zhí)行流程圖首先,我們需要將數(shù)據(jù)存儲到HBase中,并在Redis中存儲數(shù)據(jù)的Rowkey,以便后續(xù)查詢時快速定位數(shù)據(jù)所在的位置。接著,從Redis中獲取數(shù)據(jù)的Rowkey,并利用Rowkey到HBase中查詢數(shù)據(jù),并在ElasticSearch中建立索引。這部分過程主要是利用ElasticSearch的倒排索引技術,將HBase中的數(shù)據(jù)同步到ElasticSearch中,以實現(xiàn)快速的全文檢索。然后,當用戶向Elasticsearch發(fā)送查詢請求時,Elasticsearch會返回符合條件數(shù)據(jù)的Rowkey。接著,我們根據(jù)數(shù)據(jù)的Rowkey到HBase中查詢明細數(shù)據(jù),并將明細數(shù)據(jù)返回給用戶。在這個執(zhí)行流程中,HBase用于數(shù)據(jù)的存儲和管理,Redis用于存儲數(shù)據(jù)的Rowkey,將HBase中的數(shù)據(jù)和ElasticSearch中的數(shù)據(jù)同步,ElasticSearch用于數(shù)據(jù)的檢索。這一流程實現(xiàn)了數(shù)據(jù)的快速存儲、檢索和展示,并具有良好的用戶體驗和性能表現(xiàn)。此外,該流程具有良好的可擴展性,可以根據(jù)需要對系統(tǒng)進行水平擴展,以應對數(shù)據(jù)量的增長和用戶數(shù)的增多,保證系統(tǒng)的可用性和性能表現(xiàn)。4.3系統(tǒng)模塊細節(jié)設計4.3.1登錄注冊模塊設計如下圖11、圖12所示,在這個模塊中,新用戶在可以在系統(tǒng)中創(chuàng)建注冊賬戶。用戶需要提供賬號和密碼作為登錄的基本信息,如用戶名、電話和電子郵件地址等信息可以稍后在個人中心中進行修改。當用戶在系統(tǒng)中成功注冊后,他們便可以使用登錄功能來訪問其賬戶。用戶需要提供已注冊的用戶名和密碼來進行身份驗證。登錄功能會驗證用戶提供的憑據(jù),并且如果憑據(jù)有效,則允許用戶進入系統(tǒng)。登錄注冊模塊還負責控制用戶在系統(tǒng)中的訪問權限。它定義了不同用戶角色的權限級別,并且根據(jù)用戶的身份驗證狀態(tài)和角色來限制他們在系統(tǒng)中可以執(zhí)行的操作。例如,管理員角色可能具有更高級的權限,可以執(zhí)行敏感操作,而普通用戶則受到更多限制。圖11系統(tǒng)登錄界面圖12系統(tǒng)注冊界面登錄系統(tǒng)后將會進入如下圖13界面。頁面的左側(cè)列表為功能菜單,點開后父級目錄后可以選擇子菜單項,點擊后將會在頁面右側(cè)打開對應頁面,可以點擊不同標簽頁進行頁面跳轉(zhuǎn)。頁面右上方顯示著用戶頭像,點擊后可以進入個人信息管理頁面,如圖14所示,用戶可以在該頁面修改自己的用戶名、郵箱、電話以及密碼等個人信息。圖13系統(tǒng)主界面圖14個人信息界面4.3.2文獻檢索模塊設計登錄系統(tǒng)后的首頁便是文獻檢索界面,如下圖15所示。在該頁面用戶可以進行中藥文獻數(shù)據(jù)全文檢索。系統(tǒng)支持兩種檢索方式,一種是按文檔名檢索,一種是按照文檔內(nèi)容進行全文檢索。選擇對應檢索方式后,在輸入框輸入自己想檢索的內(nèi)容,點擊檢索按鈕頁面將呈現(xiàn)檢索列表,對應關鍵詞將高亮顯示,如下圖16所示。點擊文章標題可以下載文檔,也可以鼠標右鍵單擊文章標題名,選擇在新標簽頁中打開文檔進行預覽。圖15文獻檢索界面圖16文獻檢索結(jié)果界面4.3.2系統(tǒng)管理模塊設計點擊左側(cè)的系統(tǒng)管理菜單后將會展開用戶管理、角色權限管理、文獻管理等菜單項,用戶可以在這里對用戶的基本信息進行管理。如圖17所示,用戶管理菜單項允許系統(tǒng)管理員或具有相應權限的用戶對系統(tǒng)中的用戶進行管理。在用戶管理界面,管理員可以查看已注冊用戶的列表,并查看每個用戶的基本信息,如用戶名、電子郵件地址、電話等。管理員還可以執(zhí)行如創(chuàng)建新用戶、禁用或刪除現(xiàn)有用戶、重置用戶密碼等操作。角色權限管理菜單項允許管理員定義不同角色的權限級別,并將這些角色分配給系統(tǒng)中的用戶。在角色權限管理界面,管理員可以創(chuàng)建不同的角色,并為每個角色分配特定的權限。這些權限可以控制用戶在系統(tǒng)中可以執(zhí)行的操作,例如查詢、上傳及刪除文獻,或者訪問敏感信息等。通過分配角色和權限,管理員可以靈活地控制用戶的訪問權限,確保每個用戶只能執(zhí)行其所需的操作,從而提高系統(tǒng)的安全性和可管理性。如下圖18所示,文獻管理菜單項提供了對系統(tǒng)中存儲的文獻的管理功能。在文獻管理界面,用戶可以上傳、下載和刪除文獻,系統(tǒng)支持批量上傳PDF、txt、json、html等多種文本格式的中藥文獻數(shù)據(jù),如下圖19文件上傳界面所示。文獻管理功能可以幫助用戶組織和維護系統(tǒng)中的文獻資源,并確保只有經(jīng)授權的用戶才能訪問或修改這些資源。圖17用戶管理界面圖18文獻管理界面圖19文獻上傳界面4.4系統(tǒng)實驗測試4.4.1系統(tǒng)運行環(huán)境本程序應用主要在CentOS7系統(tǒng)中進行編寫,編程工具為IDEA,主要編程語言為Java和HTML,JDK版本為1.8.0_11,編程中所用到的工具和框架及對應版本號如下表2所示。表2項目使用工具及對應版本號工具版本Hadoop3.2.4HBase2.4.16ElasticSearch7.8.1ZooKeeper3.5.10Redis6.2.11VUE2.6.12SpringBoot.2實驗結(jié)果分析實驗結(jié)果表明,中藥文獻數(shù)據(jù)全文檢索系統(tǒng)在進行文獻全文檢索時展現(xiàn)出了出色的查詢效率。系統(tǒng)能夠以毫秒級的速度快速響應用戶的查詢請求,并迅速輸出相關的檢索結(jié)果。這種高效的查詢速度為用戶提供了極為便利和快捷的檢索體驗。系統(tǒng)進行查詢時控制臺輸出如下圖20所示。通過采用HBase和ElasticSearch的組合,系統(tǒng)充分發(fā)揮了它們各自的優(yōu)勢。HBase作為非結(jié)構化數(shù)據(jù)的存儲引擎,能夠支持海量數(shù)據(jù)的存儲和管理,而ElasticSearch作為全文檢索引擎,對Lucene進行了封裝,具備高可用性和支持分布式的特點。這兩者的協(xié)同工作使得系統(tǒng)能夠高效地進行復雜查詢,并快速返回準確的結(jié)果。在長時間運行的過程中,系統(tǒng)未出現(xiàn)崩潰或其他故障,能夠持續(xù)提供穩(wěn)定的檢索服務,者也驗證了系統(tǒng)的可靠性和穩(wěn)定性。同時,系統(tǒng)對數(shù)據(jù)安全和用戶隱私的保護也得到了有效的實現(xiàn),采取了數(shù)據(jù)加密和權限控制等措施,確保了數(shù)據(jù)的安全性。圖20系統(tǒng)查詢時控制臺輸出4.5本章小結(jié)本章介紹了中藥文獻數(shù)據(jù)全文檢索系統(tǒng)的設計與實現(xiàn)。系統(tǒng)需要滿足海量數(shù)據(jù)存儲和快速復雜查詢的要求,為此,本設計采用了HBase進行海量數(shù)據(jù)存儲,ElasticSearch用于快速復雜查詢。此外,本章還分析了系統(tǒng)的功能性需求和非功能性需求。功能性需求包括檢索及展示功能、文獻管理功能和用戶管理功能等,非功能性需求包括檢索響應時間、存儲容量、可擴展性以及穩(wěn)定性和安全性等。接著,本章介紹了系統(tǒng)的架構設計,包括功能模塊設計和整體的搭建流程。數(shù)據(jù)采集、存儲、建立索引和數(shù)據(jù)展示是整體搭建流程的關鍵環(huán)節(jié)。在實施過程中,本設計綜合考慮需求和可行性,并通過合理的架構設計和技術實現(xiàn)來滿足用戶需求。登錄注冊模塊負責用戶賬戶的創(chuàng)建和身份驗證,文獻檢索模塊支持多種檢索方式和展示,系統(tǒng)管理模塊包括用戶管理、角色權限管理和文獻管理等管理功能。通過這些模塊的設計,系統(tǒng)能夠提供高效的文獻檢索和管理功能,滿足用戶需求。通過采用HBase和ElasticSearch的結(jié)合,系統(tǒng)能夠?qū)崿F(xiàn)海量數(shù)據(jù)的存儲和快速復雜查詢。功能性需求和非功能性需求的綜合考慮確保了系統(tǒng)的穩(wěn)定性、安全性和可擴展性。系統(tǒng)的模塊設計和搭建流程緊密結(jié)合,從數(shù)據(jù)采集到展示,提供了完整而高效的工作流程。登錄注冊模塊、文獻檢索模塊和系統(tǒng)管理模塊的設計,能夠讓系統(tǒng)為用戶提供友好的界面和強大的功能,提升用戶的體驗和效率。在實驗部分,我們對系統(tǒng)進行了測試和評估。實驗結(jié)果顯示,系統(tǒng)在進行文獻全文檢索時能夠以毫秒級的速度輸出結(jié)果,查詢效率極高。采用HBase和ElasticSearch的組合,系統(tǒng)充分發(fā)揮了它們的優(yōu)勢,實現(xiàn)了高效的復雜查詢和準確的結(jié)果返回。系統(tǒng)在實驗過程中也表現(xiàn)出了可靠性和穩(wěn)定性,長時間運行未出現(xiàn)崩潰或故障,并且有采取維護數(shù)據(jù)安全和用戶隱私的保護措施。
5.總結(jié)與展望5.1總結(jié)當代醫(yī)學發(fā)展越來越注重從傳統(tǒng)中藥文獻中尋找靈感,然而,近年來中藥文獻數(shù)量呈現(xiàn)井噴式增長,傳統(tǒng)的文獻檢索方法已經(jīng)無法滿足人們對于快速、準確檢索文獻的需求,為解決當下日益增長的海量中藥文獻數(shù)據(jù)的存儲及檢索問題,本文基于HBase和ElasticSearch等大數(shù)據(jù)技術,搭建了一個中藥文獻數(shù)據(jù)全文檢索系統(tǒng)。圍繞本設計所展開的研究與工作不僅擴展了信息檢索技術的應用領域,還在一定程度上提高了科研工作者對中藥文獻數(shù)據(jù)的檢索效率。本文所搭建的中藥文獻文獻檢索系統(tǒng)的主要創(chuàng)新之處在于二級索引結(jié)構的搭建以及對海量中藥文獻數(shù)據(jù)的處理。通過運用HBase和ElasticSearch技術搭建二級索引結(jié)構,彌補了HBase單一索引存在的限制,既有效地利用了HBase進行海量數(shù)據(jù)的存儲和主鍵排序的數(shù)據(jù)檢索,又合理地利用了ElasticSearch的倒排索引的特性以實現(xiàn)高效的全文檢索,成功地結(jié)合了兩個技術的優(yōu)勢,實現(xiàn)了更靈活、更高效的查詢功能。針對中藥文獻數(shù)據(jù)非結(jié)構化的特點,采用列式存儲模式以提高存儲效率,在檢索環(huán)節(jié)實現(xiàn)了對海量數(shù)據(jù)的快速響應和高準確度的搜索,可以為科研工作者和相關領域研究人員提供更為便捷的中藥文獻檢索體驗。本文的主要工作總結(jié)如下:(1)對中藥文獻數(shù)據(jù)的特點進行了相關介紹,分析了當下的中藥文獻數(shù)據(jù)檢索系統(tǒng)的需求與挑戰(zhàn),并總結(jié)了中藥文獻檢索的現(xiàn)狀和發(fā)展趨勢。(2)介紹了HBase及ElasticSearch技術,詳細介紹了它們的系統(tǒng)架構和特點,分析了它們的優(yōu)勢,并著重對倒排索引的原理進行了詳細介紹,最終確定了基于HBase和ElasticSearch搭建系統(tǒng)的技術路線。(3)設計實現(xiàn)了基于HBase和ElasticSearch的中藥文獻數(shù)據(jù)全文檢索系統(tǒng),介紹了項目的搭建及執(zhí)行流程,并對系統(tǒng)各個模塊的設計進行了詳細講解。5.2展望本文所搭建的中藥文獻數(shù)據(jù)全文檢索系統(tǒng)在實際應用中交互方便,性能表現(xiàn)良好,但就目前來說,這一系統(tǒng)還不夠成熟,遠遠沒有達到企業(yè)級應用的標準,仍存在著很多不足之處。(1)容錯機制不足:當前系統(tǒng)對于硬件故障、網(wǎng)絡故障等問題的容錯處理能力有限,需要加強對分布式組件容錯的研究,以提高系統(tǒng)穩(wěn)定性和可靠性。(2)個性化推薦功能缺失:系統(tǒng)暫時還沒有提供根據(jù)用戶行為數(shù)據(jù)提供個性化檢索結(jié)果的推薦功能。今后可通過用戶畫像和興趣挖掘等技術實現(xiàn)個性化推薦服務。(3)數(shù)據(jù)安全性有待提高:針對數(shù)據(jù)存儲的安全問題,需要進一步設計和完善系統(tǒng)的數(shù)據(jù)安全防護措施,從加密技術、訪問控制等方面提升數(shù)據(jù)安全性。這些不足之處還需要進一步的研究,在未來的研究和開發(fā)中,我將重點關注以上提到的不足之處,不斷改進迭代我的系統(tǒng),并將持續(xù)關注中藥文獻檢索技術的發(fā)展動態(tài),以滿足不斷變化的行業(yè)需求。
參考文獻朱蕊,彭龑.醫(yī)療大數(shù)據(jù)的應用[J].中國西部科技,2015,14(5):95-97.孟建宇.中醫(yī)藥文獻檢索策略探討[J].山東中醫(yī)藥大學學報,2014,38(02):120-121.郭雪峰.基于Elasticsearch的HBase海量數(shù)據(jù)二級索引方案[J].電腦知識與技術,2020,16(01):5-7.DOI:10.14004/ki.ckt.2020.0002.郭紅
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 事故車車輛維修合同范例
- 農(nóng)村荒地合作合同范本
- 做蔬菜大棚合同范例
- 中藥設備租賃合同范例
- 傳統(tǒng)年畫元素在雕塑創(chuàng)作中的運用
- 無碰撞磁場重聯(lián)中能量轉(zhuǎn)換和靜電孤立波的粒子模擬研究
- 買賣定金合同范例
- 關于搶客戶合同范例
- 京東賣家銷售合同范例
- 代收定金合同范例
- 近代德國的學前教育課件
- 球墨鑄鐵正火工藝
- 中國神經(jīng)外科重癥患者營養(yǎng)治療專家共識(2022版)課件
- 裝修項目經(jīng)理簡歷
- (完整版)管理學專業(yè)英語詞匯大全
- 《隆中對》教學講解課件
- 污水處理項目運營期績效考核評分表
- 蒙迪歐維修手冊
- 香味的分類(撲卻分類法)
- 鹽城市殘疾人康復機構認定暫行辦法
- 大學生心理健康教育-大學生心理健康導論
評論
0/150
提交評論