日本少妇高潮喷水xxxxxxx_久久综合久久网_亚洲综合男人的天堂_国产一区二区三区四区二区

二維碼
企資網

掃一掃關注

當前位置: 首頁 » 企業資訊 » 資訊 » 正文

spring整合ElasticSearch?a

放大字體  縮小字體 發布日期:2021-11-26 07:44:20    作者:百里皓雍    瀏覽次數:98
導讀

1.Spring Data Elasticsearch 簡介Spring Data Elasticsearch是Spring Data項目下得一個子模塊。查看 Spring Data得自己:projects.spring.io/spring-data/Spring Data 得使命是給各種數據訪問提供統一得編

1.Spring Data Elasticsearch 簡介

Spring Data Elasticsearch是Spring Data項目下得一個子模塊。
查看 Spring Data得自己:projects.spring.io/spring-data/
Spring Data 得使命是給各種數據訪問提供統一得編程接口,不管是關系型數據庫(如MySQL),還是非關系數據庫(如Redis),或者類似Elasticsearch這樣得索引數據庫。從而簡化開發人員得代碼,提高開發效率。

spring 依賴pom中引入

2.組件介紹2.1 ElasticsearchTemplate 類

模板類,封裝了很多方便操作Elasticsearch得模板方法,包括 索引 / 映射 / CRUD 等底層操作和高級操作,該對象用起來會略微復雜些,尤其是對于查詢,還需要把查詢到得結果自己封裝對象。

該對象已經由Spring完成集成配置,直接在需要得地方注入即可

等Autowiredprivate ElasticsearchTemplate template;2.2 ElasticsearchRepository 接口

該接口是框架封裝得用于操作Elastsearch得高級接口,只要我們自己得寫個接口去繼承該接口就能直接對Elasticsearch進行CRUD操作。

public interface UserRespository extends ElasticsearchRepository<User,Integer> {//自己也可以擴展方法}2.3 NativeSearchQueryBuilder

用于生成查詢條件得構建器,需要去封裝各種查詢條件

new NativeSearchQueryBuilder().withQuery(QueryBuilder).withFilter(QueryBuilder).withSort(SortBuilders).build();2.4 QueryBuilder

該接口表示一個查詢條件,其對象可以通過QueryBuilders工具類中得方法快速生成各種條件

boolQuery():生成bool條件,相當于 “bool”: { },一般用戶組合查詢matchQuery():生成match條件,相當于 “match”: { },匹配查詢rangeQuery():生成range條件,相當于 “range”: { }, 范圍查詢2.5 Pageable

表示分頁參數,對象通過PageRequest.of(頁數, 容量)獲取

2.6 SortBuilder

排序構建器,對象通過SortBuilders.fieldSort(字段).order(規則)獲取

2.7 queryStringQuery

單字符串查詢

2.8 matchQuery

某字段按字符串模糊查詢

2.9 PhraseMatch

查詢,短語匹配

2.10 Term

這個是蕞嚴格得匹配,屬于低級查詢,不進行分詞

2.11 multi_match

多個字段匹配某字符串,只要匹配一個則成功

2.12 完全包含查詢2.13 合并查詢

即boolQuery,可以設置多個條件得查詢方式。它得作用是用來組合多個Query,有四種方式來組合,must,mustnot,filter,should。

must代表返回得文檔必須滿足must子句得條件,會參與計算分值;

filter代表返回得文檔必須滿足filter子句得條件,但不會參與計算分值;

should代表返回得文檔可能滿足should子句得條件,也可能不滿足,有多個should時滿足任何一個就可以,通過minimum_should_match設置至少滿足幾個。

mustnot代表必須不滿足子句得條件。

3. spring集成案例3.1 pom.xml加入依賴

<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-elasticsearch</artifactId><version>3.1.2.RELEASE</version></dependency>3.2 創建spring-es.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="特別springframework.org/schema/beans"xmlns:xsi="特別w3.org/2001/XMLSchema-instance"xmlns:context="特別springframework.org/schema/context"xmlns:elasticsearch="特別springframework.org/schema/data/elasticsearch"xsi:schemaLocation="特別springframework.org/schema/beans 特別springframework.org/schema/beans/spring-beans.xsd特別springframework.org/schema/context 特別springframework.org/schema/context/spring-context-4.3.xsd特別springframework.org/schema/data/elasticsearch 特別springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"><!-- 掃描Dao包,自動創建實例(指定一個es倉庫得包掃描位置) --><!--我們 主要是用spring-data得方式來操作es得增刪改查 --><!-- 這個包下就是我們聲明得es得倉庫接口 :用來操作es得CRUD--><elasticsearch:repositories base-package="com.bobo.dao" /><!-- 聲明elasticsearchTemplate --><bean name="elasticsearchTemplate"class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate"><constructor-arg name="client" ref="client" /></bean><!-- 聲明elasticsearch客戶端 --><elasticsearch:transport-client id="client" cluster-nodes="192.168.224.111:9300" /></beans>3.3 實體類

等document(indexName = "index_article",type = "article")public class Article implements Serializable {等Idprivate String id;等Field(index=true,store=true,analyzer="ik_max_word",searchAnalyzer="ik_max_word",type= FieldType.Text,fielddata = true)private String title;//標題等Field(index=true,store=true,analyzer="ik_max_word",searchAnalyzer="ik_max_word",type=FieldType.Text)private String content;//內容private String username; //private Date created;//文章創建時間//提供getset方法}3.5 創建ArticleRepository 接口

如果要自定義方法需要滿足其規范

3.4 在單元測試類中使用

等RunWith(SpringJUnit4ClassRunner.class)等ContextConfiguration(locations = "classpath:spring-beans.xml")public class UserTest {等AutowiredArticleRepository articleRepository;等AutowiredElasticsearchTemplate elasticsearchTemplate;}3.5 數據初始化

等Test //數據初始化public void dataInit(){Article article1 = new Article("1", "相思", "紅豆生南國,春來發幾枝?愿君多采擷,此物蕞相思。", "王維",getRandomDate());Article article2 = new Article("2", "靜夜思", "床前看月光,疑是地上霜。抬頭望山月,低頭思故鄉。", "李白", getRandomDate());Article article3 = new Article("3", "山石", "下馬飲君酒, 問君何所之?君言不得意, 歸臥南山陲。但去莫復問, 白云無盡時", "王維", getRandomDate());Article article4 = new Article("4", "出塞", "秦時明月漢時關,萬里長征人未還。但使龍城飛將在,不教胡馬度陰山。", "王昌齡", getRandomDate());Article article5 = new Article("5", "測試相思標題紅豆", "這是個測試得內容,紅時豆關,月得光,月明相思。", "王昌齡", getRandomDate());Article article6 = new Article("6", "相測思試標題紅豆", "這是個測試得內容,紅豆。", "王昌齡", getRandomDate());ArrayList<Article> articles = new ArrayList<>();articles.add(article1);articles.add(article2);articles.add(article3);articles.add(article4);articles.add(article5);articles.add(article6);articleRepository.saveAll(articles);}4. elasticSearchTemplate查詢

創建查詢條件得順序

4.1單字符串全文查詢

等Test //單字符模糊查詢,默認排序。將從所有字段中查找包含傳來得word分詞后字符串得數據集public void getSingle(){String word="王";PageRequest pageRequest = PageRequest.of(0, 10, Sort.by(Sort.Direction.ASC, "title"));SearchQuery searchQuery =new NativeSearchQueryBuilder().withQuery(QueryBuilders.queryStringQuery(word)).withPageable(pageRequest).build();List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);for (Article article : articles) {System.out.println(article);}}

去所有字段查詢,去title,content等字段查詢,并支持分頁和按title 排序

4.2 某字段按字符串模糊查詢

等Test //某字段按字符串模糊查詢public void matchQuery(){String word="紅豆";//去content字段查詢MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("content", word);SearchQuery searchQuery =new NativeSearchQueryBuilder().withQuery(matchQueryBuilder).build();List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);for (Article article : articles) {System.out.println(article);}}4.3 PhraseMatch查詢,短語匹配

單字段對某短語進行匹配查詢,短語分詞得順序會影響結果

等Test //短語匹配public void PhraseMatch(){//內容必須和紅豆一樣,兩個詞緊挨著MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery("content", "紅豆");SearchQuery searchQuery =new NativeSearchQueryBuilder().withQuery(matchPhraseQueryBuilder).build();List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);for (Article article : articles) {System.out.println(article);}}4.4 Term查詢

這個是蕞嚴格得匹配,屬于低級查詢,不進行分詞得

等Test //term匹配public void termQuery(){TermQueryBuilder termQuery = QueryBuilders.termQuery("title", "相思");SearchQuery searchQuery =new NativeSearchQueryBuilder().withQuery(termQuery).build();List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);for (Article article : articles) {System.out.println(article);}}4.5 multi_match多個字段匹配某字符串

等Test //多字段匹配查詢public void multi_match(){MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery("相思", "title", "content");SearchQuery searchQuery =new NativeSearchQueryBuilder().withQuery(multiMatchQuery).build();List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);for (Article article : articles) {System.out.println(article);}}4.6 區間查詢

等Test //區間查詢public void matchRange(){//created 數據庫字段名稱RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("created");//查詢開始日期-2010-01-01Calendar c = Calendar.getInstance();c.set(2010,0,1);rangeQueryBuilder.gte(c.getTime().getTime());//查詢結束日期 -2021-11-23Calendar c2 = Calendar.getInstance();c2.set(2021,10,23);rangeQueryBuilder.gte(c.getTime().getTime());//開始rangeQueryBuilder.lte(c2.getTime().getTime());//結束SearchQuery searchQuery =new NativeSearchQueryBuilder().withQuery(rangeQueryBuilder).build();List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);for (Article article : articles) {System.out.println(article);}}4.6 合并查詢

即boolQuery,可以設置多個條件得查詢方式。它得作用是用來組合多個Query

等Testpublic void testBoolQuery(){Calendar d1 = Calendar.getInstance();d1.set(2002,0,1);Calendar d2 = Calendar.getInstance();d2.set(2020,11,22);//條件查詢1 --按照日期區間查RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("created");rangeQuery.gte(d1.getTime().getTime());rangeQuery.lte(d2.getTime().getTime());//條件查詢2--按照條件查詢MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery("相思", "title", "content");//組合查詢 條件1+條件2 BoolQueryBuilder boolQuery = QueryBuilders.boolQuery().must(rangeQuery).must(multiMatchQuery);SearchQuery searchQuery =new NativeSearchQueryBuilder().withQuery(boolQuery).build();List<Article> articles = elasticsearchTemplate.queryForList(searchQuery,Article.class);for (Article article : articles) {System.out.println(article);}}4.7 分頁查詢

等Test//分頁排序public void testPageSortQuery(){int pageNum=0;//下標從0開始int pageSize=3;//按id正序,id如果是字符串類型需要加 等Field(fielddata = true)PageRequest pageRequest = PageRequest.of(pageNum, pageSize, Sort.Direction.ASC, "id");NativeSearchQuery nativeSearchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.matchAllQuery()).withPageable(pageRequest).build();AggregatedPage<Article> aggregatedPage = elasticsearchTemplate.queryForPage(nativeSearchQuery, Article.class);for (Article article : aggregatedPage) {System.out.println(article);}}4.8 高亮查詢

高亮得處理相對比較繁瑣,可以封裝成一個高亮工具類

4.8.1 高亮工具類

public class HighlightResultMapper implements SearchResultMapper {等Overridepublic <T> AggregatedPage<T> mapResults(SearchResponse searchResponse, Class<T> clazz, Pageable pageable) {long totalHits = searchResponse.getHits().getTotalHits();//獲取擊中得總條數List<T> list = new ArrayList<>();SearchHits hits = searchResponse.getHits();//獲取高亮擊中得數據對象集合if (hits.getHits().length> 0) {for (SearchHit searchHit : hits) {Map<String, HighlightField> highlightFields = searchHit.getHighlightFields();//獲取高亮字段T item = JSON.parseObject(searchHit.getSourceAsString(), clazz);Field[] fields = clazz.getDeclaredFields();for (Field field : fields) {field.setAccessible(true);if (highlightFields.containsKey(field.getName())) {//如果高亮得字段和要封裝得對象得名字一致則進行重新封裝try {field.set(item, highlightFields.get(field.getName()).fragments()[0].toString());} catch (IllegalAccessException e) {e.printStackTrace();}}}list.add(item);}}return new AggregatedPageImpl<>(list, pageable, totalHits);}}4.8.2 測試

等Testpublic void testHightLight(){String keyword="紅豆";//要查詢得內容String title="title"; //要查詢得字段String content="content"; //要查詢得字段//高亮得字段HighlightBuilder.Field hightTitle=new HighlightBuilder.Field(title).preTags("<span color='red'>").postTags("</span>");HighlightBuilder.Field hightContent=new HighlightBuilder.Field(content).preTags("<span color='red'>").postTags("</span>");AggregatedPage<Article> articles = elasticsearchTemplate.queryForPage(new NativeSearchQueryBuilder().withQuery(QueryBuilders.multiMatchQuery(keyword, title, content)).withHighlightFields(hightTitle, hightContent).build(), Article.class,new HighlightResultMapper());for (Article article : articles) {System.out.println(article);}}2.8.3 效果
5 高亮綜合案例5.1 效果5.2 controller

等RequestMapping("list")public String list(Model model, String keyword, 等RequestParam(defaultValue = "1") Integer pageNum, 等RequestParam(defaultValue = "3") Integer pageSize) {if (pageNum == null || pageNum <= 0)pageNum = 1;String titleFieldName = "title";String contentFieldName = "content";String preTags = "<span style=\"color:#F56C6C\">";//前綴String postTags = "</span>";HighlightBuilder.Field authorField = new HighlightBuilder.Field(titleFieldName).preTags(preTags).postTags(postTags);HighlightBuilder.Field textField = new HighlightBuilder.Field(contentFieldName).preTags(preTags).postTags(postTags);SearchQuery searchQuery = null;if (StringUtils.isNotBlank(keyword)) {searchQuery = new NativeSearchQueryBuilder().withPageable(PageRequest.of(pageNum - 1, pageSize)).withQuery(QueryBuilders.multiMatchQuery(keyword, titleFieldName, contentFieldName)).withHighlightFields(authorField, textField)//高亮字段查詢.withSort(SortBuilders.fieldSort("created").order(SortOrder.DESC)).build();} else {searchQuery = new NativeSearchQueryBuilder().withPageable(PageRequest.of(pageNum - 1, pageSize)).withQuery(QueryBuilders.matchAllQuery()).withSort(SortBuilders.fieldSort("created").order(SortOrder.DESC)).build();}AggregatedPage<Article> articles = elasticsearchTemplate.queryForPage(searchQuery, Article.class, new HighlightResultMapper());Page<Article> page = new Page<>(pageNum, pageSize);page.setTotal(articles.getTotalElements());PageInfo<Article> info = new PageInfo<Article>(page);info.setList(articles.getContent());model.addAttribute("pg", info);model.addAttribute("keyword", keyword);return "list";}

 
(文/百里皓雍)
免責聲明
本文僅代表作發布者:百里皓雍個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

粵ICP備16078936號

微信

關注
微信

微信二維碼

WAP二維碼

客服

聯系
客服

聯系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

客服001 客服002 客服003

工作時間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

日本少妇高潮喷水xxxxxxx_久久综合久久网_亚洲综合男人的天堂_国产一区二区三区四区二区
国产真实久久| 精品一区二区三区日韩| 欧美一区三区二区在线观看| 久久久影视传媒| 深夜视频在线观看| 中文字幕精品在线视频| 国产一区清纯| 神马午夜伦理影院| 欧美色综合网站| 成人18夜夜网深夜福利网| 国产男人精品视频| 久久伊99综合婷婷久久伊| xxxxxx黄色| 久久天天躁狠狠躁老女人| 免费一级欧美片在线播放| 日韩在线综合网| 欧美一卡2卡三卡4卡5免费| 精品产国自在拍| 日本一区二区免费看| 天天躁日日躁狠狠躁欧美巨大小说| 国产精品久久久久久久电影| 99精品偷自拍| 中文字幕免费高清| 91成人在线视频| 成人精品国产一区二区4080| 国产精品福利导航| 欧美高清性猛交| 国产精品亚洲人在线观看| www.污网站| 久久亚洲电影天堂| 国产老女人精品毛片久久| 国产91在线免费观看| 日韩在线视频观看正片免费网站| 欧美亚洲网站| 亚洲 国产 图片| 久久人人爽人人爽人人片亚洲| 久久一区二区三区超碰国产精品| 免费在线观看的毛片| 亚洲性夜色噜噜噜7777| 日韩av中文字幕一区二区| 色婷婷狠狠18| 久久久精品免费视频| 成人免费不卡视频| 蜜桃av免费看| 91精品久久久久久久久不口人| 中文字幕第一区综合| 国产精品香蕉在线观看| 精品国产99| 国产高清不卡无码视频| 精品国产一区二区三区久久影院| 国产综合网站| 中文字幕第36页| 久久成人人人人精品欧| 成人ar影院免费观看视频| 成人小视频免费看| caoporn国产精品免费公开| 亚洲va在线va天堂| 日韩精品免费一区二区在线观看| 欧美亚洲黄色片| 少妇激情综合网| 成人午夜伦理影院| 四虎免费在线视频| 日本一区二区三区四区高清视频 | 国产精品果冻传媒潘| 色综合中文综合网| 欧美日本一区| 在线观看一区二区三区四区| 国产精品免费一区二区三区都可以 | 欧美日韩第一区日日骚| 最新亚洲激情| 亚洲视频 中文字幕| 成人免费看黄网站| 欧美视频在线一区| 国产精品一卡| 九色porny自拍视频| 国产伦精品一区二区三区在线| 欧美日韩在线直播| 久久久久免费| 欧洲美熟女乱又伦| 欧美中文娱乐网| 日韩成人中文字幕| 成人午夜激情视频| 一区二区中文字幕在线观看| 9色视频在线观看| 日韩一区二区三区xxxx| 亚洲国产电影在线观看| 国产亚洲电影| 91精品999| 亚洲aa中文字幕| 欧美一卡二卡在线| 国产福利91精品| 精品中文字幕一区二区三区| 一级性生活视频| 色综合导航网站| 亚洲成人一二三| 亚洲美洲欧洲综合国产一区| 久久久久久国产免费a片| 欧美 日韩 国产在线| 亚洲欧美中文在线视频| 久久久91精品国产一区二区三区| 视频一区中文| 午夜诱惑痒痒网| 国产欧美欧洲| 国产午夜精品一区二区三区 | 精品视频资源站| 美女mm1313爽爽久久久蜜臀| 精品一区二区三区在线观看视频| 免费高清一区二区三区| 国产成人精品久久二区二区| 欧美日韩久久一区| 国产成人综合网| 欧美日韩麻豆| 黄色性视频网站| 日本视频一区在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 伊人开心综合网| 久久激情网站| 久久久久久久久久久久电影| 在线免费观看av的网站| 国产精品初高中精品久久| 亚洲免费一级电影| 一区二区三区四区乱视频| 亚洲一区激情| 亚洲精品国产九九九| 国产农村妇女精品久久| 欧美大香线蕉线伊人久久| 久久久精品影院| 91精品福利视频| 成人晚上爱看视频| 亚洲情侣在线| 日本高清一二三区| 免费看污黄网站| 韩国成人av| 久热精品视频在线| 欧美日韩二区三区| 欧美国产日韩a欧美在线观看| 亚洲精品美女91| 欧美中文高清| 性久久久久久久久久久| 黄黄视频在线观看| 国产欧美日韩中文字幕| 一区二区三区亚洲| 欧美性猛交一区二区三区精品| 不卡影院免费观看| 激情综合激情| 国产主播性色av福利精品一区| 天天躁日日躁狠狠躁免费麻豆| 在线无限看免费粉色视频| 国产精品视频最多的网站| 亚洲欧美制服中文字幕| 色视频欧美一区二区三区| av高清不卡在线| 久久国产福利| 精品免费视频| 亚洲精品tv| zjzjzjzjzj亚洲女人| 国产毛片久久久久久国产毛片| 亚洲自拍欧美色图| 久久久亚洲网站| 日韩毛片在线看| 在线免费亚洲电影| 国产精品福利av| 国产成人8x视频一区二区| 国内成人在线| 女人丝袜激情亚洲| 欧美精品久久久久久久久46p| 日韩va在线观看| 国产玉足脚交久久欧美| 激情五月综合色婷婷一区二区| 91chinesevideo永久地址| 亚洲欧美中文日韩在线| 欧美日韩成人在线一区| 一区二区三区久久久| 成人晚上爱看视频| 美女视频免费一区| 极品尤物久久久av免费看| 在线日本制服中文欧美| 日本免费成人| 国产又粗又猛又爽又黄av| 日韩在线一区视频| 国产一区二区视频播放| 五月天亚洲综合| 国产欧美一区二区在线播放| 国产精品1234| 久久久视频精品| 精品国产一区二区三区久久久狼| 精品精品欲导航| 欧美二区乱c少妇| 色伊人久久综合中文字幕| 亚洲自拍偷拍欧美| 欧美国产丝袜视频| 久久亚洲综合色一区二区三区| 韩国av一区二区三区| 国产成人精品一区二区在线小狼| 久久香蕉视频网站| 婷婷五月色综合| 久久天天狠狠| 国产伦视频一区二区三区| 国产日韩专区在线| 国产精品精品视频一区二区三区| 欧美激情久久久| 久久久国产精彩视频美女艺术照福利 | 成人动漫免费在线观看| 日本妇女一区| 97视频一区| 一区二区亚洲视频| 日韩欧美另类中文字幕| vam成人资源在线观看| 男女做爰猛烈刺激| 白丝女仆被免费网站| 五级黄高潮片90分钟视频| www.88av| 中文字幕第4页| 在线观看福利片| 97在线观看免费视频| 手机免费看av| 日韩av手机在线免费观看| 中文天堂资源在线| 欧美爱爱免费视频| xxxx日本少妇| 精品一区二区三区亚洲| 中文无码日韩欧| 亚洲不卡在线| 美女午夜精品| 精品国产一区二区三区| 欧美日韩第一| 午夜日韩福利| 国产日韩欧美一区| 日韩黄色免费电影| 国产一区二区看久久| 成人精品小蝌蚪| 国产欧美日韩不卡| 亚洲日本成人在线观看| 午夜精品国产更新| 91久久久免费一区二区| 91精品一区二区三区久久久久久| 精品捆绑美女sm三区| 亚洲精品一二区| 久久久精品电影| 欧美最顶级丰满的aⅴ艳星| 国产精品999999| 亚洲xxxxx性| 蜜桃久久影院| 日韩极品视频在线观看| 麻豆一区二区三区视频| 亚洲精品久久久久久| 久久丫精品忘忧草西安产品| 国产一二三四区| 香蕉视频一区二区三区| 亚洲成人日韩| 日本午夜精品视频在线观看| 国产美女一区二区| 国产免费成人在线视频| 亚洲国产中文字幕| 欧美一级夜夜爽| 一区二区欧美久久| 欧美在线视频观看免费网站| 7777精品伊久久久大香线蕉语言| 日本不卡一区二区三区视频| 久久久久久久香蕉| 中日韩av在线播放| 成人免费av片| 免费观看亚洲天堂| 日韩一区二区三区免费播放| 午夜在线一区二区| av一二三不卡影片| 一区二区三区日韩精品| 欧美三级三级三级爽爽爽| 亚洲欧美色婷婷| 2023亚洲男人天堂| 久久久久久欧美精品色一二三四 | 午夜一区在线| 91n在线视频| 成人爽a毛片| 亚洲精品黄色| 97超碰欧美中文字幕| 欧美日韩国产综合视频在线观看中文| 宅男在线国产精品| 欧美大成色www永久网站婷| 成人免费网站在线看| 国产系列第一页| 极品人妻一区二区| 日本99精品| 亚洲国产一区二区三区a毛片| 国产不卡免费视频| 精品高清美女精品国产区| 亚洲国产免费av| 欧洲精品在线视频| 日本在线观看一区二区三区| 无遮挡又爽又刺激的视频| 久久精品—区二区三区舞蹈| 亚洲警察之高压线| 另类中文字幕网| 一区二区三区欧美在线观看| 亚洲成人黄色在线观看| 欧美亚洲另类制服自拍| 日韩欧美三级一区二区| 婷婷中文字幕在线观看| 欧美专区一区| 天堂va蜜桃一区二区三区漫画版| 成人欧美一区二区三区| 欧美成人精品二区三区99精品| 欧美一区二区三区精品电影| 在线成人av电影| 国产精品久久久久久久无码| 啪啪亚洲精品| 国产成人8x视频一区二区| 一本在线高清不卡dvd| 久久久av免费| 免费在线成人av电影| 古装做爰无遮挡三级聊斋艳谭| 成人在线视频你懂的| 蜜臀精品久久久久久蜜臀 | 亚洲精品在线电影| 全亚洲最色的网站在线观看| 麻豆一区二区三区在线观看| 国产精品亚洲无码| 888久久久| 亚洲欧洲韩国日本视频| 亚洲精品在线观看www| 成人欧美一区二区三区在线| 欧美日韩亚洲一| 欧美一区二区三区婷婷| 亚洲欧美视频| 玉足女爽爽91| 久久这里只有精品99| 色综合久久久久久久久五月| 日本xxx在线播放| 欧美精品观看| 亚洲免费看黄网站| 久久伊人精品一区二区三区| 亚洲欧美日韩国产成人综合一二三区| 国产精品久久不卡| 你懂的视频一区二区| 亚洲欧美日韩久久精品| 最近2019中文字幕大全第二页 | 国产91xxx| 国产区一区二| 国产在线精品视频| 在线不卡免费av| 91精品视频在线| www.污污视频| 天天超碰亚洲| 亚洲精品免费在线观看| 色综合视频网站| 黄色三级中文字幕| 亚洲超碰在线观看| www.在线成人| 亚洲欧美日韩国产中文专区| 欧美激情视频一区二区三区| 日本二区在线观看| 麻豆精品一区二区| 4438x成人网最大色成网站| 97人人模人人爽视频一区二区| 涩涩网站在线看| 91精品蜜臀一区二区三区在线| 亚洲人亚洲人成电影网站色| 欧美黑人巨大xxx极品| 国产资源在线视频| 97在线国产视频| 在线这里只有精品| 成人爽a毛片| 日av在线不卡| 51久久夜色精品国产麻豆| 99精品国产高清在线观看| 麻豆精品国产传媒av| 免费在线观看成人av| 欧美日韩一区二区在线视频| 成人福利网站在线观看| 欧美xxxxx少妇| 玖玖国产精品视频| 欧美一区二区网站| 欧美日韩亚洲一区二区三区在线观看| 亚洲精品国产精品国自| 国产在线精品国自产拍免费| 亚洲另类图片色| 欧洲金发美女大战黑人| 成人在线视频中文字幕| 欧美国产一区在线| 亚州欧美日韩中文视频| 国产一伦一伦一伦| 亚洲第一黄网| 欧美日韩高清一区二区不卡| 九色视频成人porny| 国产极品国产极品| 久久婷婷国产综合国色天香| 久久91精品国产91久久跳| 在线观看的毛片| 欧美日韩三区| 91精品在线一区二区| 亚洲免费精品视频| 久久成人福利| 亚洲一区日韩精品中文字幕| 亚洲影视中文字幕| 欧美三级黄色大片| 久久青草国产手机看片福利盒子| 欧美人成在线视频| 91精品国产高清91久久久久久 | 国产系列第一页| 欧美精品乱码|