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

        ?

        修訂限定的SVN全文檢索系統(tǒng)研究與實(shí)現(xiàn)

        2017-12-08 03:15:51任洪敏趙要強(qiáng)張敬周
        關(guān)鍵詞:版本號(hào)全文檢索庫中

        任洪敏 李 敏 趙要強(qiáng) 張敬周

        1(上海海事大學(xué)計(jì)算機(jī)系 上海 200135) 2(青島西海岸新區(qū)管委會(huì) 山東 青島 266555) 3(上海神開石油設(shè)備有限公司 上海 201114) 4(上海上科信息技術(shù)研究所 上海 201206)

        修訂限定的SVN全文檢索系統(tǒng)研究與實(shí)現(xiàn)

        任洪敏1李 敏2趙要強(qiáng)3張敬周4

        1(上海海事大學(xué)計(jì)算機(jī)系 上海 200135)2(青島西海岸新區(qū)管委會(huì) 山東 青島 266555)3(上海神開石油設(shè)備有限公司 上海 201114)4(上海上科信息技術(shù)研究所 上海 201206)

        針對(duì)SVN版本倉庫數(shù)據(jù)檢索困難問題,開發(fā)一個(gè)基于Lucene的SVN全文檢索系統(tǒng)。結(jié)合版本控制管理工作特點(diǎn),提出兩種修訂限定的SVN全文檢索方式。設(shè)計(jì)版本限定的SVN全文檢索系統(tǒng)體系結(jié)構(gòu),給出基于Lucene過濾器的版本限定實(shí)現(xiàn)算法,描述系統(tǒng)的關(guān)鍵實(shí)現(xiàn)技術(shù)。該系統(tǒng)提供了便捷的SVN全文檢索功能,提升了SVN文檔資源的檢索效率。

        Subversion SVN Lucene 全文檢索

        0 引 言

        Subversion[1](SVN)是一款主流的、開源的版本控制系統(tǒng)。SVN允許用戶在各自的空間修改和管理同一組數(shù)據(jù),記錄數(shù)據(jù)修改情況,并可以籍此將數(shù)據(jù)恢復(fù)到以前的版本與查看數(shù)據(jù)的修改細(xì)節(jié)。SVN促進(jìn)開發(fā)團(tuán)隊(duì)協(xié)作,實(shí)現(xiàn)版本控制管理,具有強(qiáng)大的功能和廣泛的應(yīng)用,但SVN與其客戶端軟件如WebSVN[2]、TortoiseSVN[3]等并不提供SVN文件庫的全文檢索功能。當(dāng)用戶需要某個(gè)文檔資料但不知其具體的存儲(chǔ)位置與版本時(shí),用戶只能逐個(gè)修訂版本、逐個(gè)文件路徑采用手動(dòng)的方式瀏覽尋找。伴隨SVN文檔庫中文檔資源的數(shù)量和修訂版本號(hào)碼的增加,通過手動(dòng)的方式找出所需要文檔資料的難度大大增加,查找資料浪費(fèi)的時(shí)間大大增加。

        Lucene是一個(gè)知名的開放源代碼全文檢索引擎[4],但Lucene并不支持版本化數(shù)據(jù)的全文索引和索引文檔的版本化管理。因此,針對(duì)SVN的文檔版本管理機(jī)制與修訂版本的變更情況,需要一種基于Lucene的高性能的SVN文檔庫全文檢索系統(tǒng)。該系統(tǒng)不僅能夠?qū)崿F(xiàn)全文檢索自身支持的與、或、非、相鄰等檢索邏輯運(yùn)算。同時(shí)需要能夠面向版本管理數(shù)據(jù)的特點(diǎn),提供與特定版本相關(guān)的全文檢索機(jī)制,以提升SVN文檔資源的檢索效率。

        SVN系統(tǒng)采用全局修訂版本號(hào)、版本差異保存和混合修訂版本機(jī)制[5],各修訂版本間通常存在大量相同的文檔和少量發(fā)生變更的文檔。通常一個(gè)修訂版本中包含一系列不同修訂版本的各個(gè)文檔。與此對(duì)應(yīng),該修訂版本中各個(gè)文檔的全文索引數(shù)據(jù)應(yīng)該同樣分散存在于不同修訂版本的全文索引文檔之中。否則,如果為每個(gè)修訂版本快照中的文件建立統(tǒng)一、集中獨(dú)立的索引文檔,雖然方便了版本限定的檢索方式,但會(huì)導(dǎo)致大量的索引數(shù)據(jù)冗余和系統(tǒng)運(yùn)行的性能負(fù)擔(dān)。因此,提供版本限定的SVN全文檢索功能,雖可方便用戶使用,增強(qiáng)系統(tǒng)檢索能力,但卻具有一定的挑戰(zhàn)。

        據(jù)此,基于Lucene全文索引引擎,結(jié)合SVN版本化數(shù)據(jù)機(jī)制,本文提出了一種高性能的SVN全文索引方法,實(shí)現(xiàn)SVN文件庫的全文檢索,支持版本限定的SVN全文檢索機(jī)制,提升SVN文檔資源的檢索效率。

        1 系統(tǒng)體系結(jié)構(gòu)

        SVN全文索引檢索機(jī)制通常不考慮SVN版本限定問題,即在版本庫中全體修訂版本、全部文檔集中進(jìn)行檢索。限定修訂版本號(hào)碼的SVN全文索引檢索機(jī)制,即用戶在檢索時(shí)給定SVN的修訂版本號(hào),作為檢索條件,進(jìn)行檢索結(jié)果限定。具體包括兩種修訂檢索限定機(jī)制:

        (1) 僅在SVN文件庫中該特定修訂版本快照中的全體文件范圍中進(jìn)行全文檢索,而不是版本庫中全部修訂版本中的所有文檔集中進(jìn)行檢索。

        (2) 僅在該特定修訂版本與其前一修訂版本相比發(fā)生變更的文檔集中進(jìn)行全文檢索,而不是在該特定修訂版本快照的全體文檔集中進(jìn)行檢索。

        SVN每一修訂版本邏輯上包含版本化數(shù)據(jù)的全部文檔,包括發(fā)生變更的文檔和未發(fā)生變更的文檔,但通常各修訂版本中僅有少量部分的文檔發(fā)生變更。針對(duì)每一修訂版本,需對(duì)發(fā)生變更的文檔建立全文索引,實(shí)現(xiàn)版本數(shù)據(jù)的增量化索引,其不僅降低索引文件占用的空間,而且提升版本庫全文索引的建立時(shí)間和全文檢索的性能。

        為了支持修訂限定的版本檢索機(jī)制,需要根據(jù)針對(duì)變更文檔集建立的增量化索引,動(dòng)態(tài)重構(gòu)該修訂版本整體文檔集對(duì)應(yīng)的索引文檔。本文利用Lucene索引框架的filter機(jī)制[6],針對(duì)各修訂版本,建立自定義的、持久化并且內(nèi)存緩存的Lucene filter。該filter運(yùn)用BitSet從Lucene索引文檔集中標(biāo)識(shí)屬于該修訂版本的索引文檔,實(shí)現(xiàn)限定修訂版本號(hào)整體文檔索引文件的動(dòng)態(tài)重構(gòu)。

        據(jù)此,給出修訂限定的SVN全文檢索系統(tǒng)的總體系統(tǒng)體系結(jié)構(gòu)(圖1)。其中,SVN提交偵測模塊,基于SVN的事件捕獲機(jī)制,與SVN版本庫交互,偵測SVN文件庫中文件的新增與更新變化,具體包括SVN的Import和Commit操作。當(dāng)發(fā)現(xiàn)SVN文件庫變化時(shí),啟動(dòng)SVN變更文檔集提取模塊,調(diào)用SVN版本庫的接口方法,從SVN版本庫獲取本版本提交更新的文檔集,并把更新的文檔集傳遞給變更文檔集全文索引模塊。然后調(diào)用Lucene的索引機(jī)制,對(duì)變更文檔集進(jìn)行全文索引。每個(gè)變更文檔的Lucene索引必須包含三個(gè)字段:(1) 版本修訂號(hào),用于所索引存貯文檔的修訂版本號(hào);(2) 文件完整路徑,用于存貯所索引文檔在SVN版本庫中的路徑與文件名;(3) 文檔的索引內(nèi)容,用于對(duì)文檔的內(nèi)容進(jìn)行索引與存貯。

        圖1 修訂限定的SVN全文檢索系統(tǒng)體系結(jié)構(gòu)

        當(dāng)SVN版本庫中的版本變更時(shí),修訂版本過濾器構(gòu)建模塊獲取發(fā)生變更的文檔,構(gòu)建該修訂版本的Lucene檢索文檔過濾器。該過濾器運(yùn)用BitSet表達(dá)與存貯Lucene索引文檔庫中僅屬于該修訂版本的文檔,用于Lucene檢索引擎對(duì)特定修訂版本的索引文檔進(jìn)行過濾,實(shí)現(xiàn)特定修訂限定的文檔檢索,其內(nèi)部實(shí)現(xiàn)算法見2.1節(jié)。

        SVN全文檢索執(zhí)行時(shí),可調(diào)用修訂版本更新文件過濾器構(gòu)建模塊。該模塊獲取相鄰兩個(gè)修訂版本的檢索過濾器,動(dòng)態(tài)構(gòu)建兩個(gè)版本間發(fā)生變更文檔集的過濾器,以支持僅在版本間發(fā)生變更的文檔集中進(jìn)行全文檢索,其內(nèi)部實(shí)現(xiàn)算法見2.2節(jié)。

        SVN全文索引啟動(dòng)模塊負(fù)責(zé)整個(gè)系統(tǒng)的初始化啟動(dòng)。SVN全文檢索執(zhí)行模塊接受用戶的檢索請(qǐng)求,根據(jù)用戶的選擇,獲取相應(yīng)的版本限定檢索過濾器,訪問Lucene索引與檢索庫,執(zhí)行用戶要求的全文檢索,全文檢索的結(jié)果傳遞給檢索結(jié)果顯示模塊。

        2 修訂限定檢索算法

        修訂限定檢索機(jī)制的核心是根據(jù)修訂版本的增量化文檔集全文索引,動(dòng)態(tài)構(gòu)建該修訂版本的整體文檔集或其更新文檔集的Lucene過濾器。

        2.1 修訂限定過濾器構(gòu)建

        算法1為修訂版本限定過濾器構(gòu)建算法。該算法運(yùn)用遞推思想,基于前一修訂版本的限定過濾器和當(dāng)前修訂版本中文檔變更情況,構(gòu)建當(dāng)前修訂版本的文檔限定過濾器。Lucene過濾器采用BitSet設(shè)置索引庫中各文檔是的否應(yīng)被過濾。算法運(yùn)行的初始基礎(chǔ)即修訂版本0的文檔檢索過濾器,其BitSet的各位皆設(shè)置為false。

        算法1修訂版本限定過濾器構(gòu)建算法

        Input:需要構(gòu)建過濾器的修訂版本號(hào)revNo。

        Output:revNo版本的修訂限定檢索過濾器。

        Begin:

        獲取變更文檔的URL數(shù)組列表changedDocUrls;

        獲取變更文檔的數(shù)量changeddocNo=changedDocUrls.size();

        獲取修訂版本號(hào)revNo-1的過濾器prevBitSet;

        獲取prevBitSet的位數(shù)preSetSize=prevBitSet.size();

        // 設(shè)置curBitSet中0…preSetSize位的值

        curBitSet=new BitSet(preSetSize+changeddocNo);

        for(int i=0;i

        //設(shè)置curBitSet中變更文檔對(duì)應(yīng)位為false

        foreach(url in changedDocUrls){

        //于lucene索引庫中查找其path field的值為url的文檔,

        //獲得其文檔編號(hào)docId;

        if(curBitSet.get(docID)) curBitSet.set(docID,false);

        }

        //設(shè)置curBitSet中preSetSize…preSetSize+changeddocNo-1

        //位的值

        for(int i=preSetSize;i

        //返回構(gòu)建的當(dāng)前更新版本的過濾器

        return curBitSet;

        End

        該算法首先獲取當(dāng)前需要構(gòu)建過濾器的修訂版本號(hào)revNo、獲取當(dāng)前修訂版本與前一修訂版本相比發(fā)生變更文檔的url數(shù)組列表changedDocUrls,得到發(fā)生變更文檔的數(shù)量,設(shè)為changeddocNo。從修訂版本過濾器存貯體系中獲取所存貯的前一修訂版本的限定過濾器,設(shè)為prevBitSet,基于該過濾器遞推構(gòu)建當(dāng)前修訂版本過濾器。

        然后初始化創(chuàng)建當(dāng)前修訂版本的過濾器,設(shè)為curBitSet。因Lucene索引庫新增加了變更的changeddocNo個(gè)文檔,故其長度應(yīng)為preSetSize+changeddocNo?;谇耙恍抻啺姹具^濾器prevBitSet設(shè)置curBitSet中前preSetSize位的初始值,保持與prevBitSet過濾器中各對(duì)應(yīng)值一致,因版本間大部分文檔未發(fā)生變更。針對(duì)每個(gè)變更文檔的url,查找Lucene索引庫,于索引文檔庫中找到相應(yīng)索引文檔及其文檔編號(hào)docId。 如果在curBitSet中對(duì)應(yīng)位置為true,則表明該文檔屬于前一修訂版本,現(xiàn)在該文檔已發(fā)生變更具有新版本,故其不屬于當(dāng)前版本的文檔集,所以過濾器對(duì)應(yīng)文檔位置設(shè)置為false。

        最后,針對(duì)新變更文檔進(jìn)行增量化索引存貯,其于限定過濾器curBitSet中的對(duì)應(yīng)位置是preSetSize…preSetSize+changeddocNo-1。該部分文檔全部屬于當(dāng)前修訂版本的索引文檔,故過濾器中相應(yīng)各位全設(shè)置為true。至此,修訂限定過濾器構(gòu)造完畢。

        2.2 修訂更新文件限定過濾器構(gòu)建

        算法2為修訂版本更新文件限定過濾器構(gòu)建算法。該算法基于用戶提供的修訂版本號(hào),構(gòu)建與前一修訂版本相比所發(fā)生變更文檔的檢索過濾器。

        算法2修訂版本更新文件限定過濾器構(gòu)建算法

        Input:需要構(gòu)建修訂更新過濾器的修訂版本號(hào)revNo。

        Output:revNo版本的修訂更新文件限定檢索過濾器。

        Begin:

        獲取修訂版本號(hào)revNo-1的過濾器prevBitSet;

        獲取prevBitSet的位數(shù)preSetSize=prevBitSet.size();

        獲取修訂版本號(hào)revNo的過濾器curBitSet;

        獲取curBitSet的位數(shù)curSetSize=curBitSet.size();

        獲取最大修訂版本號(hào)的過濾器maxBitSet;

        獲取maxBitSet的位數(shù)maxSetSize=maxBitSet.size();

        //初始生成revNo的更新文檔過濾器updateBitSet

        updateBitSet=new BitSet(maxSetSize)

        //設(shè)置updateBitSet中0…preSetSize-1位的值

        for(int i=0;i

        //設(shè)置updateBitSet中preSetSize…curSetSize-1位的值

        for(int i=preSetSize;i

        //設(shè)置maxBitSet中curSetSize…maxBitSize-1位的值

        for(int i=curSetSize;i

        //返回構(gòu)建的修訂版本更新文檔過濾器

        return updateBitSet;

        End

        該算法首先是數(shù)據(jù)的獲取與讀取,具體包括獲取用戶請(qǐng)求限定的修訂版本號(hào),設(shè)為revNo;獲取修訂版本號(hào)revNo-1的過濾器prevBitSet,其長度設(shè)為preSetSize;獲取修訂版本號(hào)revNo的過濾器curBitSet,其長度設(shè)為curSetSize;獲取最大修訂版本號(hào)的過濾器,設(shè)為maxBitSet,其長度設(shè)為maxSetSize。maxSetSize代表了Lucene索引庫中所索引文檔的總數(shù)。本算法將根據(jù)prevBitSet、curBitSet和maxBitSet構(gòu)建修訂版本的更新文檔過濾器。

        然后,初始化生成revNo的更新文檔過濾器,設(shè)為updateBitSet,其長度為maxSetSize。Lucene索引庫中前preSetSize個(gè)文檔,為revNo修訂版本或更前面修訂版本的文檔,故不是revNo修訂版本的更新文檔,故設(shè)置updateBitSet中相應(yīng)位的值為false。Lucene索引庫中對(duì)應(yīng)于preSetSize…curSetSize位置間的文檔,為revNo修訂版本發(fā)生變更的文檔,故設(shè)置updateBitSet中相應(yīng)位的值為true。Lucene索引庫中對(duì)應(yīng)于curSetSize…maxBitSize-1位置間的文檔,是revNo之后修訂版本新增加的索引文檔,不是revNo修訂版本的更新文檔,故設(shè)置updateBitSet中相應(yīng)位的值為false。

        最后返回該修訂版本更新文件限定過濾器updateBitSet,供Lucene匹配引擎使用。

        3 系統(tǒng)實(shí)現(xiàn)

        本系統(tǒng)采用B/S架構(gòu)實(shí)現(xiàn),前臺(tái)使用HTML、CSS和JavaScript語言和jQuery、jQuery Easy UI框架,基于AJAX技術(shù)調(diào)用后臺(tái)Java服務(wù),驅(qū)動(dòng)Lucene全文檢索引擎訪問SVN倉庫執(zhí)行索引與檢索。系統(tǒng)在4 GB內(nèi)存、AMD CPU 2.1 GHz、Lucene4.7、poi-3.11、Svnkti-1.8.7環(huán)境下測試。針對(duì)200個(gè)、450 MB文件進(jìn)行測試,建立索引時(shí)間66.235秒,索引文件3.7 MB,全文檢索時(shí)間0.041秒,系統(tǒng)具有良好的時(shí)間執(zhí)行性能。

        本系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)包括:

        (1) 基于SVNKit的SVN倉庫訪問操作[7]

        SVNKit是一款開源的、純 Java的 SVN版本控制系統(tǒng)的二次開發(fā)軟件包,提供豐富的API實(shí)現(xiàn)SVN倉庫的創(chuàng)建、加載、檢出、提交、更新、版本差異比較、版本文件讀取等系列功能。利用SVNKit的高層API接口SVNClientManager,調(diào)用其getDiffClient()方法獲取SVNDiffClient的實(shí)例,獲得修訂版本的變更文檔集,并對(duì)每一個(gè)變更的文檔應(yīng)用SVNRepository的getFile()方法進(jìn)行讀取,傳遞給Lucene以實(shí)現(xiàn)增量化索引。

        (2) Office文檔和PDF文檔內(nèi)容提取與索引[8]

        Lucene自身提供的索引分析器不能有效處理Office文檔和PDF文檔。POI和PDFBox軟件包皆是Apache軟件基金會(huì)提供的開源的、純Java的Office文檔、PDF文檔讀寫操作的軟件包,具有強(qiáng)大、完善的Office文檔和PDF文檔讀寫和轉(zhuǎn)化功能。利用POI和PDFBox提取SVN版本倉庫中的Office文檔和PDF文檔的文本內(nèi)容流,從而對(duì)其實(shí)現(xiàn)全文索引。

        (3) 基于NLPIR的中文分詞處理[9]

        NLPIR是中國科學(xué)院計(jì)算技術(shù)研究所經(jīng)過多年的研發(fā)而成供開發(fā)出的一款漢語詞法分析系統(tǒng)。NLPIR主要功能包括中文分詞、命名實(shí)體識(shí)別、用戶詞典和詞性標(biāo)注功能。利用NLPIR的分詞功能對(duì)SVN倉庫中的文檔的內(nèi)容進(jìn)行分詞,同時(shí)過濾掉沒有必要進(jìn)行索引的無意義的詞匯語句,從而減少數(shù)據(jù)冗余,提高索引與檢索效率。

        4 結(jié) 語

        SVN是一款開源的、廣泛應(yīng)用的版本控制系統(tǒng)。伴隨SVN文檔庫中文檔資源數(shù)量的積累和增加,從中進(jìn)行資源文件的查找變得困難。Lucene是一個(gè)知名的開放源代碼全文檢索引擎。據(jù)此,本文提出了一個(gè)基于Lucene的SVN全文檢索系統(tǒng),并針對(duì)版本化數(shù)據(jù)特點(diǎn),提出了兩種修訂限定的全文檢索方式和實(shí)現(xiàn)算法,給出了系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)。該系統(tǒng)提供便捷的SVN系統(tǒng)全文檢索功能,同時(shí)能夠基于修訂限定檢索的范圍與檢索結(jié)果,提升SVN文檔資源的檢索效率。

        [1] 高平,周磊.版本控制系統(tǒng)——Subversion技術(shù)及其在軟件開發(fā)庫的應(yīng)用[J].航空電子技術(shù),2013(1):24-28.

        [2] Liu C,Ye X,Ye E.Source Code Revision History Visualization Tools:Do They Work and What Would it Take to Put Them to Work?[J].IEEE Access,2014,2:404-426.

        [3] 崔詩程,李千目,戈峰,等.基于Lucene的全文檢索架構(gòu)設(shè)計(jì)[J].南京理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,39(6):692-697.

        [4] WebSVN-Online subversion repository browser[OL].http://www.websvn.info/.

        [5] Ben Collins-Sussman,Brian W Fitzpatrick,C Michael Pilato.Version Control with Subversion[M].O’Reilly Media,2008.

        [6] 劉妍.Lucene過濾搜索原理及編程實(shí)踐研究[J].電腦編程技巧與維護(hù),2015(2):22-23.

        [7] 陳燮.基于SVNKIT的大型企業(yè)應(yīng)用系統(tǒng)變更管理[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(18):100-102.

        [8] 孔浩,高琴,姜娜.高校URP中基于POI設(shè)計(jì)實(shí)現(xiàn)數(shù)據(jù)交換中間件[J].陜西理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2013(4):39-42.

        [9] 義天鵬,陳啟安.基于Lucene的中文分析器分詞性能比較研究[J].計(jì)算機(jī)工程,2012(22):279-282.

        RESEARCHANDIMPLEMENTATIONOFAREVISION-RESTRICTEDSVNFULL-TEXTRETRIEVALSYSTEM

        Ren Hongmin1Li Min2Zhao Yaoqiang3Zhang Jingzhou4

        1(DepartmentofComputerScienceandTechnology,ShanghaiMaritimeUniversity,Shanghai200135,China)2(QingdaoWestCoastNewAreaAdministrativeCommittee,Qingdao266555,Shandong,China)3(ShanghaiShenkaiPetroleumEquipmentCo.,Ltd,Shanghai201114,China)4(ShanghaiShangkeInformationTechnologyResearchInstitute,Shanghai201206,China)

        Aiming at the problem of data retrieval from SVN version repositories, an SVN full-text retrieval system is developed based on Lucene indexing and search technology. Combining with the characteristics of version control management, two revision-restricted SVN full-text retrieval methods was proposed. Then the system architecture of revision-restricted SVN full-text retrieval system is defined, the essential algorithms and realization mechanisms are described based on Lucence filters. The system provides convenient full-text retrieval function for SVN repositories and improves the SVN document resources search efficiency as well.

        Subversion SVN Lucene Full-text retrieval

        2017-02-17。上海海事大學(xué)高級(jí)軟件工程精品課程建設(shè)項(xiàng)目(2012YQ15000103)。任洪敏,副教授,主研領(lǐng)域:軟件工程。李敏,碩士。趙要強(qiáng),高工。張敬周,研究員。

        TP311

        A

        10.3969/j.issn.1000-386x.2017.11.016

        猜你喜歡
        版本號(hào)全文檢索庫中
        動(dòng)物城堡
        動(dòng)物城堡
        認(rèn)識(shí)vSphere安裝程序
        智能盤庫在自動(dòng)化立體庫中的探索和應(yīng)用
        Oracle數(shù)據(jù)庫全文檢索性能研究
        深入淺出 全面獲知系統(tǒng)版本號(hào)
        基于KySou的全文檢索系統(tǒng)的分析與優(yōu)化
        多種方法查看系統(tǒng)版本號(hào)
        電腦迷(2014年8期)2014-04-29 08:53:03
        ID3算法在構(gòu)件庫中的應(yīng)用
        河南科技(2014年10期)2014-02-27 14:09:02
        電子商務(wù)的數(shù)據(jù)陳舊性檢查的設(shè)計(jì)與實(shí)現(xiàn)
        日本一区二区视频高清| 亚洲丁香五月激情综合| 国产网友自拍亚洲av| 日本一级片一区二区三区| 日本一二三区视频在线| 18禁美女裸身无遮挡免费网站| 中国精品视频一区二区三区 | 国产av一区二区网站| 日本顶级metart裸体全部| 少妇特黄a一区二区三区| 亚洲av成人一区二区三区网址 | 成人国产在线观看高清不卡| 亚洲综合国产精品一区二区| 强奸乱伦影音先锋| 最近最好的中文字幕2019免费 | 国产女人高潮叫床视频| 亚洲一区二区在线| 亚洲黄色官网在线观看| 日韩中文字幕在线观看一区 | 欧美成人精品第一区二区三区| 91情侣在线精品国产免费| 可以直接在线看国产在线片网址| 性生交片免费无码看人| 夜色阁亚洲一区二区三区| 亚洲免费视频一区二区三区| 亚洲精品av一区二区| 欧美极品jizzhd欧美| 岛国大片在线免费观看| 女同亚洲一区二区三区精品久久| 午夜免费电影| 学生妹亚洲一区二区| 亚洲av毛片成人精品| 综合色免费在线精品视频| 国产97色在线 | 日韩| 91精品啪在线观看国产色| 99伊人久久精品亚洲午夜| 正在播放强揉爆乳女教师| 福利网址在线观看| 丰满熟女人妻一区二区三区 | 中文字幕亚洲高清视频| 亚洲精品v欧洲精品v日韩精品|