• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Git版本庫全文檢索系統(tǒng)的設(shè)計與實現(xiàn)

    2016-09-20 08:14:28高毅任洪敏
    現(xiàn)代計算機 2016年21期
    關(guān)鍵詞:全文檢索庫中文檔

    高毅,任洪敏

    (上海海事大學信息工程學院,上海 201306)

    Git版本庫全文檢索系統(tǒng)的設(shè)計與實現(xiàn)

    高毅,任洪敏

    (上海海事大學信息工程學院,上海 201306)

    隨著Git版本控制系統(tǒng)應用的日益廣泛,Git版本庫中的文檔資料也越來越多。基于Lucene的Git版本庫搜索引擎針對Git版本庫中的文件建立索引并進行搜索。該搜索系統(tǒng)通過Git的鉤子機制異步地建立索引,在檢索時使用了基于J2EE的架構(gòu)。首先對Lucene、jGit等相關(guān)工具包進行研究,然后對索引模塊、檢索模塊等進行設(shè)計,最后編程實現(xiàn)和測試分析。系統(tǒng)實現(xiàn)的Git版本庫中文件的全文檢索,為Git版本庫提供Web化的檢索方式,同時也是對Lucene應用領(lǐng)域的探索。

    Git;Lucene;全文檢索;搜索引擎

    0 引言

    Git是Linus開發(fā)的一個用于Linux內(nèi)核代碼管理的分布式版本控制工具[1]?;贕it的客戶端管理工具如Git bash能用命令的形式對版本庫中文件進行查找,但這種方式使用不方便、也不直觀。為版本庫提供一種Web化的檢索方式,將提升用戶檢索的體驗。

    針對版本庫中文件數(shù)據(jù)的特征,全文檢索技術(shù)是管理這些數(shù)據(jù)的有效方式,它能根據(jù)文件的內(nèi)容進行處理和定位。Lucene是實現(xiàn)全文檢索的工具包,為實現(xiàn)Git版本庫的檢索提供了可能[2]。

    本文通過研究Lucene在各個領(lǐng)域的應用,結(jié)合開源框架Spring和Spring MVC[3],設(shè)計了Java EE架構(gòu)的全文檢索系統(tǒng)。改進了Lucene的分詞器,更好地支持中文分詞;使用開源的文本抽取工具Tika為文本內(nèi)容抽取提供了統(tǒng)一的編程接口;將Git鉤子和Java異步編程結(jié)合,實現(xiàn)了異步索引;設(shè)計并實現(xiàn)了針對Git版本庫中的海量數(shù)據(jù)的全文檢索系統(tǒng)。

    1 系統(tǒng)結(jié)構(gòu)與功能分析

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

    全文檢索是一種將文件中的所有文本與檢索項匹配的文字資料檢索方法[4]。一般包括索引程序根據(jù)文件內(nèi)容建立索引、檢索程序根據(jù)用戶的搜索關(guān)鍵字對已建立的索引進行查找并反饋查找結(jié)果等步驟。

    本系統(tǒng)按照全文檢索理論針對Git版本庫為用戶提供全文檢索服務。在系統(tǒng)結(jié)構(gòu)上有索引數(shù)據(jù)庫數(shù)據(jù)搜集、處理查詢及展示結(jié)果集等全文檢索核心功能。Git倉庫及訪問、索引引擎、查詢引擎、文本分析引擎及Web相關(guān)功能構(gòu)成了整個系統(tǒng)。本系統(tǒng)結(jié)構(gòu)如圖1所示。

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

    1.2 功能分析

    本系統(tǒng)主要實現(xiàn)了Git倉庫的異步索引和檢索兩大主要功能。其中,異步索引功能是針對用戶的提交操作觸發(fā)Git鉤子,由鉤子腳本調(diào)用索引模塊完成Git倉庫的索引的創(chuàng)建。在異步索引的過程中,要經(jīng)過數(shù)據(jù)提取與轉(zhuǎn)換模塊、文本分析模塊才能建立索引。這是由于在Git倉庫中可能包含多種格式的文件,如txt、html、word、excel、pdf等,而Lucene的索引機制只能對文本文件建立索引[5],所以在做索引之前必須做數(shù)據(jù)轉(zhuǎn)換,即提取各種格式文件的文本信息,這一功能由數(shù)據(jù)提取與轉(zhuǎn)換模塊完成。在提取文本數(shù)據(jù)之后,要由分詞器對文本信息做分詞處理,該功能由文本分析模塊完成。

    檢索功能是本系統(tǒng)的核心功能。用戶通過檢索頁面輸入檢索關(guān)鍵字提交檢索請求后,經(jīng)過文本分析模塊、查詢模塊后將匹配結(jié)果集返回。各模塊流程如圖2所示。

    圖2 模塊流程圖

    2 系統(tǒng)設(shè)計

    2.1 Git鉤子和異步索引機制【6】

    在Git版本庫的版本庫目錄下有一個hooks目錄,該目錄是Git版本庫的鉤子腳本目錄,也是實現(xiàn)所有與鉤子相關(guān)功能的關(guān)鍵。這些鉤子腳本能在特定的條件下被觸發(fā),從而可以利用該機制設(shè)計基于鉤子的異步索引。在共享版本庫中我們使用的是“update”腳本,要使該腳本生效只要去掉其文件的擴展名.sample即可。

    在本系統(tǒng)中在共享版本庫中設(shè)置該鉤子,在本地的版本庫向其推送時觸發(fā)腳本,執(zhí)行索引程序。工作流程如圖3所示。

    圖3 基于鉤子的異步索引機制

    2.2 增量化索引

    在Lucene中增量索引是指每次有新的數(shù)據(jù)源要索引時只對新增的數(shù)據(jù)做索引而不需改變原來的索引數(shù)據(jù)。根據(jù)Git版本庫的特點,本系統(tǒng)采用增量索引的方式做索引。在一次提交中可能包含若干發(fā)生變化的文件,采用增量索引,只對這些發(fā)生變化的文件做索引。這種索引方式不僅提高了索引的效率,對于檢索的查全率也有重要影響[7]。

    做增量索引時,首先要獲取在一次提交中發(fā)生變化的文檔的集合,然后遍歷該集合,刪除與每一個文檔相關(guān)聯(lián)的對象塊。下一步又分為兩種情況,若發(fā)生變化的文檔的變化類型是被刪除的,則不做任何索引處理;若是其他變化類型,如修改,則對該文檔重新建立索引??傊饕龜?shù)據(jù)庫中保存的總是文檔的最新修改狀態(tài)的數(shù)據(jù)形式。邏輯流程如圖4所示。

    2.3 文檔解析模塊設(shè)計

    文檔解析是指通過相關(guān)的工具對各種格式的文檔進行轉(zhuǎn)換并解析出文本內(nèi)容。文檔解析模塊的意義在于為索引文檔提供統(tǒng)一的數(shù)據(jù)格式。在Git版本庫中可能存在有各種格式的文檔如word、excel、pdf及普通的txt文檔,使用jGit工具讀取Git版本庫中的數(shù)據(jù)后,可以得到字節(jié)數(shù)組形式的數(shù)據(jù)。Lucene內(nèi)部只能對純文本格式的數(shù)據(jù)建立文檔,而對于其他類型的文檔,不能建立索引,這也是做文檔解析的必要性所在。故在做索引前必須將各種類型的文檔轉(zhuǎn)換成文本文檔。通過分析Lucene的API發(fā)現(xiàn)其提供了文檔類型的描述類Document類和關(guān)于域信息的描述類 Field類,其中Document代表被索引的一個文檔,F(xiàn)ield代表文檔的一個域信息,如文檔內(nèi)容等。也就是說在實際使用時我們不必將各種格式的文檔轉(zhuǎn)換為文本文檔,只需提取出各類型文檔的文本內(nèi)容即可。文檔解析模塊是索引的前提和基礎(chǔ),如果不能順利提取文本內(nèi)容索引也將無法建立。

    圖4 增量索引邏輯流程圖

    文檔解析的實現(xiàn)邏輯[8]:

    文檔解析模塊使用解析框架Tika,Tika是使用Java語言實現(xiàn)的并且是Apache下的開源項目。它能探測并從各種常見的文件中提取包括文本和元信息在內(nèi)的數(shù)據(jù)。多文檔解析的示意圖如圖5所示。

    圖5 文檔解析流程

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

    3.1 異步索引的實現(xiàn)

    “update”腳本在整個推送過程完成后運行。修改該腳本后大致內(nèi)容如下:

    #!/bin/sh

    refname="$1"

    cd$GIT_DIR/tool

    uname=$(git config--get user.name)

    java-Duser=$uname -Dbranch=$refname -Dfile. encoding=utf-8-jar index.jar

    該腳本能在本地倉庫向遠程倉庫推送完成后執(zhí)行,執(zhí)行過程中首先接收參數(shù)refname,其代表推送的分支。然后調(diào)用索引模塊index.jar完成索引的構(gòu)建。

    在索引時使用了Java線程池和FutureTask類:

    ExecutorService executorService = Executors.new-FixedThreadPool(5);

    Task task=new Task();

    FutureTask<Integer>futureTask=new FutureTask<>(task);

    executorService.submit(futureTask);executorService.shutdown();

    3.2 增量索引的實現(xiàn)

    通過分析增量索引的邏輯流程,可知要實現(xiàn)增量索引首先要獲取在一次提交中發(fā)生變化的文檔集,獲取文檔集的核心代碼如下:

    //the list of files changed in a commit

    List<PathChangeModel>list=new ArrayList<PathChange-Model>();

    ......

    List<DiffEntry>diffs=df.scan(parent.getTree(),commit. getTree();

    for(DiffEntry diff:diffs){

    //create the path change model

    PathChangeModel pcm=PathChangeModel.from(diff,commit.getName();

    if(calculateDiffStat){

    //update file diffstats

    df.format(diff);

    PathChangeModel pathStat=df.getDiffStat(). getPath(pcm.path);if(pathStat!=null){

    pcm.insertions=pathStat.insertions;pcm.deletions=pathStat.deletions;}

    list.add(pcm);

    然后遍歷該文檔集,刪除每個文檔對應的索引:

    //delete the indexed blob

    deleteBlob(repositoryName,branch,path.name){

    ......

    接下來判斷變化文件的變化類型,若是刪除則什么也不做;若不是則重建索引。

    //re-index the blob

    if(!ChangeType.DELETE.equals(path.changeType){

    //the file deleted is not indexed

    result.blobCount++;

    Document doc=new Document();

    doc.add(new Field(FIELD_OBJECT_TYPE,SearchObjectType.blob.name(),StringField.TYPE_STORED);

    ......

    //file name

    doc.add(new Field(FIELD_NAME,path.name,TextField. TYPE_STORED);

    //determine extension to compare to the extension //blacklist

    String ext=null;

    String name=path.name.toLowerCase();if(name.indexOf('.')>-1){

    ext=name.substring(name.lastIndexOf('.')+1);}

    if(StringUtils.isEmpty(ext)||!excludedExtensions.contains(ext){

    //read the blob content

    Stringstr= JGitUtils.getStringContent(repository,commit.getTree(),path.path,encodings);

    if(str!=null){doc.add (new Field (FIELD_CONTENT,str,TextField.TYPE_STORED);writer.addDocument(doc);}

    3.3 文檔解析的實現(xiàn)

    通過在設(shè)計章節(jié)對文檔解析模塊的分析,本系統(tǒng)使用開源的文本提取工具Tika提取各種格式文檔的文本數(shù)據(jù),它為文本抽取提供了統(tǒng)一的編程接口。實現(xiàn)文本抽取的核心代碼如下:

    ①ByteArrayInputStream in=new ByteArrayInput-Stream(content);

    ②ContentHandler contentHandler=new BodyContentHandler();

    ③Metadata metadata=new Metadata();

    ④Parser parser=new AutoDetectParser();

    ①中是讀取被解析的文件保存在字節(jié)數(shù)組content中,這時在程序內(nèi)部會建立XHTML形式的數(shù)據(jù)結(jié)構(gòu),然后②中創(chuàng)建一個ContentHandler的子類的實例,本系統(tǒng)使用的是BodyContentHandler類,它能讀?。糱ody></ body>標簽之間的文本內(nèi)容并保存在 contentHandler中。③中是創(chuàng)建了一個默認設(shè)置的元信息對象。④中創(chuàng)建了一個自動探測解析類型的解析器,它會探測文檔的類型然后調(diào)用相應的解析器。

    3.4 索引的實現(xiàn)

    在實現(xiàn)時具體的過程如下:

    (1)搜集用戶輸入的查詢關(guān)鍵詞及過濾條件,并作初步的客戶端驗證。

    (2)創(chuàng)建查詢解析器QueryParser對象以解析用戶輸入,在創(chuàng)建對象時傳入解析器作為構(gòu)造的參數(shù)。

    (3)創(chuàng)建BooleanQuery對象以封裝多個子查詢。(4)創(chuàng)建IndexSearcher對象和TopScoreDocCollector容器對象,并執(zhí)行查詢方法,將結(jié)果集寫入容器。

    (5)以分頁顯示的方式從容器中取得本頁數(shù)據(jù),并放入ScoreDoc類型的數(shù)組中。

    (6)遍歷數(shù)組,返回結(jié)果集。

    檢索功能的核心代碼如下:

    //result set

    Set<SearchResult> results= new LinkedHashSet<SearchResult>();

    IKAnalyzer analyzer=new IKAnalyzer();try{

    BooleanQuery query=new BooleanQuery();

    QueryParser qp;

    if(StringUtils.isEmpty(fname){

    //search by content

    //default search checks content qp=new QueryParser(LUCENE_VERSION,F(xiàn)IELD_CONTENT,analyzer);

    qp.setAllowLeadingWildcard(true);

    query.add(qp.parse(text),Occur.SHOULD);}else if(StringUtils.isEmpty(text){

    //search by filename…………}else{

    //search by filename and content…………}

    //searcher

    IndexSearcher searcher=getIndexSearcher(repositories[0]);

    Query rewrittenQuery=searcher.rewrite(query);

    TopScoreDocCollector collector=TopScoreDocCol lector. create(5000,true);

    searcher.search(rewrittenQuery,collector);

    int offset=Math.max(0,(page-1)*pageSize);

    ScoreDoc[]hits=collector.topDocs(offset,pageSize).score-Docs;

    int totalHits=collector.getTotalHits();for(int i=0;i<hits.length;i++){

    int docId=hits[i].doc;

    Document doc=searcher.doc(docId);

    //search result

    SearchResult result=createSearchResult(doc,hits[i]. score,docId,offset+i+1,totalHits);

    result.repository=repositories[0];

    String content=doc.get(FIELD_CONTENT);if(content.length()>50){

    //the number of display

    content=content.substring(0,50);

    result.fragment=getHighlightedFragment(analyzer,query,content,result);

    results.add(result);

    系統(tǒng)實現(xiàn)的檢索結(jié)果頁面如圖6所示。

    圖6 檢索界面

    4 系統(tǒng)測試分析

    系統(tǒng)測試環(huán)境中CPU為Intel Core i3-3110M CPU @2.40GHz,內(nèi)存為4GB。以txt、docx、pdf三種文檔格式作測試,數(shù)據(jù)大小級別分別為10KB、100KB、1000KB。測試結(jié)果如表1所示。測試結(jié)果表明,文件類型和大小對索引的建立速度有直接的影響,而對檢索速度影響不大。由于在實際環(huán)境中,更頻繁的操作是檢索,故能基本滿足用戶對Git倉庫的檢索需求。

    表1 系統(tǒng)測試結(jié)果

    5 結(jié)語

    本文在研究了Git的工作原理和開源檢索框架Lucene的基礎(chǔ)上,對多格式文檔內(nèi)容進行提取,設(shè)計并實現(xiàn)了一個基于Git倉庫的全文檢索系統(tǒng)。 系統(tǒng)能根據(jù)用戶輸入的關(guān)鍵字和文件名定位索引庫中的文件。系統(tǒng)主要在兩方面需要改進,其一對中文分詞的進一步優(yōu)化,提高分詞精度;其二在面對海量數(shù)據(jù)檢索時,檢索的準確性和效率。

    [1]蔣鑫.Git權(quán)威指南[M].北京:機械工業(yè)出版社,2011.

    [2]Apache Software Foundation.Lucene Java Documentation[DB/OL].http://lucene.apache.org/core/3_0_3/index.html,2013-06-21.

    [3]王福強.Spring揭秘[M].北京:人民郵電出版社,2009.438-580.

    [4]周敬才.基于Lucene全文檢索系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與科學,2015,37(2):2-3.

    [5]牛長流.Lucene實戰(zhàn)[M].北京:人民郵電出版社,2011.32-73.

    [6]王文龍.分布式軟件開發(fā)平臺的設(shè)計與實施[D].北京郵電大學,2011.

    [7]江毅銘.專業(yè)搜索引擎技術(shù)的研究與實現(xiàn)[D].北京化工大學,2005.

    [8]Apache Software Foundation.Apache Tika Document[DB/OL].http://tika.apache.org/1.12/parser.html,2016.

    [9]O'Reilly Taiwan公司譯.Shell腳本學習指南[M].北京:機械工業(yè)出版社,2009.

    Design and Implement of Git Repository Search Engine

    GAO Yi,REN Hong-min
    (College of Information Engineering,Shanghai Maritime University,Shanghai 201306)

    With Git version control system applications increasingly widespread,Git repository documentation is also increasing.Lucene-based Git repository search engine indexing for Git repository file and search.The search system indexed by the hook mechanism Git asynchronously,when used in the retrieval based on J2EE architecture.First,Lucene,jGit kits and other related research,and then indexing module,searching module design,programming and final test analysis.System to achieve full-text search Git repository file with a Git repository provides a Web-based retrieval methods,but also the exploration of Lucene applications.

    1007-1423(2016)21-0071-06

    10.3969/j.issn.1007-1423.2016.21.017

    高毅(1987-),男,山東青島人,碩士研究生,研究方向為信息系統(tǒng)與電子商務任紅敏(1969-),男,上海人,博士,副教授,研究方向為軟件體系結(jié)構(gòu)、構(gòu)件技術(shù)、軟件復用、過程工程、軟件項目管理,基于社會計算、群體智能、人本計算、社會網(wǎng)絡(luò)、輿情分析等技術(shù)的軟件資產(chǎn)管理、船舶協(xié)同設(shè)計知識管理等

    2016-05-06

    2016-07-15

    猜你喜歡
    全文檢索庫中文檔
    動物城堡
    動物城堡
    有人一聲不吭向你扔了個文檔
    智能盤庫在自動化立體庫中的探索和應用
    基于RI碼計算的Word復制文檔鑒別
    Oracle數(shù)據(jù)庫全文檢索性能研究
    Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
    基于KySou的全文檢索系統(tǒng)的分析與優(yōu)化
    ID3算法在構(gòu)件庫中的應用
    河南科技(2014年10期)2014-02-27 14:09:02
    特色數(shù)據(jù)庫全文檢索系統(tǒng)的設(shè)計
    久久久精品区二区三区| 欧美最新免费一区二区三区| 欧美日韩综合久久久久久| 亚洲,一卡二卡三卡| 在线观看三级黄色| 又大又爽又粗| 国产黄色视频一区二区在线观看| 国语对白做爰xxxⅹ性视频网站| 桃花免费在线播放| 纵有疾风起免费观看全集完整版| 最近中文字幕2019免费版| 亚洲欧美色中文字幕在线| 少妇人妻精品综合一区二区| 国产片特级美女逼逼视频| 在现免费观看毛片| 欧美少妇被猛烈插入视频| 国产一区亚洲一区在线观看| 日日撸夜夜添| 色吧在线观看| 一本色道久久久久久精品综合| 永久免费av网站大全| 国产男女超爽视频在线观看| 黄色视频不卡| 欧美黄色片欧美黄色片| 成人午夜精彩视频在线观看| 久久婷婷青草| 少妇被粗大的猛进出69影院| 无遮挡黄片免费观看| 狠狠精品人妻久久久久久综合| 丰满饥渴人妻一区二区三| 精品少妇一区二区三区视频日本电影 | 婷婷色av中文字幕| 久热爱精品视频在线9| 少妇 在线观看| 黄色视频在线播放观看不卡| 国语对白做爰xxxⅹ性视频网站| 午夜91福利影院| 少妇猛男粗大的猛烈进出视频| 亚洲国产精品一区三区| 国产视频首页在线观看| www.熟女人妻精品国产| 午夜久久久在线观看| 又粗又硬又长又爽又黄的视频| 亚洲国产欧美在线一区| 99久久精品国产亚洲精品| 亚洲美女视频黄频| 视频区图区小说| 哪个播放器可以免费观看大片| 亚洲精品日韩在线中文字幕| 美女大奶头黄色视频| 人体艺术视频欧美日本| 51午夜福利影视在线观看| 一区二区日韩欧美中文字幕| 久久久国产欧美日韩av| 丝袜喷水一区| 巨乳人妻的诱惑在线观看| 日韩视频在线欧美| 国产成人午夜福利电影在线观看| 精品一品国产午夜福利视频| 久久精品国产a三级三级三级| 精品人妻一区二区三区麻豆| 久久人人97超碰香蕉20202| 欧美亚洲日本最大视频资源| 亚洲精品国产区一区二| 飞空精品影院首页| 在线亚洲精品国产二区图片欧美| 悠悠久久av| 天天躁夜夜躁狠狠躁躁| 晚上一个人看的免费电影| 久久久久久久大尺度免费视频| 晚上一个人看的免费电影| 中文字幕亚洲精品专区| 午夜精品国产一区二区电影| 嫩草影视91久久| 精品亚洲乱码少妇综合久久| 乱人伦中国视频| 亚洲成人免费av在线播放| 久久久久久久国产电影| 欧美日韩亚洲高清精品| 精品福利永久在线观看| 亚洲第一区二区三区不卡| 久久99一区二区三区| 一级片免费观看大全| 你懂的网址亚洲精品在线观看| 欧美激情高清一区二区三区 | 黑人欧美特级aaaaaa片| 国产精品一区二区在线不卡| av天堂久久9| 日本爱情动作片www.在线观看| 国产成人a∨麻豆精品| 亚洲综合精品二区| 王馨瑶露胸无遮挡在线观看| 99九九在线精品视频| 亚洲自偷自拍图片 自拍| a 毛片基地| 老司机亚洲免费影院| 丝袜脚勾引网站| 侵犯人妻中文字幕一二三四区| 激情视频va一区二区三区| 自线自在国产av| 涩涩av久久男人的天堂| 涩涩av久久男人的天堂| 日韩精品免费视频一区二区三区| 一区二区日韩欧美中文字幕| 亚洲精华国产精华液的使用体验| 免费在线观看完整版高清| 捣出白浆h1v1| 国产毛片在线视频| 黄色一级大片看看| 国产精品av久久久久免费| 纵有疾风起免费观看全集完整版| 麻豆av在线久日| 青草久久国产| 亚洲欧洲国产日韩| 亚洲一级一片aⅴ在线观看| 免费久久久久久久精品成人欧美视频| 国产亚洲最大av| 久久影院123| 啦啦啦中文免费视频观看日本| 看免费av毛片| 欧美国产精品va在线观看不卡| 国产精品久久久久久精品电影小说| 国产亚洲一区二区精品| 十八禁高潮呻吟视频| 日韩 欧美 亚洲 中文字幕| 欧美变态另类bdsm刘玥| 久久婷婷青草| 国产伦理片在线播放av一区| 性高湖久久久久久久久免费观看| 狠狠婷婷综合久久久久久88av| 国产极品天堂在线| 国产97色在线日韩免费| av又黄又爽大尺度在线免费看| 美女扒开内裤让男人捅视频| 久久99热这里只频精品6学生| 亚洲婷婷狠狠爱综合网| 日韩免费高清中文字幕av| 一区二区三区激情视频| 97在线人人人人妻| 欧美人与善性xxx| 亚洲熟女精品中文字幕| 青春草亚洲视频在线观看| 精品卡一卡二卡四卡免费| 99久国产av精品国产电影| 国产乱来视频区| 久久久久久人人人人人| 午夜福利乱码中文字幕| 大香蕉久久网| 久久天躁狠狠躁夜夜2o2o | 久久天躁狠狠躁夜夜2o2o | 日本午夜av视频| 久久久国产一区二区| 人人妻人人添人人爽欧美一区卜| 一级毛片我不卡| 少妇 在线观看| 悠悠久久av| 亚洲国产看品久久| 性高湖久久久久久久久免费观看| 一级片免费观看大全| 欧美日韩福利视频一区二区| 国产精品人妻久久久影院| 黑人欧美特级aaaaaa片| 女性被躁到高潮视频| 婷婷成人精品国产| 精品视频人人做人人爽| 亚洲精品美女久久av网站| 人成视频在线观看免费观看| 久久精品久久久久久噜噜老黄| 大片电影免费在线观看免费| 国产成人av激情在线播放| 人妻人人澡人人爽人人| 亚洲精品在线美女| 91成人精品电影| 国产毛片在线视频| 成人毛片60女人毛片免费| 在线观看免费午夜福利视频| 熟女少妇亚洲综合色aaa.| 少妇猛男粗大的猛烈进出视频| 一级a爱视频在线免费观看| 午夜福利视频在线观看免费| 十八禁网站网址无遮挡| 亚洲欧美一区二区三区黑人| 欧美日韩福利视频一区二区| 丰满乱子伦码专区| 一区二区三区乱码不卡18| 啦啦啦啦在线视频资源| 精品一区二区三卡| 捣出白浆h1v1| 黄片无遮挡物在线观看| 一本久久精品| 日韩,欧美,国产一区二区三区| 各种免费的搞黄视频| 国产亚洲一区二区精品| 香蕉丝袜av| 伦理电影免费视频| 国产一区有黄有色的免费视频| 一级片免费观看大全| 一区二区三区四区激情视频| 国产av一区二区精品久久| 在线观看免费午夜福利视频| 午夜激情av网站| 国产在线免费精品| 丰满迷人的少妇在线观看| 日日啪夜夜爽| 亚洲一卡2卡3卡4卡5卡精品中文| 老司机在亚洲福利影院| 亚洲av日韩精品久久久久久密 | 亚洲国产精品一区三区| 精品国产一区二区三区四区第35| 精品久久久久久电影网| 韩国高清视频一区二区三区| 交换朋友夫妻互换小说| av电影中文网址| 黄片小视频在线播放| 日韩大片免费观看网站| 亚洲国产成人一精品久久久| 亚洲人成电影观看| 最近手机中文字幕大全| 美女高潮到喷水免费观看| 国产激情久久老熟女| 18禁动态无遮挡网站| 人成视频在线观看免费观看| 日韩免费高清中文字幕av| 高清视频免费观看一区二区| 亚洲国产中文字幕在线视频| 日本91视频免费播放| 街头女战士在线观看网站| 欧美人与性动交α欧美软件| 大香蕉久久网| 天堂8中文在线网| 搡老岳熟女国产| 别揉我奶头~嗯~啊~动态视频 | 人妻人人澡人人爽人人| 伦理电影大哥的女人| 男女边吃奶边做爰视频| 搡老岳熟女国产| 免费在线观看黄色视频的| 国产精品免费视频内射| 久久99一区二区三区| 日日摸夜夜添夜夜爱| 一区二区日韩欧美中文字幕| 亚洲国产欧美在线一区| videos熟女内射| 中文欧美无线码| 超碰成人久久| 99国产综合亚洲精品| 欧美久久黑人一区二区| 午夜免费观看性视频| 亚洲国产av新网站| 三上悠亚av全集在线观看| 亚洲国产欧美一区二区综合| 国语对白做爰xxxⅹ性视频网站| 亚洲,欧美,日韩| 久久久国产一区二区| 久久精品国产a三级三级三级| av在线观看视频网站免费| 高清欧美精品videossex| 精品少妇黑人巨大在线播放| 久久久久精品国产欧美久久久 | 一本大道久久a久久精品| 久久精品国产亚洲av涩爱| 国产男女内射视频| 亚洲av成人不卡在线观看播放网 | 亚洲一码二码三码区别大吗| 国语对白做爰xxxⅹ性视频网站| 十八禁网站网址无遮挡| 久久久久久久久免费视频了| 国产精品久久久人人做人人爽| 性少妇av在线| 天天躁夜夜躁狠狠躁躁| 美女主播在线视频| 啦啦啦啦在线视频资源| 国产精品国产三级专区第一集| 老司机亚洲免费影院| 国产精品一区二区在线观看99| 久久热在线av| 蜜桃在线观看..| 午夜激情久久久久久久| 一级爰片在线观看| e午夜精品久久久久久久| 女的被弄到高潮叫床怎么办| 亚洲熟女精品中文字幕| 韩国av在线不卡| 久久精品国产亚洲av高清一级| 亚洲国产欧美网| 久久久久精品人妻al黑| 观看美女的网站| av视频免费观看在线观看| 一本—道久久a久久精品蜜桃钙片| 欧美日韩亚洲高清精品| 日本午夜av视频| 亚洲欧美激情在线| 日韩av在线免费看完整版不卡| 欧美人与性动交α欧美软件| 你懂的网址亚洲精品在线观看| 久久 成人 亚洲| 亚洲,欧美,日韩| 久久久久精品国产欧美久久久 | 曰老女人黄片| 中文字幕人妻丝袜制服| 少妇猛男粗大的猛烈进出视频| 久久精品熟女亚洲av麻豆精品| 免费不卡黄色视频| av线在线观看网站| 亚洲国产av影院在线观看| 欧美 日韩 精品 国产| 只有这里有精品99| 麻豆精品久久久久久蜜桃| 国产精品久久久久久人妻精品电影 | 国产深夜福利视频在线观看| 视频区图区小说| 丝袜在线中文字幕| 亚洲一卡2卡3卡4卡5卡精品中文| 老司机靠b影院| 十八禁人妻一区二区| 水蜜桃什么品种好| 色精品久久人妻99蜜桃| 少妇 在线观看| 天天操日日干夜夜撸| 国语对白做爰xxxⅹ性视频网站| 女性生殖器流出的白浆| 国产成人a∨麻豆精品| 老汉色av国产亚洲站长工具| av国产精品久久久久影院| 免费在线观看完整版高清| av一本久久久久| 亚洲精品久久成人aⅴ小说| 国产一区亚洲一区在线观看| 日本欧美视频一区| av又黄又爽大尺度在线免费看| videos熟女内射| 亚洲国产av影院在线观看| 久久久久久久国产电影| 成人黄色视频免费在线看| 韩国高清视频一区二区三区| 日本av免费视频播放| 日韩一区二区三区影片| 人成视频在线观看免费观看| 水蜜桃什么品种好| 亚洲av国产av综合av卡| 亚洲精品第二区| 麻豆av在线久日| 亚洲欧美精品综合一区二区三区| 亚洲激情五月婷婷啪啪| 韩国av在线不卡| 婷婷色麻豆天堂久久| 下体分泌物呈黄色| 天天躁夜夜躁狠狠久久av| 老司机影院成人| av.在线天堂| 亚洲精品国产av成人精品| 99国产综合亚洲精品| 亚洲精品国产av成人精品| 免费高清在线观看日韩| 亚洲精品国产av成人精品| 精品国产一区二区三区久久久樱花| 男男h啪啪无遮挡| 久久鲁丝午夜福利片| 欧美日韩视频高清一区二区三区二| 黄片小视频在线播放| 中国国产av一级| 欧美老熟妇乱子伦牲交| 天美传媒精品一区二区| 九草在线视频观看| 日韩成人av中文字幕在线观看| 欧美黑人欧美精品刺激| 亚洲精品av麻豆狂野| 国产一卡二卡三卡精品 | 国产精品久久久av美女十八| 国产精品人妻久久久影院| 波多野结衣av一区二区av| 一本—道久久a久久精品蜜桃钙片| 男女午夜视频在线观看| 777米奇影视久久| 国产xxxxx性猛交| av网站在线播放免费| 男女无遮挡免费网站观看| 亚洲精品国产一区二区精华液| 日本欧美视频一区| 国产精品欧美亚洲77777| 赤兔流量卡办理| 久久ye,这里只有精品| 亚洲欧美成人精品一区二区| 日韩成人av中文字幕在线观看| 十八禁网站网址无遮挡| av卡一久久| 成人亚洲精品一区在线观看| 亚洲欧美清纯卡通| 国产精品久久久久久人妻精品电影 | 亚洲成色77777| av国产久精品久网站免费入址| 成人亚洲欧美一区二区av| 一本久久精品| 欧美精品一区二区大全| 麻豆精品久久久久久蜜桃| 亚洲美女黄色视频免费看| 美女视频免费永久观看网站| 日本一区二区免费在线视频| av在线app专区| 各种免费的搞黄视频| 美女午夜性视频免费| 色综合欧美亚洲国产小说| 午夜福利乱码中文字幕| 中国国产av一级| 深夜精品福利| 久久国产亚洲av麻豆专区| 性高湖久久久久久久久免费观看| 国产在视频线精品| 中文天堂在线官网| 麻豆乱淫一区二区| 成人黄色视频免费在线看| 午夜精品国产一区二区电影| 亚洲免费av在线视频| 日本欧美视频一区| 国产亚洲最大av| 国产毛片在线视频| 亚洲,一卡二卡三卡| 国产免费现黄频在线看| 日本欧美国产在线视频| 亚洲精品自拍成人| 如何舔出高潮| 免费不卡黄色视频| 一区福利在线观看| 9色porny在线观看| 亚洲成色77777| 夜夜骑夜夜射夜夜干| 午夜福利网站1000一区二区三区| 精品少妇一区二区三区视频日本电影 | 制服人妻中文乱码| 国产在线视频一区二区| 久久精品国产综合久久久| 亚洲第一区二区三区不卡| 国产 精品1| 大香蕉久久成人网| 亚洲av成人不卡在线观看播放网 | 成人国产麻豆网| 国产亚洲av片在线观看秒播厂| 国产男人的电影天堂91| 熟女av电影| 中文字幕av电影在线播放| 国产男女超爽视频在线观看| av女优亚洲男人天堂| 国产精品国产三级专区第一集| 亚洲国产欧美日韩在线播放| 色婷婷av一区二区三区视频| 青春草视频在线免费观看| 国产淫语在线视频| 久久影院123| 欧美黑人欧美精品刺激| 99久久99久久久精品蜜桃| 制服丝袜香蕉在线| 青春草国产在线视频| av免费观看日本| av在线app专区| 美女扒开内裤让男人捅视频| 亚洲,欧美,日韩| 丝袜美足系列| 久久99一区二区三区| 欧美成人午夜精品| 国产欧美日韩综合在线一区二区| 国产精品麻豆人妻色哟哟久久| 日韩av免费高清视频| 亚洲视频免费观看视频| 国产成人a∨麻豆精品| 欧美xxⅹ黑人| 亚洲欧美一区二区三区国产| 别揉我奶头~嗯~啊~动态视频 | 天天躁夜夜躁狠狠躁躁| 精品久久蜜臀av无| 亚洲国产精品999| 在线观看免费高清a一片| 欧美xxⅹ黑人| 性色av一级| 久久久精品国产亚洲av高清涩受| 久久精品熟女亚洲av麻豆精品| 国产一区二区 视频在线| 美女高潮到喷水免费观看| 亚洲自偷自拍图片 自拍| 亚洲精品日韩在线中文字幕| 亚洲美女搞黄在线观看| av网站在线播放免费| 午夜福利,免费看| 好男人视频免费观看在线| 永久免费av网站大全| 亚洲精品在线美女| 一级毛片 在线播放| 国产av一区二区精品久久| 亚洲 欧美一区二区三区| 欧美日韩亚洲综合一区二区三区_| 最近2019中文字幕mv第一页| 久久久久精品久久久久真实原创| 国产xxxxx性猛交| 两个人看的免费小视频| 国产精品一区二区在线观看99| av女优亚洲男人天堂| 午夜av观看不卡| 亚洲成人免费av在线播放| 国产亚洲最大av| 女人久久www免费人成看片| 在现免费观看毛片| 国产精品一国产av| 亚洲欧美色中文字幕在线| 亚洲av电影在线观看一区二区三区| 国产一区二区激情短视频 | 一级毛片我不卡| 麻豆av在线久日| 男人舔女人的私密视频| 大码成人一级视频| 亚洲精品美女久久久久99蜜臀 | 天天影视国产精品| 日韩成人av中文字幕在线观看| 精品国产乱码久久久久久男人| 最近2019中文字幕mv第一页| 亚洲欧美成人综合另类久久久| 日韩 欧美 亚洲 中文字幕| 国产成人av激情在线播放| 精品国产乱码久久久久久男人| 99热全是精品| e午夜精品久久久久久久| 国产又色又爽无遮挡免| av卡一久久| 一级,二级,三级黄色视频| 熟妇人妻不卡中文字幕| 国产精品 欧美亚洲| 女人久久www免费人成看片| a级毛片黄视频| 观看av在线不卡| 日韩视频在线欧美| 亚洲色图综合在线观看| 欧美精品一区二区大全| 久久久久久久国产电影| 国产亚洲午夜精品一区二区久久| 看十八女毛片水多多多| 亚洲欧美一区二区三区国产| 国产精品秋霞免费鲁丝片| 午夜福利乱码中文字幕| 热re99久久国产66热| 久久天躁狠狠躁夜夜2o2o | 人体艺术视频欧美日本| 黄网站色视频无遮挡免费观看| 免费不卡黄色视频| 久久av网站| 中文字幕精品免费在线观看视频| 久久性视频一级片| 日本欧美视频一区| 啦啦啦在线免费观看视频4| 天天操日日干夜夜撸| 午夜精品国产一区二区电影| 夫妻午夜视频| 久久女婷五月综合色啪小说| 日韩中文字幕视频在线看片| 91精品三级在线观看| 老司机影院成人| 在线观看免费午夜福利视频| 80岁老熟妇乱子伦牲交| 99九九在线精品视频| 只有这里有精品99| 欧美精品高潮呻吟av久久| 日本av手机在线免费观看| 国产成人精品无人区| 成年av动漫网址| svipshipincom国产片| 看十八女毛片水多多多| 秋霞在线观看毛片| 中国三级夫妇交换| 老汉色av国产亚洲站长工具| a 毛片基地| 菩萨蛮人人尽说江南好唐韦庄| 欧美激情 高清一区二区三区| av电影中文网址| 国产 一区精品| 欧美在线黄色| 久久国产亚洲av麻豆专区| 视频在线观看一区二区三区| videos熟女内射| 色视频在线一区二区三区| 人成视频在线观看免费观看| av线在线观看网站| 久久人人爽av亚洲精品天堂| 国产成人精品无人区| 黑人巨大精品欧美一区二区蜜桃| 搡老乐熟女国产| 精品免费久久久久久久清纯 | 亚洲成色77777| 国产精品一二三区在线看| 777米奇影视久久| 看十八女毛片水多多多| 国产精品国产三级国产专区5o| 成年女人毛片免费观看观看9 | 国产成人精品久久二区二区91 | 国产精品一国产av| 在线观看免费视频网站a站| 99九九在线精品视频| 制服诱惑二区| 少妇精品久久久久久久| 日日爽夜夜爽网站| 汤姆久久久久久久影院中文字幕| 搡老岳熟女国产| 久久韩国三级中文字幕| 免费人妻精品一区二区三区视频| 欧美在线黄色| 大片免费播放器 马上看| 街头女战士在线观看网站| 精品视频人人做人人爽| 99九九在线精品视频| 一区在线观看完整版| 久久久精品免费免费高清| 欧美日韩国产mv在线观看视频| 日本色播在线视频| 秋霞伦理黄片| 女人爽到高潮嗷嗷叫在线视频| 婷婷色综合大香蕉| 国产精品国产av在线观看| 一本大道久久a久久精品| 久久久久精品久久久久真实原创|