精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關于Lucene以及索引和搜索的流程

開發 后端
Lucene的普及和成功的背后是因為它的簡單。因此,你不需要深入理解Lucene的信息索引和檢索工作方面的知識就可以開始使用。Lucene提供了簡單但是強大的核心API去實現全文索引和檢索,你只需要掌握少數的類就能將Lucene整合到應用中。

Lucene的普及和成功的背后是因為它的簡單。

因此,你不需要深入理解Lucene的信息索引和檢索工作方面的知識就可以開始使用。

Lucene提供了簡單但是強大的核心API去實現全文索引和檢索,你只需要掌握少數的類就能將Lucene整合到應用中。

剛接觸Lucene的人可能會誤認為Lucene是一個文件搜索工具、網絡爬蟲、或者網頁搜索引擎。實際上Lucene是一個軟件庫,而不是一個全功能的搜索應用程序。它涉及全文索引和搜索,而且做得非常好。Lucene可以讓你的應用程序隱藏起復雜的索引和搜索背后的操作,而使用簡單的API處理特定的問題領域和業務規則。你可以想象Lucene就是像一個層,你的應用就在層的上面。

Lucene允許你添加索引和搜索功能到應用程序中。Lucene不關心數據的來源,Lucene可以索引和搜索任何可以轉換成文本格式的數據。這意味著你可以用Lucene索引和搜索數據:遠程web服務器上的網頁、存儲在本地文件系統的文檔、簡單的文本文件、Microsoft Word文檔、HTML或PDF文件,或者其他任何可以從中提取文本信息的格式文件。

所有搜索引擎的核心就是索引的概念:把原始數據處理成一個高效的交叉引用查找,以便快速檢索。讓我們看看快速高效的索引和搜索過程。

1.索引是什么,為什么它這么重要?

假如你需要搜索大量的文件,你希望找到那些包含某個單詞或詞組的文件。你將如何去寫一個程序實現這個功能?一個做法就是按順序掃描每一個文件,搜索是否包含給定的單詞或詞組。但是這樣的做法有很多缺陷的,其中最明顯的就是在大量的文件存在的情況下,速度是令人無法接受的。這種情況下,索引產生了。為了搜索大量的文本,你首先要對這些文本以特定的結構存儲,這種存儲結構可以讓你迅速的搜索,消除慢的順序掃描的過程。這種存儲結構就叫索引,將文本轉換成特定結構存儲的過程,就叫建立索引。

索引作為一種數據結構,允許你快速隨機的訪問存儲在里面的詞。類似于字典的目錄,某個詞對應到某一頁,查找的時候直接定位到那一頁,速度就非常快,不用一頁一頁的翻去查找。Lucene的索引是一種專門設計的數據結構,通常作為一組索引文件存儲在文件系統上。

2.什么是搜索?

在索引中搜索關鍵詞,找到包含關鍵詞的文檔的過程就是搜索。搜索質量通常使用準確度和召回率來描述。所謂召回率是指一次搜索結果集合中符合用戶要求的數目與和用戶查詢相關的總數之比,而準確率是指一次搜索結果集合中符合用戶要求的數目與該次搜索結果總數之比。我們也需要考慮其他有關搜索的因素,比如速度和快速搜索大量文本的能力,單個和多項查詢、 短語查詢、 通配符、 結果的排名和排序的支持也很重要。

3.Lucene in Action

假如我們需要索引和搜索存儲在一個目錄下的文件。

在我們使用Lucene進行搜索之前,我們需要先建立索引。使用的Lucene的版本是3.6。

3.1建立索引

1)創建存放索引的目錄Directory

2)創建索引器配置管理類IndexWriterConfig

3)使用索引目錄和配置管理類創建索引器

4)使用索引器將Document寫到索引文件中

索引器類:

  1. /**  
  2.  * 索引器  
  3.  * @author Luxh  
  4.  */ 
  5. public class Indexer {  
  6.        
  7.        
  8.     /**  
  9.      * 建立索引  
  10.      * @param filePath 需要建立索引的文件的存放路徑  
  11.      * @throws IOException  
  12.      */ 
  13.     public static void createIndex(String filePath) throws IOException {  
  14.            
  15.         //在當前路徑下創建一個叫indexDir的目錄  
  16.         File indexDir = new File("./indexDir");  
  17.            
  18.         //創建索引目錄  
  19.         Directory directory = FSDirectory.open(indexDir);  
  20.            
  21.         //創建一個分詞器  
  22.         Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);  
  23.            
  24.         //創建索引配置器  
  25.         IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_36,analyzer);  
  26.            
  27.            
  28.         LogMergePolicy mergePolicy = new LogByteSizeMergePolicy();  
  29.            
  30.         //設置segment添加文檔(Document)時的合并頻率  
  31.         //值較小,建立索引的速度就較慢  
  32.         //值較大,建立索引的速度就較快,>10適合批量建立索引  
  33.         mergePolicy.setMergeFactor(50);  
  34.            
  35.         //設置segment最大合并文檔(Document)數  
  36.         //值較小有利于追加索引的速度  
  37.         //值較大,適合批量建立索引和更快的搜索  
  38.         mergePolicy.setMaxMergeDocs(5000);  
  39.            
  40.         //啟用復合式索引文件格式,合并多個segment  
  41.         mergePolicy.setUseCompoundFile(true);  
  42.            
  43.            
  44.         indexWriterConfig.setMergePolicy(mergePolicy);  
  45.            
  46.         //設置索引的打開模式  
  47.         indexWriterConfig.setOpenMode(OpenMode.CREATE_OR_APPEND);  
  48.            
  49.         //創建索引器  
  50.         IndexWriter indexWriter = new IndexWriter(directory,indexWriterConfig);  
  51.            
  52.            
  53.         File fileDir = new File(filePath);  
  54.         for(File file : fileDir.listFiles()) {  
  55.             //Document是Lucene的文檔結構,需要索引的對象都要轉換為Document  
  56.             Document document = new Document();  
  57.                
  58.             //文件名,可查詢,分詞,存儲到索引庫記錄中  
  59.             document.add(new Field("name",getFileName(file),Store.YES,Index.ANALYZED));  
  60.                
  61.             //文件路徑,可查詢,不分詞,存儲到索引庫記錄中  
  62.             document.add(new Field("path",file.getAbsolutePath(),Store.YES,Index.NOT_ANALYZED));  
  63.                
  64.             //大文本內容,可查詢,不存儲,實際上可根據文件路徑去找到真正的文本內容  
  65.             //document.add(new Field("content",new FileReader(file)));  
  66.                
  67.             //小文本內容,可以存儲到索引記錄庫  
  68.             document.add(new Field("content",getFileContent(file),Store.YES,Index.ANALYZED));  
  69.                
  70.             //把文檔添加到索引庫  
  71.             indexWriter.addDocument(document);  
  72.                
  73.         }  
  74.            
  75.         //提交索引到磁盤上的索引庫,關閉索引器  
  76.         indexWriter.close();  
  77.    
  78.     }  
  79.        
  80.     /**  
  81.      * 獲取文件名  
  82.      */ 
  83.     public static String getFileName(File file) {  
  84.         String fileName = "";  
  85.         if(file != null) {  
  86.             fileName = file.getName().substring(0, file.getName().lastIndexOf("."));  
  87.         }  
  88.         return fileName;  
  89.     }  
  90.        
  91.     /**  
  92.      * 獲取文本  
  93.      * @param file  
  94.      */ 
  95.     public static String getFileContent(File file) {  
  96.         FileReader fr = null;  
  97.         BufferedReader br = null;  
  98.         String content = "";  
  99.         try {  
  100.             fr = new FileReader(file);  
  101.             br = new BufferedReader(fr);  
  102.             StringBuffer sb = new StringBuffer();  
  103.             String line = br.readLine();  
  104.             while(null != line){  
  105.                 sb.append(line);  
  106.                 line = br.readLine();  
  107.             }  
  108.             content = sb.toString();  
  109.         }catch(Exception e) {  
  110.             e.printStackTrace();  
  111.         }finally {  
  112.             try {  
  113.                 if(fr != null)  
  114.                     fr.close();  
  115.                 if(br != null)  
  116.                     br.close();  
  117.             } catch (IOException e) {  
  118.                 e.printStackTrace();  
  119.             }  
  120.         }  
  121.         return content;  
  122.            
  123.     }  
  124.    
  125.        

IndexWriter:索引器,負責創建和維護一條索引。

在Lucene3.6版本,只推薦使用一個構造方法IndexWriter(Directory d,IndexWriterConfig conf),其他的構造方法都已經過時。所有關于IndexWriter的配置都是通過IndexWriterConfig來進行管理。

IndexWriterConfig:索引器配置類,管理所有有關索引器的配置。只有一個構造方法IndexWriterConfig(Version matchVersion,Analyzer analyzer),構造方法中的參數matchVersion是Lucene的版本,analyzer是分詞器。

接下來我們運行索引器創建索引。

  1. public class TestIndexer {  
  2.        
  3.     /**  
  4.      * 創建索引  
  5.      * @throws IOException  
  6.      */ 
  7.     @Test 
  8.     public void testCreateIndex() throws IOException{  
  9.         //存放需要建立索引的文件的目錄路徑  
  10.         String filePath = "./fileDir";  
  11.         //調用索引器的創建索引方法  
  12.         Indexer.createIndex(filePath);  
  13.     }  

這樣我們就對當前路徑下fileDir中的文件創建了索引。

3.2執行搜索

在Lucene中搜索像建立索引一樣簡單、快速。現在,我們建立一個搜索器,搜索包含特定文本的文件。

1)使用QueryParser將查詢的關鍵詞解析成Lucene的查詢對象Query。創建QueryParser的時候我們需要用到分詞器,這個分詞器要和前面創建索引的時候使用的分詞器一致。

2)使用FSDirectory打開索引所在的目錄。

3)使用IndexReader讀取索引目錄和使用IndexSearcher進行搜索。

4)返回搜索結果對象TopDocs。TopDocs包含搜索到結果總數和結果的集合ScoreDocs數組

5)遍歷結果的集合ScoreDocs數組,根據每一個ScoreDoc的文檔編號獲取Document

看看搜索器的代碼:

  1. /**  
  2.  * 搜索器  
  3.  * @author Luxh  
  4.  */ 
  5. public class Searcher {  
  6.        
  7.     /**  
  8.      * 搜索  
  9.      * @param keyWord 搜索的關鍵詞  
  10.      * @param indexDir  索引目錄所在路徑  
  11.      * @throws ParseException  
  12.      * @throws IOException  
  13.      * @return List<Document>  
  14.      */ 
  15.     public static List<Document> search(String keyWord,String indexDirPath) throws ParseException, IOException {  
  16.            
  17.         String[] fields = {"name","content"};  
  18.            
  19.         //創建一個分詞器,和創建索引時用的分詞器要一致  
  20.         Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);  
  21.            
  22.         //創建查詢解析器  
  23.         QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_36,fields,analyzer);  
  24.            
  25.         //將查詢關鍵詞解析成Lucene的Query對象  
  26.         Query query = queryParser.parse(keyWord);  
  27.            
  28.         //打開索引目錄  
  29.         File indexDir = new File(indexDirPath);  
  30.         Directory directory = FSDirectory.open(indexDir);  
  31.            
  32.         //獲取訪問索引的接口,進行搜索  
  33.         IndexReader indexReader  = IndexReader.open(directory);  
  34.         IndexSearcher indexSearcher = new IndexSearcher(indexReader);  
  35.            
  36.         //TopDocs 搜索返回的結果  
  37.         TopDocs topDocs = indexSearcher.search(query, 100);//只返回前100條記錄  
  38.            
  39.         int totalCount = topDocs.totalHits; // 搜索結果總數量  
  40.         System.out.println("搜索到的結果總數量為:" + totalCount);  
  41.            
  42.         ScoreDoc[] scoreDocs = topDocs.scoreDocs; // 搜索的結果集合  
  43.            
  44.         List<Document> docs = new ArrayList<Document>();  
  45.            
  46.         for(ScoreDoc scoreDoc : scoreDocs) {  
  47.             //文檔編號  
  48.             int docID = scoreDoc.doc;  
  49.             //根據文檔編號獲取文檔  
  50.             Document doc = indexSearcher.doc(docID);  
  51.             docs.add(doc);  
  52.         }  
  53.         indexReader.close();  
  54.         indexSearcher.close();  
  55.         return docs;  
  56.     }  

接下來我們運行搜索器:

  1. public class TestSearcher {  
  2.        
  3.     /**  
  4.      * 搜索  
  5.      */ 
  6.     @Test 
  7.     public void testSearch() throws IOException, ParseException{  
  8.         //搜索關鍵詞  
  9.         String keyWord = "Java";  
  10.         //索引目錄路徑  
  11.         String indexDirPath = "./indexDir";  
  12.         //調用搜索器進行搜索  
  13.         List<Document> docs = Searcher.search(keyWord, indexDirPath);  
  14.         for(Document doc : docs) {  
  15.             System.out.println("文件名 : "+doc.get("name"));  
  16.             System.out.println("路徑 : "+doc.get("path"));  
  17.             System.out.println("內容 : "+doc.get("content"));  
  18.         }  
  19.     }  
  20.        
  21.        

如果有包含關鍵詞的文件,就會被搜索出來了。

原文鏈接:http://www.cnblogs.com/luxh/archive/2012/06/20/2554095.html

責任編輯:林師授 來源: 博客園
相關推薦

2011-09-16 15:55:09

Java

2012-04-13 09:05:41

LuceneJava

2017-09-15 16:00:48

Lucene存儲讀取技術

2011-06-20 18:23:06

SEO

2017-09-22 09:20:06

數據庫索引

2015-07-31 10:30:47

IBM Cloudan開源搜索

2017-09-04 16:03:46

MySQLMySQL索引索引

2009-09-22 16:23:52

搜索引擎

2016-10-25 12:39:37

Windows優化桌面

2024-04-16 09:53:56

PostgreSQL數據庫優化索引

2011-12-08 10:39:29

JavaLucene

2021-07-15 10:11:56

IT流程設計流程流程文化

2021-01-28 05:13:17

Oracle索引外鍵

2020-02-25 15:47:05

ElasticsearLucene地方

2013-05-24 09:57:28

搜索流程搜索產品設計搜索設計

2009-02-19 09:41:36

搜索引擎搜狐百度

2024-09-04 15:54:43

Python列表索引

2010-02-06 15:06:14

2022-10-14 07:42:50

LuceneHTTPWeb

2017-08-07 08:15:31

搜索引擎倒排
點贊
收藏

51CTO技術棧公眾號

国产一区二区三区美女| 特黄特色欧美大片| 1024国产精品| 1区1区3区4区产品乱码芒果精品| 三级影片在线看| 国产精品乱战久久久| 日韩欧美中文字幕在线观看 | 88久久精品| 黄网站色欧美视频| 一区二区不卡视频| 婷婷五月综合激情| 久久机这里只有精品| 久久噜噜噜精品国产亚洲综合| 精品人伦一区二区三电影| 日韩有码欧美| 黑人精品xxx一区一二区| 亚洲黄色一区二区三区| 嫩草影院一区二区| 麻豆视频观看网址久久| 韩国19禁主播vip福利视频| 特级西西人体高清大胆| 精品自拍偷拍| 91精品国产综合久久精品app| 中文字幕无码精品亚洲35| 看黄网站在线观看| 久久青草国产手机看片福利盒子 | 国产xxxxxx| 日韩极品在线观看| 欧美性受xxxx白人性爽| 久久免费视频精品| 先锋资源久久| 色噜噜久久综合伊人一本| 亚洲色图14p| 成人春色在线观看免费网站| 3atv一区二区三区| 日日干夜夜操s8| 欧美色网在线| 在线视频综合导航| 成人免费观看视频在线观看| 波多野结衣精品| 亚洲精品中文字幕乱码三区| 一级日韩一区在线观看| 国产高清视频在线观看| 久久综合色一综合色88| 久久99精品国产99久久| 黄色av免费观看| 国内精品不卡在线| 国产精品久久久久久久久男| 国产女同在线观看| 国内自拍一区| 久热精品视频在线观看| 精品人妻在线视频| 亚洲人成网站在线在线观看| 欧美视频精品在线| 韩国日本在线视频| 欧美日韩国产观看视频| 亚洲一区二区三区爽爽爽爽爽 | 97精品国产福利一区二区三区| 日韩av一区二区在线| 日本一区二区三区在线免费观看| 电影亚洲一区| 欧美色综合网站| 免费av手机在线观看| 国产欧美黑人| 中文字幕亚洲精品在线观看| 日本成人黄色免费看| 日本成人一区| 久久香蕉国产线看观看99| 国产一区在线免费观看| 好吊色视频一区二区| 国产69精品久久99不卡| 高清一区二区三区视频| 国产小视频免费观看| 成人一区二区视频| av免费观看久久| 国产免费不卡视频| 久久福利资源站| 91久久在线播放| 国产日韩欧美视频在线观看| 久久精品99久久久| 成人日韩av在线| 性生活视频软件| caoporm超碰国产精品| 国内成+人亚洲| 五月天激情婷婷| 久久综合色婷婷| 日韩视频精品| www在线免费观看视频| 亚洲激情一二三区| 二级片在线观看| 性欧美videos高清hd4k| 亚洲国产一区视频| 91免费视频网站在线观看| 日韩成人av电影| 欧美日韩视频在线观看一区二区三区 | 成人一二三区| 欧美成人剧情片在线观看| 久久久久无码国产精品| 午夜综合激情| 国产欧美日韩视频| 亚洲男女视频在线观看| 91在线国产观看| 天堂资源在线亚洲资源| 黄色成人影院| 欧美视频精品一区| 亚洲一区二区三区四区五区| 中文字幕日韩高清在线| 日韩大陆毛片av| 精品人体无码一区二区三区| 久久精品一区二区不卡| 91极品女神在线| 911美女片黄在线观看游戏| 成人晚上爱看视频| 亚洲精品一卡二卡三卡四卡| 欧美理论电影| 在线精品观看国产| 涩视频在线观看| 欧美日韩老妇| 欧美国产极速在线| 最近中文字幕免费在线观看| 国产精品一区二区久激情瑜伽| 国内视频一区| 激情在线小视频| 色屁屁一区二区| 一级黄色大片免费看| 欧美精品第一区| 欧美成人高清视频| 夜夜爽妓女8888视频免费观看| 国产一区二区不卡老阿姨| 蜜桃传媒视频麻豆第一区免费观看 | 国产一二三av| 你懂的国产精品永久在线| 国产免费成人av| 欧洲毛片在线| 亚洲大片免费看| 天天干天天色天天干| 偷窥自拍亚洲色图精选| 色综合五月天导航| 一级黄色片在线观看| 久久先锋资源网| 国产日韩第一页| 欧洲美女精品免费观看视频| 精品视频在线播放| 久久精品欧美一区二区| 久久精品99国产精品| 久久av一区二区三区漫画| 色帝国亚洲欧美在线| 欧美精品视频www在线观看 | 国产日韩一区二区在线| 国产精品x8x8一区二区| 九九视频这里只有精品| 国产精品毛片一区视频播| 亚洲国产精品二十页| av观看免费在线| 福利在线一区| 久久久免费观看视频| 亚洲精品无码专区| 亚洲另类色综合网站| 天堂av8在线| 99精品美女| 国产噜噜噜噜噜久久久久久久久 | 亚洲精选av| 久久视频中文字幕| 99久久精品国产一区二区成人| 亚洲欧美综合色| 亚洲在线观看网站| 亚洲91久久| 国产综合福利在线| 黄色精品免费看| 日韩精品一区二区三区视频| 欧美人与禽zozzo禽性配| 国产福利一区在线观看| 91精品国产吴梦梦| 91麻豆精品激情在线观看最新 | 涩涩涩999| 久久青草免费| 欧美精品性视频| 亚洲精品人妻无码| 天天亚洲美女在线视频| 人妻无码一区二区三区| 久久久亚洲人| 亚洲三区在线| 伊人精品久久| 人九九综合九九宗合| 91社区在线观看播放| 69av一区二区三区| 麻豆国产尤物av尤物在线观看| 成人午夜在线免费| 久久网站免费视频| 日韩免费高清| 91国产在线免费观看| 草草视频在线| 在线亚洲欧美视频| 国产成人av免费看| 亚洲高清免费观看| 日韩av一二区| 黑人巨大精品欧美一区| 精品少妇人妻av免费久久洗澡| 自拍偷拍精品| 91久久中文字幕| 欧美激情网站| 日韩一区二区三区xxxx| 黑人精品一区二区| 欧美在线色视频| 免费麻豆国产一区二区三区四区| jvid福利写真一区二区三区| 九色91popny| 亚洲午夜在线| 久久五月天婷婷| 欧美视频第一| 欧美与黑人午夜性猛交久久久| 在线视频二区| 日韩精品中文字幕久久臀| 91亚洲国产成人久久精品麻豆 | 国偷自拍第113页| 国产精品久久二区二区| 精品国产人妻一区二区三区| 久久99久久99精品免视看婷婷| 久久国产精品网| 欧美独立站高清久久| 国产伦精品一区二区三区视频免费 | 国产成人精品三级麻豆| 国产主播中文字幕| 99综合在线| 中文字幕第50页| 欧美伦理影院| 久久视频在线观看中文字幕| 精品久久久久久久久久岛国gif| 欧美伊久线香蕉线新在线| 成人免费网址| 国产亚洲欧美一区| 日韩在线观看视频一区| 91精品国产综合久久精品| 少妇又紧又色又爽又刺激视频| 亚洲国产日韩综合久久精品| 最新日韩免费视频| 91视频一区二区| 娇妻高潮浓精白浆xxⅹ| 国产一区视频在线看| 一区二区xxx| 久久精品国语| 99视频在线免费播放| 欧美激情综合色综合啪啪| 亚洲电影免费| 欧洲杯什么时候开赛| 欧美资源一区| 欧美亚视频在线中文字幕免费| 91久久久在线| 国产一区二区三区免费在线| 国产精品视频精品| 中文字幕乱码中文乱码51精品| 欧美日产国产成人免费图片| 国产原创精品视频| 久久精品国产亚洲| 麻豆电影在线播放| 深夜精品寂寞黄网站在线观看| 九色蝌蚪在线| 亚洲人av在线影院| 国产一级网站视频在线| 亚洲色图欧美制服丝袜另类第一页 | 欧美高清不卡| 日本一本中文字幕| 天天做天天爱综合| 亚洲欧美一区二区原创| 婷婷亚洲五月| 丰满人妻一区二区三区53号| 午夜精品国产| 日韩网站在线免费观看| 亚洲人成免费| 国产一区二区三区精彩视频| 视频在线观看91| 在线视频日韩一区| 极品少妇xxxx精品少妇| 日本黄色一级网站| 国产精品一区在线| 少妇精品一区二区| 国产丝袜美腿一区二区三区| 日本免费www| 综合欧美亚洲日本| 久久免费公开视频| 欧美三级免费观看| 亚洲精品国产欧美在线观看| 欧美日韩精品综合在线| 国产免费的av| 亚洲精品国精品久久99热| 国产综合在线播放| 日韩电影中文字幕| 97电影在线观看| 久久99精品视频一区97| 国产三级电影在线播放| 国产精品69久久| 国产亚洲高清一区| 国产一区自拍视频| 日韩高清欧美| 日韩一区二区高清视频| 怡红院精品视频在线观看极品| 国产偷人视频免费| 国产自产v一区二区三区c| 人妻换人妻a片爽麻豆| 成人av资源站| 99久久99久久精品免费看小说.| 一区二区三区中文在线| www.国产高清| 欧美日韩不卡一区二区| 免费观看国产精品| 日韩av影片在线观看| 国产在线日本| 欧美激情喷水视频| 怡红院成人在线| 91色精品视频在线| 九九久久婷婷| 久久www视频| 强制捆绑调教一区二区| 亚洲av无码一区东京热久久| 国产精品福利一区| 天天干天天干天天干天天| 5858s免费视频成人| 水莓100在线视频| 久久91精品国产91久久久| 日韩av首页| 激情小说网站亚洲综合网| 91视频综合| 免费在线观看日韩视频| 久久国内精品视频| 香蕉久久久久久久| 欧美视频在线观看免费网址| 国产又大又长又粗| 亚洲人成网站999久久久综合| av网址在线| 国产精品永久免费视频| 亚欧洲精品视频在线观看| 色哟哟免费网站| 久久电影一区| 人妻av无码一区二区三区| 亚洲成人av一区| 99国产揄拍国产精品| 这里精品视频免费| 久久野战av| 久久国产精品亚洲va麻豆| 欧美日韩精品一本二本三本| 日本黄色三级大片| 福利一区在线观看| 欧美黄色免费在线观看| 56国语精品自产拍在线观看| av基地在线| 国产精品69av| 免费视频一区三区| av天堂永久资源网| jlzzjlzz国产精品久久| 国语对白在线播放| 欧美一区二区播放| 国产精品剧情| 国产情人节一区| 日韩欧美在线中字| 少妇一级淫免费播放| 欧美激情一区二区| 中文字幕一区二区免费| 伊人一区二区三区久久精品| 欧美电影免费观看网站| 噜噜噜噜噜久久久久久91| 亚洲另类黄色| 久久无码人妻精品一区二区三区 | 国产一区二区三区毛片| 日本一区二区三区视频在线| 就去色蜜桃综合| 免费精品视频在线| 男女全黄做爰文章| 制服.丝袜.亚洲.另类.中文| 老司机午夜在线视频| 亚洲free嫩bbb| 国产精品久久| 亚洲视频 中文字幕| 五月综合激情网| 亚洲黄色在线观看视频| 668精品在线视频| 久久av免费| 蜜臀av免费观看| 亚洲色图都市小说| 超碰在线人人干| 97在线看免费观看视频在线观看| 欧美变态网站| 久久久噜噜噜www成人网| 中文一区在线播放| aa视频在线免费观看| 国产+人+亚洲| 国产欧美日韩影院| 日韩成人av免费| 午夜久久久影院| 草碰在线视频| 91色琪琪电影亚洲精品久久| 99精品国产99久久久久久福利| 国产精品无码久久久久久| 欧美日韩综合在线| 日韩精品亚洲人成在线观看| 久久精品ww人人做人人爽| 免费成人在线观看视频| 久草国产在线观看| 尤物tv国产一区| 国产精品xxxav免费视频| 免费看污黄网站|