本發(fā)明涉及基于saas模式的在線網(wǎng)站制作系統(tǒng),特別涉及到多種情況下的數(shù)據(jù)的定義,存儲(chǔ)以及數(shù)據(jù)查詢搜索,對(duì)于滿足多種業(yè)務(wù)場(chǎng)景下的客戶需求有著很強(qiáng)的支持以及幫助。
背景技術(shù):
當(dāng)前我國中小型企業(yè)已經(jīng)有幾千萬家,占全國企業(yè)總數(shù)的99%以上,中小型企業(yè)創(chuàng)造的最終產(chǎn)品和服務(wù)的價(jià)值已占國內(nèi)生產(chǎn)總值近6成,提供的城鎮(zhèn)就業(yè)崗位已占到75%,已經(jīng)成為我國目前以及未來最具活力的經(jīng)濟(jì)成分。這些中小型企業(yè)在網(wǎng)上基本上都會(huì)建立推廣自己產(chǎn)品和服務(wù)的網(wǎng)站,企業(yè)都會(huì)有些個(gè)性化的業(yè)務(wù)需要處理,這就涉及到各種數(shù)據(jù)的存儲(chǔ)以及查詢,但是這些數(shù)據(jù)可能沒有共性可言,如果針對(duì)每家的個(gè)性化數(shù)據(jù)以具體實(shí)體數(shù)據(jù)加以存儲(chǔ),那么會(huì)耗費(fèi)很多的開發(fā)和維護(hù)成本,如果有一種技術(shù)能夠節(jié)省這些維護(hù)和開發(fā)成本,那對(duì)基于saas模式提供在線建站服務(wù)的服務(wù)商來說有極大好處的。
國內(nèi)外在線建站系統(tǒng)已經(jīng)廣泛采用saas(software-as-a-service,軟件運(yùn)營)的運(yùn)營方式,本系統(tǒng)可以為所有互聯(lián)網(wǎng)信息提供商提供個(gè)性化數(shù)據(jù)提供存儲(chǔ)以及查詢服務(wù),現(xiàn)應(yīng)用于南京焦點(diǎn)領(lǐng)動(dòng)云計(jì)算技術(shù)有限公司開發(fā)的基于saas的軟件-領(lǐng)動(dòng)云營銷建站管理系統(tǒng)(下簡(jiǎn)稱領(lǐng)動(dòng)系統(tǒng))。領(lǐng)動(dòng)系統(tǒng)是應(yīng)用saas模式的企業(yè)網(wǎng)站在線制作發(fā)布管理平臺(tái),集網(wǎng)站制作、產(chǎn)品管理、文章管理、關(guān)鍵詞管理、資料庫管理等子功能于一身。旨在為中國貿(mào)易企業(yè)提供便捷的網(wǎng)站制作發(fā)布以及后臺(tái)管理等服務(wù)方案,幫助企業(yè)提高運(yùn)營效率,促進(jìn)業(yè)務(wù)發(fā)展。由于客戶對(duì)自己的網(wǎng)站會(huì)有個(gè)性化需求,比如授權(quán)碼查詢、售后地址查詢等,這些內(nèi)容在定義上并沒有通用可以提煉的地方,因?yàn)槭窃诰€建站系統(tǒng),事先也不可能為客戶定義好這類管理系統(tǒng),這就促使我們開發(fā)一種技術(shù),方便客戶去定義數(shù)據(jù)結(jié)構(gòu),編輯數(shù)據(jù),查詢數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是要提供一種方便、有效并且節(jié)省開發(fā)和維護(hù)成本的數(shù)據(jù)處理方式,其基本構(gòu)思是將個(gè)性化需求所產(chǎn)生的數(shù)據(jù)統(tǒng)一處理存儲(chǔ)和搜索,來代替之前針對(duì)每種個(gè)性化需求單獨(dú)開發(fā)處理數(shù)據(jù)存儲(chǔ)以及搜索的重復(fù)性開發(fā)工作。
為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案:
一種通用結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)查詢方法,其特征是包括如下步驟:
配置業(yè)務(wù)名稱以及所述業(yè)務(wù)名稱與業(yè)務(wù)屬性的對(duì)應(yīng)關(guān)系;
配置業(yè)務(wù)屬性,具體包含業(yè)務(wù)屬性類型,方便數(shù)據(jù)的維護(hù);業(yè)務(wù)屬性的查詢規(guī)則,方便業(yè)務(wù)數(shù)據(jù)的查詢;
配置業(yè)務(wù)數(shù)據(jù),按照對(duì)應(yīng)配置的業(yè)務(wù)屬性,將數(shù)據(jù)均以json格式進(jìn)行存儲(chǔ),以此將非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)為能統(tǒng)一解析存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù);
配置查詢索引,根據(jù)配置的業(yè)務(wù)屬性查詢規(guī)則,對(duì)存儲(chǔ)的json格式數(shù)據(jù)進(jìn)行分析處理建立索引;
根據(jù)對(duì)查詢請(qǐng)求的分析,提取對(duì)應(yīng)的業(yè)務(wù)屬性的查詢規(guī)則,根據(jù)提取出的查詢規(guī)則構(gòu)造查詢方法,以此查詢數(shù)據(jù);將查詢結(jié)果返回給客戶端。
在本發(fā)明所述方法中,所述配置業(yè)務(wù)名稱為配置不同業(yè)務(wù)場(chǎng)景的稱呼。
在本發(fā)明所述方法中,所述業(yè)務(wù)查詢規(guī)則為不同業(yè)務(wù)屬性的對(duì)應(yīng)查詢粒度。
在本發(fā)明所述方法中,所述json(javascriptobjectnotation,js對(duì)象標(biāo)記)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ecmascript規(guī)范的一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。
在本發(fā)明所述方法中,還包括:適配不同數(shù)據(jù)源類型的存儲(chǔ)。
在本發(fā)明所述方法中,還包括:設(shè)置查詢顯示數(shù)量以及查詢緩存;當(dāng)查詢數(shù)據(jù)結(jié)果數(shù)量達(dá)到顯示數(shù)量,將查詢出的結(jié)果返回給客戶端,并且對(duì)本次查詢條件和查詢結(jié)果進(jìn)行緩存;并在下一次同樣查詢的時(shí)候直接返回結(jié)果。
本發(fā)明還提供一種通用結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)查詢系統(tǒng),包括:
業(yè)務(wù)配置單元,用于配置業(yè)務(wù)名稱以及所述業(yè)務(wù)名稱與業(yè)務(wù)屬性的對(duì)應(yīng)關(guān)系。配置業(yè)務(wù)屬性,具體包含業(yè)務(wù)屬性類型,方便數(shù)據(jù)的維護(hù)。業(yè)務(wù)屬性的查詢規(guī)則,方便數(shù)據(jù)的查詢;
業(yè)務(wù)數(shù)據(jù)存儲(chǔ)單元,按照對(duì)應(yīng)配置的業(yè)務(wù)屬性,將數(shù)據(jù)以json形式進(jìn)行存儲(chǔ),以此將非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)為可統(tǒng)一解析存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),同時(shí)可以適配存儲(chǔ)于多種數(shù)據(jù)源;
查詢索引建立單元,根據(jù)配置的業(yè)務(wù)屬性查詢規(guī)則,對(duì)存儲(chǔ)的json數(shù)據(jù)進(jìn)行分析處理建立索引,這里索引的建立機(jī)制,使用第三方工具lucene(及其相關(guān)產(chǎn)品);
設(shè)置查詢組件,用于建站系統(tǒng)查詢業(yè)務(wù)在網(wǎng)頁上的具體展現(xiàn)形式,該組件選擇具體的業(yè)務(wù)名稱,以使本次查詢和該業(yè)務(wù)建立直接的聯(lián)系,展示具體的查詢結(jié)果。
查詢單元,根據(jù)對(duì)查詢請(qǐng)求的分析,提取對(duì)應(yīng)的業(yè)務(wù)屬性的查詢規(guī)則,根據(jù)提取出的查詢規(guī)則構(gòu)造查詢方法,以此查詢數(shù)據(jù),將查詢結(jié)果返回給客戶端。
在本發(fā)明所述系統(tǒng)中,所述配置業(yè)務(wù)名稱為配置不同業(yè)務(wù)場(chǎng)景的稱呼。
在本發(fā)明所述系統(tǒng)中,所述業(yè)務(wù)查詢規(guī)則為不同業(yè)務(wù)屬性的對(duì)應(yīng)查詢粒度。
在本發(fā)明所述系統(tǒng)中,所述json(javascriptobjectnotation,js對(duì)象標(biāo)記)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ecmascript規(guī)范的一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。
在本發(fā)明所述系統(tǒng)中,所述組件為組成頁面結(jié)構(gòu)的單元模塊的統(tǒng)稱。
還包括:設(shè)置查詢顯示數(shù)量以及查詢緩存;當(dāng)查詢數(shù)據(jù)結(jié)果數(shù)量達(dá)到顯示數(shù)量,將查詢出的結(jié)果返回給客戶端,并且對(duì)本次查詢條件和查詢結(jié)果進(jìn)行緩存;并在下一次同樣查詢的時(shí)候直接返回結(jié)果。
在本發(fā)明所述系統(tǒng)中,還包括:適配不同數(shù)據(jù)源類型的存儲(chǔ)。
在本發(fā)明所述系統(tǒng)中,還包括:設(shè)置查詢顯示數(shù)量以及查詢緩存;當(dāng)查詢數(shù)據(jù)結(jié)果數(shù)量達(dá)到顯示數(shù)量,將查詢出的結(jié)果返回給客戶端,并且對(duì)本次查詢條件和查詢結(jié)果進(jìn)行緩存;并在下一次同樣查詢的時(shí)候直接返回結(jié)果。
本發(fā)明和現(xiàn)有技術(shù)相比,有益效果:快速適配建站系統(tǒng)查詢業(yè)務(wù)的需求,極大的滿足了客戶需要,促成客戶自身業(yè)務(wù)的發(fā)展;提升了建站系統(tǒng)提供方在業(yè)務(wù)開發(fā)方面的效率,減少了不必要的開發(fā)支出,帶來了經(jīng)濟(jì)效益。
附圖說明
圖1是本發(fā)明實(shí)施例的通用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)查詢系統(tǒng)架構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例的通用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)查詢系統(tǒng)的查詢工作流程圖;
圖3是本發(fā)明實(shí)施例的通用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)查詢系統(tǒng)的查詢業(yè)務(wù)分析流程圖;
圖4是本發(fā)明實(shí)施例的通用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)查詢系統(tǒng)的查詢處理流程圖。
具體實(shí)施例
下面通過具體實(shí)施方式結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
本發(fā)明實(shí)施例的通用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)查詢方法,其主要包括:
配置業(yè)務(wù)名稱以及所述業(yè)務(wù)名稱與業(yè)務(wù)屬性的對(duì)應(yīng)關(guān)系;
配置業(yè)務(wù)屬性,具體包含業(yè)務(wù)屬性類型,方便數(shù)據(jù)的維護(hù)。業(yè)務(wù)屬性的查詢規(guī)則,方便數(shù)據(jù)的查詢;
配置業(yè)務(wù)數(shù)據(jù),按照對(duì)應(yīng)配置的業(yè)務(wù)屬性,將數(shù)據(jù)以json形式進(jìn)行存儲(chǔ),以此將非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)為可統(tǒng)一解析存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù);
配置查詢索引,根據(jù)配置的業(yè)務(wù)屬性查詢規(guī)則,對(duì)存儲(chǔ)的json數(shù)據(jù)進(jìn)行分析處理建立索引;
根據(jù)對(duì)查詢請(qǐng)求的分析,提取對(duì)應(yīng)的業(yè)務(wù)屬性的查詢規(guī)則,根據(jù)提取出的查詢規(guī)則構(gòu)造查詢方法,以此查詢數(shù)據(jù),將查詢結(jié)果返回給客戶端。
其中,業(yè)務(wù)屬性,例如包括城市、地址、電話、會(huì)員級(jí)別,會(huì)員類型等等,業(yè)務(wù)屬性的類型主要是數(shù)據(jù)錄入的形式,包括(文本字段、單選按鈕、下拉列表、多選按鈕、大文本字段),針對(duì)單選按鈕、下拉列表、多選按鈕的數(shù)據(jù)項(xiàng)可以設(shè)置多個(gè),方便數(shù)據(jù)的錄入。業(yè)務(wù)屬性中單選按鈕、下拉列表和多選按鈕類型其中的數(shù)據(jù)項(xiàng)保存的json結(jié)構(gòu)可以參考如下:
業(yè)務(wù)屬性的查詢規(guī)則分為兩種情況,一種是直接作為篩選條件方式,這里可以作為篩選條件的業(yè)務(wù)屬性類型的只能是:?jiǎn)芜x按鈕、下拉列表和多選按鈕,這種數(shù)據(jù)結(jié)構(gòu)最為簡(jiǎn)單的類型,用戶直接通過選擇就可以做到數(shù)據(jù)篩選條件的注入。另一種是參與搜索方式,面向后端的程序處理,只能是文本字段和大文本字段類型。
業(yè)務(wù)數(shù)據(jù),是根據(jù)業(yè)務(wù)屬性設(shè)置后,通過選擇和輸入構(gòu)造,其存儲(chǔ)的基本的json結(jié)構(gòu)如下:
其中例如15_2這種全是數(shù)字和下劃線組成的key代表的是單選按鈕、下拉列表和多選按鈕,下劃線前面的數(shù)字可以識(shí)別出具體的業(yè)務(wù)屬性。帶有trans前綴的key代表的是文本類型和大文本類型,下劃線后面的數(shù)字可以識(shí)別出具體的業(yè)務(wù)屬性。
如圖1所示,實(shí)現(xiàn)上述通用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)查詢方法的一種系統(tǒng)包括:數(shù)據(jù)控制模塊、業(yè)務(wù)分析模塊、數(shù)據(jù)存儲(chǔ)模塊、查詢控制模塊、查詢分析模塊和緩存模塊。
數(shù)據(jù)控制模塊:與業(yè)務(wù)分析模塊相連。數(shù)據(jù)控制模塊主要接受業(yè)務(wù)數(shù)據(jù)的提交請(qǐng)求,控制后續(xù)的流程處理。數(shù)據(jù)控制模塊主要進(jìn)行權(quán)限校驗(yàn)以及安全性處理。滿足要求將進(jìn)入業(yè)務(wù)分析模塊,做后續(xù)處理。
業(yè)務(wù)分析模塊:與數(shù)據(jù)存儲(chǔ)模塊相連。當(dāng)接受到數(shù)據(jù)控制模塊的請(qǐng)求后,業(yè)務(wù)分析模塊則根據(jù)業(yè)務(wù)屬性的規(guī)則,將業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)換為json結(jié)構(gòu),然后進(jìn)行數(shù)據(jù)存儲(chǔ)模塊。
數(shù)據(jù)存儲(chǔ)模塊:與業(yè)務(wù)分析模塊、查詢分析模塊相連。接受到請(qǐng)求后查詢和存儲(chǔ)數(shù)據(jù)。由于數(shù)據(jù)和數(shù)據(jù)源類型有著緊密關(guān)聯(lián),如果數(shù)據(jù)源類型變動(dòng),如使用數(shù)據(jù)庫改為文件系統(tǒng)進(jìn)行數(shù)據(jù)存儲(chǔ),那么數(shù)據(jù)存儲(chǔ)模塊里各個(gè)子模塊都需要改動(dòng)。因此在數(shù)據(jù)存儲(chǔ)模塊里,還存在有多數(shù)據(jù)源適配模塊,如果系統(tǒng)需要變更數(shù)據(jù)源,那么只需要修改數(shù)據(jù)源適配模塊或者系統(tǒng)配置參數(shù)就可,而且不影響系統(tǒng)中的其他模塊。通過這種方式,本發(fā)明能滿足不同數(shù)據(jù)源情況下的存儲(chǔ)以及查詢支持。
查詢控制模塊:與查詢分析模塊相連。查詢控制模塊主要接受業(yè)務(wù)數(shù)據(jù)查詢的請(qǐng)求,控制后續(xù)的流程處理。查詢請(qǐng)求的入口來自所述的頁面上的查詢組件,查詢控制模塊主要進(jìn)行權(quán)限校驗(yàn)以及安全性處理。滿足要求將進(jìn)入查詢分析模塊,做后續(xù)處理。
查詢分析模塊:與緩存模塊和數(shù)據(jù)存儲(chǔ)模塊相連。查詢分析模塊接受來自查詢控制模塊的請(qǐng)求。該模塊除了接受查詢分析模塊的請(qǐng)求之外,還需要運(yùn)行定時(shí)任務(wù)使用lucene來構(gòu)建查詢索引文件。該查詢索引文件的構(gòu)建機(jī)制如下:通過有變動(dòng)的業(yè)務(wù)屬性以及業(yè)務(wù)數(shù)據(jù)查找到對(duì)應(yīng)業(yè)務(wù)名稱進(jìn)行輪詢掃描,根據(jù)業(yè)務(wù)名稱找到所配置的業(yè)務(wù)屬性數(shù)據(jù),包含業(yè)務(wù)屬性類型和查詢規(guī)則,根據(jù)上次索引文件運(yùn)行時(shí)間,在此時(shí)間之后變動(dòng)的數(shù)據(jù)都需要查詢出來,只要是作為頁面篩選條件和參與搜索的數(shù)據(jù)屬性對(duì)應(yīng)的數(shù)據(jù),都需要按照業(yè)務(wù)屬性的查詢規(guī)則進(jìn)行索引。如果有業(yè)務(wù)屬性更改了數(shù)據(jù)類型和查詢方式那么對(duì)應(yīng)的索引文件都需要重新構(gòu)建。接受查詢分析模塊的請(qǐng)求之后,分析出請(qǐng)求中的篩選條件以及搜索值,直接去緩存模塊中進(jìn)行查詢,如果有對(duì)應(yīng)的數(shù)據(jù)則直接返回,一旦有數(shù)據(jù)屬性以及數(shù)據(jù)的變動(dòng),則清除所有針對(duì)該業(yè)務(wù)名稱下的緩存數(shù)據(jù)。沒有對(duì)應(yīng)的緩存數(shù)據(jù),則構(gòu)造查詢方案,具體的查詢方案通過篩選條件以及搜索值,構(gòu)造lucene搜索參數(shù),針對(duì)傳遞的頁面篩選條件參數(shù)所針對(duì)的業(yè)務(wù)屬性都是精確匹配,搜索值參數(shù)所針對(duì)參與搜索的業(yè)務(wù)屬性都是模糊匹配,查詢出滿足以上條件的所有數(shù)據(jù)的唯一識(shí)別碼,通過數(shù)據(jù)存儲(chǔ)模塊查詢出對(duì)應(yīng)的數(shù)據(jù),通過緩存模塊緩存這批數(shù)據(jù),然后直接返回。
下面著重介紹通用結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)查詢系統(tǒng)中針對(duì)查詢的工作流程,如圖2所示查詢的工作流程如下:
步驟1:查詢控制模塊接受用戶(瀏覽器)的查詢請(qǐng)求,將查詢條件傳遞到下一步,執(zhí)行步驟2。
步驟2:查詢分析模塊通過請(qǐng)求的查詢條件,業(yè)務(wù)屬性的查詢規(guī)則,將請(qǐng)求條件和業(yè)務(wù)名稱結(jié)合起來作為緩存的key值,查詢是否已經(jīng)有過相同條件的查詢請(qǐng)求。如果已經(jīng)有對(duì)應(yīng)的請(qǐng)求結(jié)果,則執(zhí)行步驟3,如果沒有則是正式查詢,生成基于lucene的查詢方案。
如果緩存模塊查詢后有對(duì)應(yīng)的數(shù)據(jù),則執(zhí)行步驟3,做后續(xù)處理
如果緩存模塊查詢后沒有對(duì)應(yīng)的數(shù)據(jù),將基于查詢方案查詢出來的數(shù)據(jù)識(shí)別碼傳遞到下一步,執(zhí)行步驟4,做后續(xù)處理。
步驟3:接受查詢分析模塊的請(qǐng)求后,查詢是否有滿足的key值數(shù)據(jù),有的話則返回。
步驟4:接受查詢分析模塊的請(qǐng)求后,將滿足要求的數(shù)據(jù)返回。
步驟2所述的查詢分析模塊,在接受到查詢控制模塊的查詢條件時(shí),其業(yè)務(wù)分析的主要流程如圖3所示,包括:
配置查詢參數(shù),查詢參數(shù)可以在系統(tǒng)啟動(dòng)時(shí)進(jìn)行初始配置,是系統(tǒng)需要的一些初始數(shù)據(jù),并可根據(jù)需要在線編輯處理,以便快速響應(yīng)用戶的需求。如查詢最大數(shù)據(jù)量、數(shù)據(jù)得排序等。業(yè)務(wù)屬性查詢規(guī)則配置則是根據(jù)查詢條件所指向的業(yè)務(wù)屬性,以此獲得是作為篩選條件還是參與搜索來處理業(yè)務(wù)屬性。
通過查詢分析以上的查詢參數(shù)以及查詢規(guī)則,可以構(gòu)造基于lucene的查詢方案,通過查詢索引查詢具體數(shù)據(jù)。
如圖4所示,以數(shù)據(jù)庫數(shù)據(jù)為例對(duì)本發(fā)明實(shí)施例中查詢部分處理流程圖進(jìn)行詳細(xì)說明。
1、查詢控制模塊接收到查詢請(qǐng)求,提取其中的查詢條件。
2、進(jìn)入查詢業(yè)務(wù)分析模塊,分析查詢條件,根據(jù)查詢參數(shù)以及業(yè)務(wù)屬性的查詢規(guī)則,可以生成查詢緩存的key,在緩存模塊中檢查針對(duì)該緩存的key是否已經(jīng)有對(duì)應(yīng)的數(shù)據(jù)。
3、如果有緩存數(shù)據(jù),則直接完成查詢,返回?cái)?shù)據(jù)給客戶端。
4、如果沒有緩存數(shù)據(jù),則構(gòu)造查詢方案,查詢索引獲取數(shù)據(jù)的識(shí)別碼,檢查是否有對(duì)應(yīng)的識(shí)別碼。
5、如果有對(duì)應(yīng)的識(shí)別碼數(shù)據(jù),則通過數(shù)據(jù)存儲(chǔ)模塊查詢對(duì)應(yīng)的數(shù)據(jù),并且通過緩存模塊存儲(chǔ)這次的查詢數(shù)據(jù),并且返回?cái)?shù)據(jù)給客戶端。
6、如果沒有對(duì)應(yīng)的識(shí)別碼數(shù)據(jù),則直接返回空數(shù)據(jù)給客戶端。
上述系統(tǒng),僅是從功能模塊劃分的角度對(duì)系統(tǒng)的描述,實(shí)現(xiàn)時(shí)不必嚴(yán)格依照上述功能模塊的形式實(shí)現(xiàn),例如,以圖1所示的系統(tǒng)框架實(shí)現(xiàn),只要實(shí)現(xiàn)的系統(tǒng)包括上述功能,均屬于本發(fā)明所要保護(hù)的系統(tǒng)范圍之內(nèi)。