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

后端開發必備:ElasticSearch入門與進階

大數據 數據分析
Kibana 是一款 ES 的數據可視化和管理工具,可以提供直方圖,線形圖,餅狀圖,地圖。Kibana 還包含 Canvas 和 Elastic Maps 等應用程序。Canvas 可以基于用戶創建動態信息。Elastic Maps 可以對空間數據進行可視化處理。

ES 是一個分布式的開源搜索和分析引擎,適用于文本、數字、地理空間、結構化數據、非結構化數據等數據的搜索。ES 是在 Apache Lucene 的基礎上完成開發。由 Elastic 于 2010 年發布。ES 通過其簡單的 REST 風格的 API、分布式特性、速度和可擴容聞名世界。是 Elastic Stack 的核心組件。Elastic Stack 是一套用于數據采集、擴充、保存、分析、可視化的開源工具。Elastic Stack 稱之為 ELK。目前 ELK 包含一系列豐富的輕量數據采集代理,這些代理被稱之為 Beats。

ES 的用途

主要有以下的用途:

? 應用程序搜索

? 網站搜索

? 企業搜索

? 日志處理

? 基礎設施指標和容器監測

? 應用程序性能監測

? 地理空間數據分析和可視化

? 安全分析

? 業務分析

工作原理

從多個來源輸入到 ES 中,數據在 ES 中進行索引和解析,標準化并充實這些數據。這些數據在 ES 中索引完成之后,用戶就可以針對他們的數據進行復雜的查詢,并使用聚合來檢索這些數據,在 Kibana 中,用戶可以創建數據可視化面板,并對 ELK 進行管理。

索引

ES 索引是指相互關聯的文檔集合。ES 是會以 JSON 文檔的形式保存數據,每個文檔都會在一組鍵值對中建立聯系。

ES 使用的是一種倒排序索引的數據結構。這個結構可以允許十分快速的進行全文本的搜索。

在索引的過程中,ES 會保存文檔并構建倒排序索引,這樣用戶就可以實時的對文檔數據進行搜索。索引是在添加過程中就啟動的。

Logstash

Logstash 是 ELK 的核心菜品,可以對數據進行聚合和處理。并將數據發送到 ES 中。Logstash 是一個開源的服務器端數據處理管道。

Kibana

Kibana 是一款 ES 的數據可視化和管理工具,可以提供直方圖,線形圖,餅狀圖,地圖。Kibana 還包含 Canvas 和 Elastic Maps 等應用程序。Canvas 可以基于用戶創建動態信息。Elastic Maps 可以對空間數據進行可視化處理。

為什么要使用 ES

ES 很快:ES 是在 Lucene 基礎上構建,所以全文本搜索相當的出色。ES 還是一個實時搜索平臺。文檔索引操作到文檔變為可搜索之間速度很快。

ES 具有分布式的特征:ES 中保存的文檔分布在不同的容器中,這些容器為分片,可以對分片進行復制并形成冗余副本。ES 可以擴充到數百臺,并處理 PB 級別的數據。

ES 包含一系列廣泛的功能:ES 擁有大量的內置功能,方便用戶管理數據。

ES 簡化了數據采集,可視化報告的過程:通過與 Beats 和 Logstash 集成,用戶可以在 ES 中索引數據并處理數據,

ES 搭建

安裝鏡像:

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.3.2

啟動容器:

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.3.2

修改配置:

#進入 docker 容器內部

docker exec -it es /bin/bash

#打開配置文件

vim config/elasticsearch.yml

## 加入跨域配置

http.cors.enabled: true

http.cors.allow-origin: "*"

進入容器,安裝分詞器:

docker exec -it es /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.2/elasticsearch-analysis-ik-7.3.2.zip

重啟 ES:

docker restart es

測試:

圖片圖片

查看分詞器是否安裝上:

圖片圖片

ES 查詢

空查詢

空查詢將會返回一個索引庫中所有文檔:

curl -X GET "localhost:9200/_search?pretty" -H 'Content-Type: application/json' -d'
{}
'

在一個或者多個索引庫或者所有的 _type 中查詢:

GET /index_2014*/type1,type2/_search
{}

使用分頁:

GET /_search
{
  "from": 30,
  "size": 10
}

查詢表達式

只需要在查詢上,將語句傳遞給 queue 參數:

GET /_search
{
    "query": YOUR_QUERY_HERE
}

查詢語句的結構

一個查詢的典型結構:

{
    QUERY_NAME: {
        ARGUMENT: VALUE,
        ARGUMENT: VALUE,...
    }
}

針對某個字段:

{
    QUERY_NAME: {
        FIELD_NAME: {
            ARGUMENT: VALUE,
            ARGUMENT: VALUE,...
        }
    }
}

如果想要使用 match 查詢 tewwt 字段中包含 elasticsesh 的內容。

curl -X GET "localhost:9200/_search?pretty" -H 'Content-Type: application/json' -d'
{
    "query": {
        "match": {
            "tweet": "elasticsearch"
        }
    }
}
'

合并查詢

分為葉子語句,被用于將查詢字符串和字段進行對比,復合語句用于合并其他查詢語句。

例如下面語句:找出信件正文包含 business opportunity 的星標郵件,或者在郵件正文包含 business opportunity 的非垃圾郵件:

{
    "bool": {
        "must": { "match":   { "email": "business opportunity" }},
        "should": [
            { "match":       { "starred": true }},
            { "bool": {
                "must":      { "match": { "folder": "inbox" }},
                "must_not":  { "match": { "spam": true }}
            }}
        ],
        "minimum_should_match": 1
    }
}

常用查詢

match_all 查詢

該查詢匹配所有文檔:

{ "match_all": {}}

match 查詢

用于使用分詞器進行查詢:

{ "match": { "tweet": "About Search" }}

multi_match 查詢

用于在多個字段上執行相同更多 match 查詢:

{
    "multi_match": {
        "query":    "full text search",
        "fields":   [ "title", "body" ]
    }
}

range 查詢

用于找出在指定區間內的數字或者時間:

{
    "range": {
        "age": {
            "gte":  20,
            "lt":   30
        }
    }
}

term 查詢

用于進行精確匹配:

{ "term": { "age":    26           }}
{ "term": { "date":   "2014-09-01" }}
{ "term": { "public": true         }}
{ "term": { "tag":    "full_text"  }}

terms 查詢

用于進行多值匹配:

{ "terms": { "tag": [ "search", "full_text", "nosql" ] }}

exists 查詢和 missing 查詢

用于查詢在指定字段中有值或者無值的文檔:

{
    "exists":   {
        "field":    "title"
    }
}

ES 索引

創建一個索引

PUT /my_index
{
    "settings": { ... any settings ... },
    "mappings": {
        "type_one": { ... any mappings ... },
        "type_two": { ... any mappings ... },
        ...
    }
}

此刻,ES 會自動創建一個索引。

刪除一個索引

DELETE /my_index

索引設置

? number_of_shards:每個索引的主分片數

? number_of_replicas:每個主分片的副本數

創建只有 一個主分片,沒有副本的小索引:

PUT /my_temp_index
{
    "settings": {
        "number_of_shards" :   1,
        "number_of_replicas" : 0
    }
}

配置分析器

standard 分析器是用于全文字段的默認分析器,包含以下部分:

? standard 分詞器,通過單詞邊界分割輸入的文本。

? standard 語匯單元過濾器,目的是整理分詞器觸發的語匯單元(但是目前什么都沒做)。

? lowercase 語匯單元過濾器,轉換所有的語匯單元為小寫。

? stop 語匯單元過濾器,刪除停用詞—對搜索相關性影響不大的常用詞,如 a、the、and、is。

在下面的例子中,創建了一個新的分析器 es_std,并使用預定義的西班牙語停用詞列表。

PUT /spanish_docs
{
    "settings": {
        "analysis": {
            "analyzer": {
                "es_std": {
                    "type":      "standard",
                    "stopwords": "_spanish_"
                }
            }
        }
    }
}

進行測試:

curl -X GET "localhost:9200/spanish_docs/_analyze?analyzer=es_std&pretty" -H 'Content-Type: application/json' -d'
El veloz zorro marrón
'

通過結果進行查看:

{
  "tokens" : [
    { "token" :    "veloz",   "position" : 2 },
    { "token" :    "zorro",   "position" : 3 },
    { "token" :    "marrón",  "position" : 4 }
  ]
}

自定義分析器

在 analysis 下的相應位置設置字符過濾器,分詞過濾器,詞單元過濾器。

PUT /my_index
{
    "settings": {
        "analysis": {
            "char_filter": { ... custom character filters ... },
            "tokenizer":   { ...    custom tokenizers     ... },
            "filter":      { ...   custom token filters   ... },
            "analyzer":    { ...    custom analyzers      ... }
        }
    }
}

接著創建一個自定義分析器,用于清楚 html 部分,將 & 映射為 and:

"char_filter": {
    "&_to_and": {
        "type":       "mapping",
        "mappings": [ "&=> and "]
    }
}

使用標準分詞器諷刺,小寫詞條使用小寫過濾,使用自定義停止詞過濾器移除自定義的停止詞列表中包含的詞。

"filter": {
    "my_stopwords": {
        "type":        "stop",
        "stopwords": [ "the", "a" ]
    }
}

最后使用分析器,自定義組合過濾器和分詞器。

"analyzer": {
    "my_analyzer": {
        "type":           "custom",
        "char_filter":  [ "html_strip", "&_to_and" ],
        "tokenizer":      "standard",
        "filter":       [ "lowercase", "my_stopwords" ]
    }
}

總和如下所示:

curl -X PUT "localhost:9200/my_index?pretty" -H 'Content-Type: application/json' -d'
{
    "settings": {
        "analysis": {
            "char_filter": {
                "&_to_and": {
                    "type":       "mapping",
                    "mappings": [ "&=> and "]
            }},
            "filter": {
                "my_stopwords": {
                    "type":       "stop",
                    "stopwords": [ "the", "a" ]
            }},
            "analyzer": {
                "my_analyzer": {
                    "type":         "custom",
                    "char_filter":  [ "html_strip", "&_to_and" ],
                    "tokenizer":    "standard",
                    "filter":       [ "lowercase", "my_stopwords" ]
            }}
}}}
'

測試一下:

curl -X GET "localhost:9200/my_index/_analyze?analyzer=my_analyzer&pretty" -H 'Content-Type: application/json' -d'
The quick & brown fox
'

可以看到結果如下所示:

{
  "tokens" : [
      { "token" :   "quick",    "position" : 2 },
      { "token" :   "and",      "position" : 3 },
      { "token" :   "brown",    "position" : 4 },
      { "token" :   "fox",      "position" : 5 }
    ]
}

最后,把這個分詞器用在 string 字段上:

curl -X PUT "localhost:9200/my_index/_mapping/my_type?pretty" -H 'Content-Type: application/json' -d'
{
    "properties": {
        "title": {
            "type":      "string",
            "analyzer":  "my_analyzer"
        }
    }
}
'

類型和映射

Lucene 如何處理文檔

在 Lucene 中一個文檔由鍵值對組成。在索引文檔的時候,每個字段的值都會添加到相關字段的倒排序中。

類型如何實現

每個文檔的類型名稱將會保存在 _type 字段上,當要檢索字段的時候,ES 會自動在 _type 字段上檢索。

例如在 User 類型中,name 字段會映射聲明為 string 類型,并索引到 name 的倒排序中,需要使用 whitespace 分詞器分析。

"name": {
    "type":     "string",
    "analyzer": "whitespace"
}

Lucene 索引的每個字段都包含一個單一的扁平的模式

在 Lucene 中,一個特定的字段可以映射到 string 類型或者是 number 類型,但是不能兩者兼具。因為 ES 添加的優于 lucene 的額外機制(以元數據 _type 字段的形式。)在 ES 中所有類型都最終共享相同的映射。

{
   "data": {
      "mappings": {
         "people": {
            "properties": {
               "name": {
                  "type": "string",
               },
               "address": {
                  "type": "string"
               }
            }
         },
         "transactions": {
            "properties": {
               "timestamp": {
                  "type": "date",
                  "format": "strict_date_optional_time"
               },
               "message": {
                  "type": "string"
               }
            }
         }
      }
   }
}

在上方中,"name"/"address" 和 "timestamp"/"message" 雖然是獨立的,但是在 Lucene 中是一個映射。

{
   "data": {
      "mappings": {
        "_type": {
          "type": "string",
          "index": "not_analyzed"
        },
        "name": {
          "type": "string"
        }
        "address": {
          "type": "string"
        }
        "timestamp": {
          "type": "long"
        }
        "message": {
          "type": "string"
        }
      }
   }
}

對于整個索引,映射在本質上被 扁平化 成一個單一的、全局的模式。

Java 連接 ES

添加依賴:

<!-- TransportClient 依賴包-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>6.2.2</version>
        </dependency>

        <!-- 測試包,與 JAVA 連接 ES 無關 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

創建 ES 集群:

圖片圖片

連接 ES:

package cn.zsm.es;

import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.junit.Before;
import org.junit.Test;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class JavaEsTest {

    private String IP;
    private int PORT;

    @Before
    public void init(){
        this.IP = "192.168.?.?";
        this.PORT = 9300;
    }

    @Test
    public void esClient(){
        try {
            Settings settings = Settings.builder().put("cluster.name", "my-application").build();
            TransportClient client = new PreBuiltTransportClient(settings)
                    .addTransportAddresses(new TransportAddress(InetAddress.getByName(IP), PORT));
            System.out.println(client.toString());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

}

測試結果:

圖片圖片


責任編輯:武曉燕 來源: 程序猿技術充電站
相關推薦

2023-12-30 18:31:24

NGINXVPS服務器

2025-07-31 06:00:00

Go后端開發

2025-03-31 00:00:02

2020-06-19 16:25:19

MySQL日志文件數據庫

2013-09-29 13:26:12

iOS開發者服務工具

2014-04-14 05:31:08

WindowsPhonWP8MVC

2023-06-27 08:34:32

2010-06-07 18:51:15

UML入門

2017-03-16 08:46:43

TensorFlow安裝入門

2019-07-09 05:44:35

前后端分離架構接口規范

2021-05-06 15:08:40

開發前端后端

2013-07-26 10:54:40

BaaS后端即服務云存儲

2009-07-16 16:27:33

ibatis DAO

2018-11-06 21:50:09

前端Html腳本語言

2023-10-07 14:25:14

2010-07-27 15:53:15

2011-06-03 16:05:20

IOS 環境搭建

2011-06-03 15:08:09

IOS 環境搭建

2011-06-03 15:36:22

IOS 環境搭建

2011-06-03 14:36:32

IOS 環境搭建
點贊
收藏

51CTO技術棧公眾號

www.精品国产| yjizz视频网站在线播放| 亚洲影视一区| 亚洲国产毛片完整版| 男人的天堂99| 日本视频在线播放| 成人网男人的天堂| 秋霞午夜一区二区| 色婷婷粉嫩av| 日韩精品免费一区二区三区竹菊 | 免费在线中文字幕| 91麻豆蜜桃一区二区三区| 国产欧美一区二区三区视频 | 一区二区三区四区电影| 亚洲精品成人网| 亚洲欧美aaa| 国产污视频在线播放| 中文字幕不卡在线观看| 国产精品久久久久免费| 在线观看国产一区二区三区| 欧美日韩国产在线一区| 国产一区二区三区欧美| 最新版天堂资源在线| 欧美男男gaygay1069| 亚洲不卡在线观看| aaa免费在线观看| 蜜桃视频在线入口www| 国产激情偷乱视频一区二区三区| 国产成人+综合亚洲+天堂| 久久综合色综合| 天天影视综合| 国产午夜精品一区理论片飘花| 国产人成视频在线观看| 国产精品免费精品自在线观看| 色婷婷综合久色| 男的插女的下面视频| 黄色视屏免费在线观看| 国产午夜精品一区二区| 麻豆av一区二区三区| 丁香花免费高清完整在线播放| 青青草原综合久久大伊人精品优势 | 欧美电影免费| 一区二区成人av| 无码熟妇人妻av| 久久a爱视频| 欧美成人免费网站| 视频区 图片区 小说区| 伊人久久大香伊蕉在人线观看热v| 欧美性猛交xxxx免费看漫画| 成人免费观看cn| 污片在线免费观看| 亚洲精品日日夜夜| 欧洲xxxxx| 麻豆传媒在线免费| 国产精品不卡在线| 一本色道婷婷久久欧美| 免费在线看a| 国产精品素人一区二区| 少妇特黄a一区二区三区| 国产视频网站在线| 国产欧美精品一区| 亚洲三区在线| 国产视频在线播放| 自拍偷拍国产亚洲| 欧美日韩午夜爽爽| 国产乱妇乱子在线播视频播放网站| 一区二区三区毛片| 日韩黄色片在线| 日韩另类在线| 精品国产老师黑色丝袜高跟鞋| 国产精品999视频| jizzjizz中国精品麻豆| 精品久久久久久久久久国产| 欧美一区二区三区爽大粗免费 | 日本亚洲欧洲色α| 糖心vlog精品一区二区| 卡一卡二国产精品 | 99色精品视频| 成人免费一区| 欧美福利视频导航| 中文字幕99页| 曰本一区二区三区视频| 中文字幕精品av| 538精品在线观看| 亚洲美女一区| 国产精品白丝jk喷水视频一区| 伊人网中文字幕| 国产麻豆精品95视频| 国产一区二区三区四区五区加勒比| 五十路在线观看| 国产日产精品一区| 在线视频不卡一区二区| 丁香花在线影院| 一本久久a久久精品亚洲| 三级av免费观看| 国产精品x8x8一区二区| 亚洲天堂av综合网| 乱h高h女3p含苞待放| 夜夜爽av福利精品导航| 国产精品自拍小视频| www.国产欧美| 中文字幕第一区综合| a级片一区二区| 奇米777日韩| 欧美成人三级在线| 中国女人特级毛片| 伊人精品成人久久综合软件| 国产精品精品视频| 欧美一区,二区| 中文字幕一区二区不卡| 欧美激情 国产精品| 4438五月综合| 精品伊人久久97| 免费在线观看av网址| 久久国产88| 成人3d动漫一区二区三区91| 9色在线视频网站| 亚洲va欧美va天堂v国产综合| jizz大全欧美jizzcom| 黑色丝袜福利片av久久| 菠萝蜜影院一区二区免费| 中文字幕亚洲高清| 高清成人在线观看| 伊人久久99| 久久野战av| 亚洲精品成人久久电影| 美女视频黄免费| 裸体一区二区三区| 欧美一区1区三区3区公司| 成年人视频免费在线播放| 制服丝袜中文字幕一区| 精品人妻一区二区三区蜜桃视频| 亚洲三级电影在线观看| 亚洲r级在线观看| 一级日本在线| 欧美三级在线视频| 级毛片内射视频| 久久久久综合| 精品无人区一区二区三区| 欧美1234区| 日韩欧美中文字幕公布| 国产一区二区精彩视频| 免费的成人av| 午夜精品区一区二区三| 欧美最新精品| 亚洲视频国产视频| 精品国产乱子伦| 久久无码av三级| 91免费视频网站在线观看| 欧美成人午夜77777| 久久久影视精品| 黄色美女一级片| 亚洲综合色视频| 佐佐木明希电影| 欧美日本中文| 国产超碰91| 成人高潮aa毛片免费| 亚洲精品ady| yjizz国产| 久久亚洲影视婷婷| 国产一区二区视频免费在线观看| 亚洲免费成人av在线| 国产精品h在线观看| 可以在线观看的av| 欧洲一区二区三区在线| 国产精品一区二区亚洲| 久久 天天综合| 看一级黄色录像| 51vv免费精品视频一区二区 | 日韩欧美在线电影| 欧美特黄色片| 欧美高清一级大片| 天堂中文在线观看视频| 色av综合在线| 亚洲一区电影在线观看| 国产高清视频一区| 国产a级片网站| 国产精品一区高清| 成人免费网视频| 伦理在线一区| 亚洲精品一二区| 亚洲香蕉在线视频| 亚洲午夜久久久久中文字幕久| 中文字幕5566| 国内一区二区视频| 天天夜碰日日摸日日澡性色av| 亚洲人成精品久久久| 国产一区香蕉久久| sm性调教片在线观看| 中文字幕国产亚洲2019| 精品国产一级片| 岛国av在线不卡| jizzjizz日本少妇| 成a人片亚洲日本久久| 国产一级特黄a大片免费| 亚洲一区二区日韩| 久久久久久久久久久久久久久久av| 第四色男人最爱上成人网| 久久精品最新地址| 无码h黄肉3d动漫在线观看| 欧美视频在线观看一区| 国产亚洲自拍av| 中文幕一区二区三区久久蜜桃| 亚洲av无码专区在线播放中文| 日本在线不卡视频一二三区| 日韩精品视频在线观看视频| 日韩av在线中文字幕| 狠狠色狠狠色综合人人| 日韩精品一页| 日本欧美中文字幕| 任你弄在线视频免费观看| 一道本无吗dⅴd在线播放一区| 亚洲精品久久久久久动漫器材一区| 欧美综合久久久| 免费观看一区二区三区毛片| 亚洲人成电影网站色mp4| 三级网站在线免费观看| 高清在线成人网| 在线免费黄色网| 久久精品亚洲| 男女超爽视频免费播放| 欧美日韩专区| 一区二区高清视频| 蜜桃一区二区| 精品视频一区二区三区四区| 色悠久久久久综合先锋影音下载| 国产精品夜间视频香蕉| 国产精欧美一区二区三区蓝颜男同| 欧美日韩国产成人| 国产不卡在线| 日韩在线视频网站| 福利在线播放| 亚洲视频日韩精品| 欧美性孕妇孕交| 日韩精品极品在线观看| www国产一区| 欧美一级久久久| 国产又粗又猛视频免费| 欧美性做爰猛烈叫床潮| 最近免费中文字幕大全免费版视频| 午夜视频一区在线观看| 久久久99精品| 一区二区在线观看视频在线观看| 182在线观看视频| 中文字幕视频一区二区三区久| 国产黄色片在线| 国产精品毛片久久久久久| 人人艹在线视频| 国产精品久久久爽爽爽麻豆色哟哟| 中文字幕免费高清| 国产亚洲制服色| 97人妻精品一区二区免费| 国产亚洲欧美一级| jizz中文字幕| 国产精品美女久久久久av爽李琼 | 综合中文字幕亚洲| 黄色录像一级片| 亚洲精品自拍动漫在线| 免费毛片在线播放免费| 亚洲成人免费在线观看| 日韩乱码一区二区| 精品毛片三在线观看| 亚洲第一在线播放| 欧美亚洲精品一区| 国产精品亚洲欧美在线播放| 日韩一区二区在线看| 亚洲伦理在线观看| 日韩久久午夜影院| 成人av电影观看| 精品中文字幕在线2019| av资源中文在线| 日韩av日韩在线观看| 97成人超碰| 草莓视频一区| 要久久爱电视剧全集完整观看 | 黑人巨大精品欧美一区二区免费| 免费av网站在线| 欧美日韩一级片在线观看| 国产精品无码免费播放| 精品国产免费人成电影在线观看四季| 日韩中文字幕观看| 一本色道久久88精品综合| 国产三区视频在线观看| 国内成人精品视频| 欧洲成人一区| 国产不卡一区二区在线观看| 亚洲资源网站| 久久久久久久久久久久久国产| 亚洲激情成人| 无限资源日本好片| 成人综合激情网| 久久精品国产亚洲AV熟女| 一区精品在线播放| 午夜精品三级久久久有码| 欧美网站一区二区| 人妻少妇一区二区三区| 中文字幕国产精品久久| 久草在线视频网站| 国产欧美一区二区三区久久| 精品伊人久久久| 亚洲欧洲久久| 一区二区三区高清视频在线观看| 日本黄色福利视频| 久久影音资源网| 欧美人妻精品一区二区三区| 日本丶国产丶欧美色综合| 国产黄色av片| 日韩在线免费高清视频| 黄色漫画在线免费看| 成人久久一区二区| 国产欧美日韩一区二区三区四区| 激情六月天婷婷| 麻豆精品一区二区| 免费a级黄色片| 亚洲午夜在线观看视频在线| 怡红院成永久免费人全部视频| 亚洲国产精品久久久久久| 免费大片在线观看www| 国产91|九色| 国产精品jk白丝蜜臀av小说| 手机福利在线视频| 天堂影院一区二区| 亚洲观看黄色网| 一区二区三区四区在线播放 | 激情黄产视频在线免费观看| 91牛牛免费视频| 成人精品影视| 亚洲爆乳无码专区| 91小视频免费看| 久久9999久久免费精品国产| 制服丝袜亚洲色图| 日本电影在线观看网站| 国产精品91久久久久久| 日韩精品导航| 欧美 日本 亚洲| bt欧美亚洲午夜电影天堂| 紧身裙女教师波多野结衣| 在线电影院国产精品| 成年人在线观看| 国产精品极品美女在线观看免费| 免费一区二区三区视频导航| a√天堂在线观看| 9人人澡人人爽人人精品| 中文字幕第28页| 亚洲精品一线二线三线无人区| 欧美24videosex性欧美| www.成人三级视频| 欧美日韩亚洲一区三区| 精品国产免费久久久久久婷婷| 亚洲美女区一区| 国产免费叼嘿网站免费| 欧美xxxx做受欧美.88| 日本一区影院| 日韩欧美猛交xxxxx无码| 东方欧美亚洲色图在线| 国产一级视频在线观看| 亚洲国产欧美自拍| 中日韩脚交footjobhd| 欧美日韩免费精品| 奇米影视7777精品一区二区| 粉嫩精品久久99综合一区| 欧美日韩精品电影| 黄色精品在线观看| 99九九视频| 亚洲三级色网| 老熟妇一区二区| 777午夜精品免费视频| 伊人影院在线视频| 精品一区二区三区视频日产| 久久午夜av| 美女福利视频网| 欧美电影免费观看完整版| а√天堂中文资源在线bt| 久久亚洲国产精品日日av夜夜| 老司机久久99久久精品播放免费| 懂色av粉嫩av浪潮av| 日韩一区二区三区高清免费看看 | 亚洲一区二区三区四区在线免费观看| 蜜臀av免费在线观看| 欧美综合激情网| 欧美岛国激情| 精品少妇人妻av一区二区三区| 色偷偷成人一区二区三区91| 日本最黄一级片免费在线| 国产精品9999久久久久仙踪林| 久久精品91| 午夜国产福利一区二区| 日韩激情第一页| 999精品视频在线观看| 国产a级片网站| 中文字幕中文在线不卡住| 欧美熟女一区二区| 国产精品久久视频| 亚洲福利国产| 无码人中文字幕| 日韩av综合网站| 国产在线一区不卡| 国产午夜福利视频在线观看| 亚洲三级电影网站| 国产日本在线|