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

一起學 Elasticsearch 系列-聚合查詢

大數據 開發
聚合查詢是 Elasticsearch 中一種強大的數據分析工具,用于從索引中提取和計算有關數據的統計信息。

聚合查詢是 Elasticsearch 中一種強大的數據分析工具,用于從索引中提取和計算有關數據的統計信息。聚合查詢可以執行各種聚合操作,如計數、求和、平均值、最小值、最大值、分組等,以便進行數據匯總和分析。

下面是一些常見的聚合查詢類型:

  • Metric Aggregations(指標聚合):這些聚合操作返回基于字段值的度量結果,如求和、平均值、最小值、最大值等。常見的指標聚合包括 Sum、Avg、Min、Max、Stats 等。
  • Bucket Aggregations(桶聚合):類比SQL中的group by,主要用于統計不同類型數據的數量,這些聚合操作將文檔劃分為不同的桶(buckets),并對每個桶中的文檔進行聚合計算。常見的桶聚合包括 Terms(按字段值分組)、Date Histogram(按時間間隔分組)、Range(按范圍分組)等。
  • Pipeline Aggregations(管道聚合):這些聚合操作通過在其他聚合結果上執行額外的計算來產生新的聚合結果。例如,使用 Moving Average 聚合可以計算出移動平均值。

聚合查詢通常與查詢語句結合使用,可以在查詢結果的基礎上進行進一步的數據分析和統計。聚合查詢語法使用 JSON 格式,可以通過 Elasticsearch 的 REST API 或各種客戶端庫進行發送和解析。

聚合查詢支持嵌套,即一個聚合內部可以包含別的子聚合,從而實現非常復雜的數據挖掘和統計需求。

在ES中,用于進行聚合的字段可以是exact value也可以是分詞字段,對于分詞字段,可以使用特定的聚合操作來進行分組聚合,例如Terms Aggregation、Date Histogram Aggregation等。

對于text字段的聚合,可以通過開啟fielddata來實現,但通常不建議這樣做,因為fielddata會將聚合使用的數據結構從磁盤(doc_values)轉換為堆內存(field_data),在處理大量數據時容易導致內存溢出(OOM)問題。

如果需要在text字段上執行聚合,可以考慮在該字段上添加.keyword子字段,并使用該子字段進行聚合操作,以獲得更準確的結果。

doc_values & fielddata

在 Elasticsearch 中,聚合操作主要依賴于 doc_values 或 fielddata 來進行。

  • Doc Values(文檔值):Doc Values 是一種以列式存儲格式保存字段值的數據結構,它用于支持快速的聚合、排序和統計操作。Doc Values 在磁盤上存儲,并被加載到 JVM 堆內存中進行計算。它們適用于精確值(如 keyword 類型)和數字類型的字段,在大多數情況下是默認啟用的。
  • Fielddata(字段數據):Fielddata 是一種將字段值加載到堆內存中的數據結構,它用于支持復雜的文本分析和聚合操作。Fielddata 適用于文本類型的字段,例如 text 類型,因為它們需要進行分詞和分析。但是,由于 Fielddata 需要大量的堆內存資源,特別是在處理大數據集時,容易導致內存溢出(OOM)的問題,因此不建議隨意啟用。

在設計索引時,需要根據字段類型和使用場景的不同,合理選擇是否啟用 Doc Values 或 Fielddata,以平衡性能和資源消耗的需求。

當執行聚合操作時,Elasticsearch 需要訪問所有匹配文檔的字段值。對于非文本字段,默認情況下Elasticsearch 使用 doc values 來實現。對于文本字段,必須首先啟用 fielddata。然而,由于 fielddata 占用大量內存,Elasticsearch 默認禁用了它。

如果你確實需要對一個文本字段啟用 fielddata(雖然大多數場景下不推薦這么做,因為可能導致內存消耗過大),你可以通過更新映射(mapping)來實現。

以下是如何在 my_field 字段上啟用 fielddata 的示例:

PUT my_index/_mapping

{
  "properties": {
    "my_field": { 
      "type":     "text",
      "fielddata": true
    }
  }
}

注意:更改 fielddata 設置只會影響新的數據,已經索引的數據不會受到更改。如果你想讓更改生效,需要重新索引(reindex)你的數據

另外,一般情況下,建議使用 mapping 中的 keyword 類型來進行聚合、排序或腳本,而不是啟用 text 類型的 fielddata。這是因為 keyword 類型字段默認開啟了 doc values,比在 text 上啟用 fielddata 更加高效且節省內存。

multi-fields

在 Elasticsearch 中,一個字段有可能是 multi-fields(多字段)類型,這意味著同一份數據可以被索引為不同類型的字段。常見的情況就是,一個字段既被索引為 text 類型用于全文搜索,又被索引為 keyword 類型用于精確值搜索、排序和聚合。

當你在一個字段名后面加上 .keyword(例如 field.keyword),這說明你是在引用這個字段的 keyword 子字段。這個 keyword 子字段在索引時并不會被分詞器拆分成單獨的詞條,而是作為一個完整的字符串被存儲。這樣,你就可以對這個字段進行精確值匹配、排序或者聚合操作。

舉例來說,如果你有一個 message 字段并且想要對其進行聚合,你應該使用 message.keyword 而非 message。因為如果你直接對 message 進行聚合,Elasticsearch 就會嘗試對每一個獨立的詞條進行聚合,而不是對整個字段值進行聚合。

如果你的字段沒有 .keyword 子字段,那可能是在定義 mapping 時沒有包含這一部分,或者這個字段的類型本身就是 keyword。

分桶聚合

分桶(Bucket)聚合是一種特殊類型的聚合,它將輸入文檔集合中的文檔分配到一個或多個桶中,每個桶都對應于一個鍵(key)。

下面是一些常用的分桶聚合類型:

  • terms:基于文檔中某個字段的值,將文檔分組到各個桶中。
  • date_histogram:基于日期字段,將文檔按照指定的時間間隔分組到各個桶中。
  • histogram:基于數值字段,將文檔按照指定的數值范圍分組到各個桶中。
  • range:根據設置的范圍,將數據分為不同的桶。

以下是一個使用 terms 分桶聚合的例子:

假設你有一個包含博客文章的 blog 索引,你想知道每個作者寫了多少篇文章,可以使用以下查詢:

GET /blog/_search
{
  "size": 0,
  "aggs": {
    "authors": {
      "terms": { "field": "author.keyword" }
    }
  }
}

在這個查詢中:

  • size: 0 表示我們只對聚合結果感興趣,不需要返回任何具體的搜索結果。
  • "aggs" (或者 "aggregations") 塊定義了我們的聚合。
  • "authors" 是我們自己為這個聚合命名的標簽,你可以用任何你喜歡的標簽名。
  • "terms": { "field": "author.keyword" } 定義了我們要進行聚合的方式和字段。這里,我們告訴 Elasticsearch 使用 terms 聚合,并且使用 author.keyword 字段的值作為分桶的依據。

Elasticsearch 將返回一個包含每個作者以及他們所寫的文章數量的列表。注意,由于 Elasticsearch 默認只返回前十個桶,如果你的數據中有更多的作者,可能需要設置 size 參數來獲取更多的結果。

Histogram

histogram 是桶聚合的一種類型,它可以按照指定的間隔將數字字段的值劃分為一系列桶。每個桶代表了這個區間內的所有文檔。

以下是一個例子,我們根據價格字段創建一個間隔為 50 的直方圖:

GET /products/_search
{
  "size": 0,
  "aggs" : {
    "prices" : {
      "histogram" : {
        "field" : "price",
        "interval" : 50
      }
    }
  }
}

在這個例子中,“prices” 是一個 histogram 聚合,它以 50 為間隔將產品的價格劃分為一系列的桶。

指標聚合

在 Elasticsearch 中,指標聚合是對數據進行統計計算的一種方式,例如求和、平均值、最小值、最大值等。以下是一些常用的指標聚合類型:

  • avg:計算字段的平均值。
  • sum:計算字段的總和。
  • min:查找字段的最小值。
  • max:查找字段的最大值。
  • count:計算匹配文檔的數量。
  • stats:提供了 count、sum、min、max 和 avg 的基本統計。

下面是一個示例,假設我們有一個包含售賣商品的 “sales” 索引,我們想要知道所有銷售記錄中的平均價格,可以使用 avg 聚合如下操作:

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "average_price": {
      "avg": { "field": "price" }
    }
  }
}

Percentiles

percentiles 是指標聚合的一種,它用于計算數值字段的百分位數。給定一個列表百分比,Elasticsearch 可以計算每個百分比下的數值。

以下是一個例子,我們計算價格字段的 1st, 5th, 25th, 50th, 75th, 95th, and 99th 百分位數:

GET /products/_search
{
  "size": 0,
  "aggs" : {
    "price_percentiles" : {
      "percentiles" : {
        "field" : "price",
        "percents" : [1, 5, 25, 50, 75, 95, 99]
      }
    }
  }
}

在這個例子中,“price_percentiles” 是一個 percentiles 聚合,它計算了價格在各個百分位點的數值。

注意,對于大數據集,計算精確的百分位數可能需要消耗大量資源。因此,Elasticsearch 默認使用一個名為 TDigest 的算法來提供近似的計算結果,同時還能保持內存使用的可控性。

cardinality

如果你想在 Elasticsearch 中進行去重操作,可以使用 terms 聚合加上 cardinality 聚合。這是一個示例,假設我們有一個包含user_id的 "users" 索引,并且我們想要知道有多少唯一的 user_id:

GET /users/_search
{
  "size": 0,
  "aggs": {
    "distinct_user_ids": {
      "cardinality": {
        "field": "user_id.keyword"
      }
    }
  }
}

在這個查詢中:

  • "distinct_user_ids" 是我們自己為這個聚合命名的標簽。
  • "cardinality": { "field": "user_id.keyword" } 使用了 cardinality 聚合,該聚合會返回指定字段(在這里是 user_id.keyword)的不同值的數量。

Elasticsearch 將返回一個結果,告訴我們有多少個不同的 user_id。請注意,cardinality 聚合可能并不總是完全精確,特別是對于大型數據集,因為它在內部使用了一種叫做 HyperLogLog 的算法來近似計算基數,這種算法會在保持內存消耗相對較小的情況下提供接近準確的結果。如果你需要完全精確的結果,可能需要考慮其他方法,例如使用腳本或者將數據導出到外部系統進行處理。

管道聚合

在 Elasticsearch 中,管道聚合(pipeline aggregations)是指這樣一種聚合:它以其他聚合的結果作為輸入,并進行進一步處理。

常見的管道聚合包括:

  • avg_bucket
  • sum_bucket
  • min_bucket
  • max_bucket
  • stats_bucket
  • extended_stats_bucket
  • percentiles_bucket

這些都是 bucket 級別的管道聚合,它們會在一組數據桶上操作。

下面給出一個示例,假設我們有一個銷售記錄索引 "sales",每個銷售記錄都有售價 "price" 和銷售日期 "date" 字段。如果我們想要計算每月平均銷售價格,并找出所有月份中平均價格最高的月份,可以使用 date_histogram 聚合加上 avg 以及 max_bucket 聚合來實現:

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_per_month": {
      "date_histogram": {
        "field": "date",
        "calendar_interval": "month"
      },
      "aggs": {
        "avg_price": {
          "avg": { "field": "price" }
        }
      }
    },
    "max_avg_price": {
      "max_bucket": {
        "buckets_path": "sales_per_month>avg_price"
      }
    }
  }
}

在這個查詢中:

  • "sales_per_month" 是一個按月聚合銷售記錄的 date_histogram 聚合。
  • "avg_price" 是一個嵌套在 "sales_per_month" 下的 avg 聚合,用于計算每月的平均銷售價格。
  • "max_avg_price" 是一個 max_bucket 聚合,它會找出 "sales_per_month" 中所有子桶的 "avg_price" 最大值。

注意到 "max_avg_price" 中的 "buckets_path": "sales_per_month>avg_price"。buckets_path 參數指定了此管道聚合的輸入來源,> 符號表示路徑層次,即先取 "sales_per_month" 聚合的結果,再取其中的 "avg_price" 聚合的結果作為輸入。

返回的結果中會包含每個月的平均銷售價格,以及所有月份中平均銷售價格的最大值。

嵌套聚合

嵌套聚合就是在聚合內使用聚合,在 Elasticsearch 中,嵌套聚合通常用于處理 nested 類型的字段。nested 類型允許你將一個文檔中的一組對象作為獨立的文檔進行索引和查詢,這對于擁有復雜數據結構(例如數組或列表中的對象)的場景非常有用。

假設我們有一個 users 索引,每個 user 文檔都有一個 purchases 字段,該字段是一個列出用戶所有購買記錄的數組,每個購買記錄包含 product_id 和 price。如果我們想要找出價格超過 100 的所有產品的 ID,可以使用 nested 聚合:

GET /users/_search
{
  "size": 0,
  "aggs": {
    "all_purchases": {
      "nested": {
        "path": "purchases"
      },
      "aggs": {
        "expensive_purchases": {
          "filter": { "range": { "purchases.price": { "gt": 100 } } },
          "aggs": {
            "product_ids": { "terms": { "field": "purchases.product_id" } }
          }
        }
      }
    }
  }
}

在這個查詢中:

  • "all_purchases" 是一個 nested 聚合,指定了 nested 對象的路徑 purchases。
  • "expensive_purchases" 是一個嵌套在 "all_purchases" 下的 filter 聚合,它會過濾出 price 大于 100 的購買記錄。
  • "product_ids" 是一個嵌套在 "expensive_purchases" 下的 terms 聚合,它會提取出所有滿足條件的 product_id。

返回的結果將包含所有 price 大于 100 的產品的 ID 列表。

請注意,在處理 nested 數據時,你需要確保 mapping 中相應的字段已經被設置為 nested 類型,否則該查詢可能無法按預期工作。

基于查詢結果的聚合 & 基于聚合結果的查詢

基于查詢結果的聚合:在這種情況下,我們首先執行一個查詢,然后對查詢結果進行聚合。

例如,如果我們要查詢所有包含某關鍵字的文檔,并計算它們的平均價格,可以這樣做:

GET /products/_search
{
  "query": {
    "match": {
      "description": "laptop"
    }
  },
  "aggs": {
    "average_price": {
      "avg": {
        "field": "price"
      }
    }
  }
}

在上述例子中,我們首先通過 match 查詢找到描述中包含 "laptop" 的所有產品,然后對這些產品的價格進行平均值聚合。

基于聚合結果的查詢:這種情況下,我們先執行聚合,然后基于聚合的結果執行過濾操作。

這通常用于在聚合結果中應用一些額外的過濾條件。例如,如果我們想對所有產品進行銷售數量聚合,然后從結果中過濾出銷售數量大于10的產品,可以這樣做:

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_per_product": {
      "terms": {
        "field": "product_id"
      }
    }
  },
  "post_filter": {
    "bucket_selector": {
      "buckets_path": {
        "salesCount": "sales_per_product._count"
      },
      "script": {
        "source": "params.salesCount > 10"
      }
    }
  }
}

在上述例子中,我們首先執行了一個 terms 聚合,按產品ID匯總銷售記錄。然后我們使用 bucket_selector post-filter 進一步篩選出銷售數量大于10的桶(每個桶對應一個產品)。

聚合排序

(1) count

在 Elasticsearch 中,聚合排序允許你基于某一聚合的結果來對桶進行排序。例如,你可能希望查看銷售量最高的10個產品,可以使用 terms 聚合以及其 size 和 order 參數來實現:

GET /sales/_search

{
  "size": 0,
  "aggs": {
    "top_products": {
      "terms": {
        "field": "product_id",
        "size": 10,
        "order": { "_count": "desc" }
      }
    }
  }
}

在這個例子中,top_products 是一個 terms 聚合,用于按 product_id 對銷售記錄進行分組。

"size": 10 的意思是只返回銷售量最高的前10個產品(即只返回前10個桶)。

"order": { "_count": "desc" } 表示按桶中文檔的數量(也就是銷售量)降序排序。_count 是一個內置的排序鍵,代表桶中文檔的數量。

返回的結果將包含銷售量最高的前10個產品的 ID 列表。

(2) term

_term 在 Elasticsearch 的聚合排序中用來指定按照詞條(即桶的鍵)來排序。

GET /sales/_search

{
  "size": 0,
  "aggs": {
    "products": {
      "terms": {
        "field": "product_id",
        "order": { "_term": "asc" }
      }
    }
  }
}

在這個例子中,通過 "order": { "_term": "asc" } 指定了按照 product_id 的值升序排序這些桶。

返回的結果將包含按照 product_id 升序排列的產品 ID 列表,每個產品 ID 對應一個桶,并且每個桶內包含對應產品的銷售記錄。

需要注意的是,在新版本的 Elasticsearch 中(7.0 以后),_term 已經被 key 替代用于排序。

GET /sales/_search

{
  "size": 0,
  "aggs" : {
    "products" : {
      "terms" : {
        "field" : "product_id",
        "order" : { "_key" : "asc" }
      }
    }
  }
}
責任編輯:趙寧寧 來源: Java隨想錄
相關推薦

2023-11-13 22:27:53

Mapping數據庫

2023-11-13 12:48:32

語言DSL

2024-02-28 12:12:20

Pipeline數據機制

2023-12-26 12:12:57

檢索調優Scripting場景

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-02 14:20:09

Tetris鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發畫布功能

2023-02-28 07:28:50

Spritepixijs

2023-04-26 07:42:16

WebGL圖元的類型

2023-05-04 08:48:42

WebGL復合矩陣

2023-06-26 15:14:19

WebGL紋理對象學習

2023-03-29 07:31:09

WebGL坐標系

2023-04-12 07:46:24

JavaScriptWebGL

2025-03-17 11:21:08

APISwagger界面

2023-04-11 07:48:32

WebGLCanvas

2023-03-02 07:44:39

pixijsWebGL

2023-05-31 20:10:03

WebGL繪制立方體

2023-04-13 07:45:15

WebGL片元著色器

2023-05-16 07:44:03

紋理映射WebGL
點贊
收藏

51CTO技術棧公眾號

国模无码一区二区三区| 99久久久无码国产精品衣服| 亚洲wwwww| 国产+成+人+亚洲欧洲自线| 色综合色综合久久综合频道88| 久久99久久久久久| 亚洲成a人片在线| 国产欧美综合一区二区三区| 亚洲精品美女在线| 大胆欧美熟妇xx| 黄色av中文字幕| 男女精品网站| 日韩有码视频在线| 91福利视频免费观看| a'aaa级片在线观看| 久久久久久久精| 国产69精品99久久久久久宅男| 亚洲欧洲日本精品| 高清电影在线观看免费| 狠狠色伊人亚洲综合成人| 欧美激情亚洲一区| 亚洲精品乱码久久久久久蜜桃欧美| 日本免费视频在线观看| 国产精品一区一区| 国产成人一区二区在线| 国产男男chinese网站| 国产剧情av在线播放| 国产精品视频线看| 国产一区精品在线| 中文字幕日本视频| 亚洲欧洲日本mm| 日韩欧美色综合网站| 黄色影院一级片| 91三级在线| 国产三级欧美三级| 国产日韩三区| 激情综合网五月婷婷| 日本高清免费电影一区| 538在线一区二区精品国产| 亚洲精品国产系列| 天堂网www中文在线| 国产一区二区视频在线| 欧美日韩国产二区| 欧美成人短视频| 日韩福利视频一区| 日韩午夜激情视频| 人妻少妇精品无码专区二区| 伊人免费在线| 国产成+人+日韩+欧美+亚洲| 欧美成人一区在线| 成人黄色片视频| www555久久| 亚洲欧美日韩小说| 亚洲欧美国产一区二区| 国产永久免费高清在线观看 | 91麻豆精品国产自产在线 | 日韩av片在线看| 黄色精品在线观看| 国产精品久久久久久久岛一牛影视| 国产精品一区二区久久| 综合 欧美 亚洲日本| 欧美一性一交| 欧美日免费三级在线| www.com毛片| sm捆绑调教国产免费网站在线观看| 91农村精品一区二区在线| 99re视频在线播放| 国产同性人妖ts口直男| 久久97超碰色| 久久精品亚洲94久久精品| 蜜桃av乱码一区二区三区| 一区二区三区视频免费观看| 欧美日韩精品久久久| 日本男人操女人| 不卡的av影片| 亚洲国产aⅴ天堂久久| 欧美无砖专区免费| 超级碰碰不卡在线视频| 亚洲乱码一区二区三区在线观看| 久久草.com| 三级黄视频在线观看| 久久综合九色综合欧美就去吻| 国产欧美一区二区三区久久| 日本一二三区视频| 国产深夜精品| 国产精品成人av在线| www.亚洲激情| 久久国产人妖系列| 日本韩国一区二区三区视频| 男女裸体影院高潮| 丁香花视频在线观看| 国产日韩欧美亚洲| 日韩国产在线一区| 日韩一级中文字幕| 久久久午夜精品| 日韩国产一区久久| a天堂中文在线官网在线| 亚洲一区二区av在线| 久久久999视频| 日韩欧美一区二区三区免费观看| 亚洲一区二区视频| www黄色日本| 18av在线播放| 天天操天天色综合| 可以在线看黄的网站| 国产精品剧情一区二区在线观看| 国产午夜精品理论片a级大结局| 国产精品免费一区二区三区在线观看 | 欧美视频在线视频| 老头吃奶性行交视频| av2020不卡| 欧美性大战久久| 欧美人成在线观看| 成人开心激情| 亚洲国产欧美一区二区三区久久| 又黄又爽的网站| 午夜久久免费观看| 国产精品高潮呻吟久久av黑人| 在线观看国产黄| 99精品视频在线观看免费| 精品少妇人妻av一区二区| 成人影院网站| 亚洲电影在线观看| 久久久久久国产精品免费播放| 狠狠综合久久av一区二区老牛| 91干在线观看| 日韩精品一区不卡| 精品在线一区二区| 午夜精品一区二区三区在线观看| av免费在线观看网站| 欧美日韩免费观看一区三区| av黄色在线免费观看| 亚洲在线网站| 久久国产精品一区二区三区| 国产乱妇乱子在线播视频播放网站| 精品国产乱码久久久久久婷婷| 精品久久久久久久无码| 日本超碰一区二区| 久久精品影视伊人网| 在线观看xxxx| 日韩理论在线观看| 久久6免费视频| 色婷婷综合久久久久久| 97国产成人精品视频| 人妻一区二区三区| 精品久久久在线观看| 五月天激情小说| 日韩一级欧洲| 免费久久一级欧美特大黄| 手机av在线| 亚洲男人天堂视频| 久草视频在线资源| 不卡一区二区在线| 人妻无码久久一区二区三区免费| 四虎永久精品在线| 久久精品在线视频| 国产免费不卡视频| 亚洲一区二区三区精品在线| 女同性恋一区二区三区| 亚洲一级在线| 亚洲人久久久| 麻豆久久一区| 亚州成人av在线| 久久免费看视频| 欧美老年两性高潮| 久久精品视频免费在线观看| 成人h动漫精品| 国产精品欧美激情在线观看| jiujiure精品视频播放| 91精品国产91久久久久久吃药| av官网在线观看| 亚洲成va人在线观看| 国产呦小j女精品视频| 日本免费新一区视频| 一区二区三区日韩视频| a看欧美黄色女同性恋| 波霸ol色综合久久| 人成网站在线观看| 欧美性色aⅴ视频一区日韩精品| 亚洲av无码一区二区三区网址| 欧美高清一区| 欧美12av| 午夜视频一区二区在线观看| 欧美亚洲另类激情另类| 日本在线免费播放| 亚洲精品一区二区三区99| 无码视频在线观看| 一区二区三区影院| 91视频免费在观看| 美女在线一区二区| 成品人视频ww入口| 日韩综合一区| 久久精品日产第一区二区三区乱码| 国产丝袜视频在线播放| 日韩精品在线一区| 久久久久99精品成人片三人毛片| 成人动漫中文字幕| 无需播放器的av| 亚洲精选成人| xxxxxx在线观看| 欧美军人男男激情gay| 国产精品视频在线免费观看| 精品日本视频| 久久久免费av| 成人免费观看视频大全| 国产亚洲精品久久久久久牛牛| 中文字幕+乱码+中文乱码91| 亚洲五码中文字幕| 91香蕉一区二区三区在线观看| 国产精品一区久久久久| 妞干网在线播放| 999精品视频| 日本一区高清在线视频| 精品中国亚洲| 91精品国产综合久久久久久丝袜 | 亚洲免费在线播放| 国产欧美视频一区| 经典一区二区三区| 看欧美ab黄色大片视频免费| 国产日韩精品视频一区二区三区 | 97人人模人人爽人人少妇| 爱福利在线视频| 久久91亚洲精品中文字幕| 天堂av在线7| 亚洲精品在线三区| 夜夜躁日日躁狠狠久久av| 精品久久久久人成| 国产午夜免费视频| 一区二区三区色| 色婷婷在线视频观看| 亚洲欧洲精品一区二区三区| 蜜臀久久99精品久久久久久| 精品亚洲成a人| 手机在线看福利| 日韩高清不卡一区| 午夜激情福利在线| 老**午夜毛片一区二区三区 | 日韩精品视频一二三| 女生裸体视频一区二区三区| 快播亚洲色图| 婷婷五月色综合香五月| 狼狼综合久久久久综合网| 台湾佬综合网| 欧美一级日本a级v片| 亚洲妇女av| 日韩成人在线资源| 欧美gvvideo网站| 中文精品视频一区二区在线观看| 亚洲精品动态| 奇米888一区二区三区| 欧美女优在线视频| 午夜精品一区二区三区在线观看| 久久狠狠久久| 欧美日韩精品综合| 成人嫩草影院| 看一级黄色录像| 日韩av自拍| 欧美xxxx吸乳| 亚洲看片免费| 日韩视频免费在线播放| 久久精品国产99| 亚洲区 欧美区| 国内国产精品久久| av不卡中文字幕| 91碰在线视频| 国产麻豆a毛片| 尤物视频一区二区| 日本在线播放视频| 欧美视频自拍偷拍| av网站在线观看免费| 亚洲成人动漫在线播放| 可以在线观看的黄色| 日韩中文综合网| 678在线观看视频| 久久999免费视频| 碰碰在线视频| 国产伊人精品在线| 国产精品久久久网站| av在线亚洲男人的天堂| 免费成人高清在线视频theav| 国产在线一区二| 清纯唯美亚洲综合一区| 国产在线无码精品| 丝袜亚洲另类欧美| 乳色吐息在线观看| 久久久高清一区二区三区| 亚洲成人生活片| 色综合久久88色综合天天6| 91中文字幕在线视频| 亚洲国产精品久久久久秋霞蜜臀 | 少妇高潮av久久久久久| 欧美日韩国产小视频| 国产乱码久久久| 91精品国产黑色紧身裤美女| 亚洲av片在线观看| 另类图片亚洲另类| 欧洲精品一区二区三区| 7777精品伊久久久大香线蕉语言| 91麻豆精品激情在线观看最新 | 黄色av免费观看| 亚洲精品理论电影| 激情在线小视频| 国产99久久久欧美黑人| 亚洲码欧美码一区二区三区| 日韩精品久久一区| 99热精品在线| 曰本三级日本三级日本三级| 日本一区二区免费在线观看视频| 日本人亚洲人jjzzjjz| 亚洲特黄一级片| 中文字幕xxxx| 亚洲国产精品一区二区久| 成人在线观看亚洲| 国产精品一区二区女厕厕| 神马午夜久久| 亚洲熟妇国产熟妇肥婆| 国产成人免费高清| 欧美风情第一页| 午夜久久久久久久久| 国产三级按摩推拿按摩| 色偷偷888欧美精品久久久| 成人欧美大片| 久久久久久久免费| 亚洲伦伦在线| 在线观看国产网站| 亚洲成在线观看| 丰满人妻av一区二区三区| 久久在线视频在线| www欧美在线观看| 宅男在线精品国产免费观看| 免费在线欧美视频| 精品人妻一区二区三区四区| 一本色道亚洲精品aⅴ| 国产一区二区小视频| 亚洲二区中文字幕| 国产探花在线观看| 国产精品亚洲一区二区三区| 国产欧美日韩免费观看| 香港三级日本三级a视频| 国内外成人在线| 日韩成人毛片视频| 日韩精品一区二区三区老鸭窝| 国产高清视频在线播放| 国产成人av网| 精品精品久久| 天天干天天爽天天射| 国产精品美女久久久久久久久| 西西44rtwww国产精品| 亚洲精品国产精品自产a区红杏吧| 亚洲图片88| 92国产精品视频| 精品日韩欧美一区| www.com黄色片| 中文字幕字幕中文在线中不卡视频| 国产精品视频免费播放| 亚洲欧美国产精品va在线观看| 色呦呦视频在线观看| 国产精品xxxx| 五月精品视频| 手机在线成人免费视频| 中文字幕一区二| 亚洲第一天堂影院| 欧美亚洲第一页| 久久中文资源| 黑森林福利视频导航| 亚洲国产成人私人影院tom| 国产精品-色哟哟| 国外成人在线播放| 精品国产精品| 五月天丁香花婷婷| 午夜精品123| 在线免费看av| 国产精品久久久久久免费观看| 在线观看国产精品入口| 亚洲自拍偷拍精品| 欧美性大战久久久久久久| 青青青草视频在线| 日本精品免费| 国产成人亚洲综合色影视| 看片网址国产福利av中文字幕| 精品国产乱码久久| 九九热线视频只有这里最精品| 久久精品午夜一区二区福利| 欧美aaa在线| 国产在线一区视频| 中文字幕亚洲专区| 大奶一区二区三区| www.亚洲高清| 五月激情六月综合| 天天综合网天天综合| 国产精品视频在线播放| 亚洲网站视频| 秋霞网一区二区三区| 欧美精品一区二区不卡| 久久天天久久| 亚洲午夜无码av毛片久久| 1000精品久久久久久久久| 天堂a中文在线| 国产精品激情自拍| 在线电影一区|