日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(转)Elasticsearch 聚合查询、桶聚合、管道聚合及复合查询

發(fā)布時(shí)間:2023/12/3 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)Elasticsearch 聚合查询、桶聚合、管道聚合及复合查询 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自: https://blog.csdn.net/zx711166/article/details/81906881

聚合查詢(xún)
聚合是一種基于查詢(xún)條件對(duì)數(shù)據(jù)進(jìn)行分桶、計(jì)算的方法。

聚合可以嵌套,由此可以組合復(fù)雜的操作(Bucketing 聚合可以包含 sub-aggregation)。

聚合的三種分類(lèi):

Metric(指標(biāo)聚合):
對(duì)文檔進(jìn)行權(quán)值計(jì)算,輸出結(jié)果既是權(quán)值。
基于特定字段(field)或腳本值(generated using scripts)計(jì)算。
Bucketing(分桶聚合):
對(duì)文檔進(jìn)行分組操作,把滿(mǎn)足相關(guān)特性的文檔分到一個(gè)桶里,即桶分。輸出結(jié)果是包含多個(gè)文檔的桶。
基于一個(gè)關(guān)鍵字(field、script),以及一些桶分(分組)的判斷條件進(jìn)行聚合,符合條件的會(huì)分到對(duì)應(yīng)的組(fall in)。
Pipeline(管道聚合):
對(duì)其它聚合操作的輸出以及關(guān)聯(lián)指標(biāo)進(jìn)行聚合。
此類(lèi)聚合的作用對(duì)象大多是桶,而不是文檔,是一種后期對(duì)每一個(gè)分桶的一些計(jì)算操作。
指標(biāo)聚合
sum 聚合(single-value)
sum是一個(gè)求累加值的聚合,其作用與關(guān)系型數(shù)據(jù)庫(kù)中相同。

Top hits 聚合
最高匹配權(quán)值聚合,跟蹤聚合中相關(guān)性最高的文檔。

該聚合一般用做 sub-aggregation,以此來(lái)聚合每個(gè)桶中的最高匹配的文檔。

參數(shù):

from:最匹配的結(jié)果中的文檔個(gè)數(shù)偏移;
size:top matching hits 返回的最大文檔個(gè)數(shù)(default 3);
sort:最匹配的文檔的排序方式。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
missing:文檔缺失字段時(shí)的默認(rèn)值。
GET /lib4/items/_search
{
??? "size": 0, # 表示查詢(xún)多少條文檔,聚合只需就和結(jié)果,輸出文檔可以設(shè)置為0條
??? "aggs": {
??????? "price_of_sum": { # 自行取名作為結(jié)果集
??????????? "sum": {
??????????????? "field": "price"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
min 聚合(single)
min是一個(gè)求最小值的聚合,其作用與關(guān)系型數(shù)據(jù)庫(kù)中相同。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
missing:文檔缺失字段時(shí)的默認(rèn)值。
GET /lib4/items/_search
{
??? "size": 0,
??? "aggs": {
??????? "price_of_min": {
??????????? "min": {
??????????????? "field": "price"
??????????? }
??????? }
??? }
}

//最小值,script
{
?? ?"size", 0
??? "aggs" : {
??????? "price_of_min_script" : {
??????????? "min" : {
??????????????? "script" : {??????????????? //script 計(jì)算 value
??????????????????? "file": "my_script",
??????????????????? "params": {
??????????????????????? "field": "price"
?????????????? ??? ?}
?????????? ??? ?}
??????? ??? ?}
?? ??? ?}
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
max 聚合(single)
max是一個(gè)求最大值聚合,其作用與關(guān)系型數(shù)據(jù)庫(kù)中相同。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
missing:文檔缺失字段時(shí)的默認(rèn)值。
GET /lib4/items/_search
{
??? "size": 0,
??? "aggs": {
??????? "price_of_max": {
??????????? "max": {
??????????????? "field": "price"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
avg 聚合(single-value numeric metrics)
avg是一個(gè)求平均值的聚合,其作用與關(guān)系型數(shù)據(jù)庫(kù)中相同。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
missing:文檔缺失字段時(shí)的默認(rèn)值。
GET /lib4/items/_search
{
??? "size": 0,
??? "aggs": {
??????? "price_of_avg": {
??????????? "avg": {
??????????????? "field": "price"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
cardinality 聚合(single-value)
cardinality是一個(gè)求基數(shù)的聚合,其作用與關(guān)系型數(shù)據(jù)庫(kù)中相同。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
precision_threshold:精度閾值,用于處理準(zhǔn)確度問(wèn)題;
missing:文檔缺失字段時(shí)的默認(rèn)值。
GET /lib4/items/_search
{
??? "size": 0,
??? "aggs": {
??????? "price_of_cardi": {
??????????? "cardinality": { # 其實(shí)相當(dāng)于該字段互不相同的值有多少類(lèi),輸出的是種類(lèi)數(shù)
??????????????? "field": "price"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
stats 聚合(multi-value)
統(tǒng)計(jì)聚合,基于文檔的某個(gè)值,計(jì)算出一些統(tǒng)計(jì)信息(min、max、sum、count、avg)。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
missing:文檔缺失字段時(shí)的默認(rèn)值。
{
??? "aggs" : {
??????? "grades_stats" : {
?????? ??? ?"stats" : {
?????? ??? ??? ?"field" : "grade"
?????? ??? ?}
??????? }
??? }
}
//輸出
{
??? ...
??? "aggregations": {
??????? "grades_stats": {
??????????? "count": 6,
??????????? "min": 60,
??????????? "max": 98,
??????????? "avg": 78.5,
??????????? "sum": 471
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Extended stats 聚合(multi-value)
擴(kuò)展統(tǒng)計(jì)聚合,基于文檔的某個(gè)值,計(jì)算出一些統(tǒng)計(jì)信息(比普通的stats聚合多了sum_of_squares、variance、std_deviation、std_deviation_bounds)。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
missing:文檔缺失字段時(shí)的默認(rèn)值;
sigma:標(biāo)準(zhǔn)差界限。
{
??? ...

??? "aggregations": {
??????? "grade_stats": {
?????????? "count": 9,
?????????? "min": 72,
?????????? "max": 99,
?????????? "avg": 86,
?????????? "sum": 774,
?????????? //輸出比 stats 聚合多了一些值
?????????? "sum_of_squares": 67028,
?????????? "variance": 51.55555555555556,
?????????? "std_deviation": 7.180219742846005,
?????????? "std_deviation_bounds": {
??????????? "upper": 100.36043948569201,
??????????? "lower": 71.63956051430799
?????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Geo Bounds 聚合
地理邊界聚合,基于文檔的某個(gè)字段(geo-point類(lèi)型字段),計(jì)算出該字段所有地理坐標(biāo)點(diǎn)的邊界(左上角/右下角坐標(biāo)點(diǎn))。

參數(shù):

field:用于計(jì)算的字段;
wrap_longitude:是否允許地理邊界與國(guó)際日界線存在重疊。
{
??? "query" : {
??????? "match" : { "business_type" : "shop" }
??? },
??? "aggs" : {
??????? "viewport" : {
??????????? "geo_bounds" : {
??????????????? "field" : "location",
??????????????? "wrap_longitude" : true
??????????? }
??????? }
??? }
}
//輸出
{
??? ...
??? "aggregations": {
??????? "viewport": {
??????????? "bounds": {
??????????????? "top_left": {??????????????????? //左上角經(jīng)緯度
??????????????????? "lat": 80.45,
??????????????????? "lon": -160.22
??????????????? },
??????????????? "bottom_right": {?????????????? //右下角經(jīng)緯度
??????????????????? "lat": 40.65,
??????????????????? "lon": 42.57
??????????????? }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Geo Centroid 聚合
地理重心聚合,基于文檔的某個(gè)字段(geo-point類(lèi)型字段),計(jì)算所有坐標(biāo)的加權(quán)重心。

參數(shù):

field:用于計(jì)算的字段(geo-point類(lèi)型)。
{
??? "query" : {
??????? "match" : { "crime" : "burglary" }
??? },
??? "aggs" : {
??????? "centroid" : {
??????????? "geo_centroid" : {
??????????????? "field" : "location"
??????????? }
??????? }
??? }
}
//輸出
{
??? ...
??? "aggregations": {
??????? "centroid": {
??????????? "location": {????? //重心經(jīng)緯度
??????????????? "lat": 80.45,
??????????????? "lon": -160.22
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Percentiles 聚合(multi-value)
百分百聚合,基于聚合文檔中某個(gè)數(shù)值類(lèi)型的值,求這些值中。

參數(shù):

field:用于計(jì)算的字段;
script:由腳本生成用來(lái)計(jì)算的 value;
missing:文檔缺省字段時(shí)的默認(rèn)。
Script Metric 聚合
基于腳本的權(quán)值聚合,用腳本來(lái)計(jì)算出一個(gè)權(quán)值。

參數(shù):

init_script:用于計(jì)算的字段;
map_script:由腳本生成用來(lái)計(jì)算的 value;
combine_script:文檔缺省字段時(shí)的默認(rèn)值;
reduce_script:
{
??? "query" : {
??????? "match_all" : {}
??? },
??? "aggs": {
??????? "profit": {
??????????? "scripted_metric": {
??????????????? "init_script" : "_agg['transactions'] = []",
??????????????? "map_script" : "if (doc['type'].value == \"sale\") { _agg.transactions.add(doc['amount'].value) } else { _agg.transactions.add(-1 * doc['amount'].value) }",
??????????????? "combine_script" : "profit = 0; for (t in _agg.transactions) { profit += t }; return profit",
??????????????? "reduce_script" : "profit = 0; for (a in _aggs) { profit += a }; return profit"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Top hits 聚合
最高匹配權(quán)值聚合,跟蹤聚合中相關(guān)性最高的文檔。

該聚合一般用做 sub-aggregation,以此來(lái)聚合每個(gè)桶中的最高匹配的文檔。

參數(shù):

from:最匹配的結(jié)果中的文檔個(gè)數(shù)偏移;
size:top matching hits 返回的最大文檔個(gè)數(shù)(default 3);
sort:最匹配的文檔的排序方式。
{
??? "aggs": {
??????? "top-tags": {
??????????? "terms": {
??????????????? "field": "tags",
??????????????? "size": 3
??????????? },
??????????? "aggs": {
??????????????? "top_tag_hits": {
??????????????????? "top_hits": {????????????????? //用 tags 字段分組,每個(gè) tag(即一個(gè)分組)只顯示最后一個(gè)問(wèn)題,并且只在 _source 中保留 title 字段
??????????????????????? "sort": [
??????????????????????????? {
??????????????????????????????? "last_activity_date": {
??????????????????????????????????? "order": "desc"
??????????????????????????????? }
??????????????????????????? }
??????????????????????? ],
??????????????????????? "_source": {
??????????????????????????? "include": [
??????????????????????????????? "title"
??????????????????????????? ]
??????????????????????? },
??????????????????????? "size" : 1
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
}
//輸出
"top_tags_hits": {
???? "hits": {
????????? "total": 25365,
????????? "max_score": 1,
????????? "hits": [
????????????? {
???????????????? "_index": "stack",
???????????????? "_type": "question",
???????????????? "_id": "602679",
???????????????? "_score": 1,
???????????????? "_source": {
????????????????????? "title": "Windows port opening"
???????????????? },
???????????????? "sort": [
????????????????? ]
?????????????? }
?????????? ]
???? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Value Count 聚合(single-value)
值計(jì)數(shù)聚合,計(jì)算聚合文檔中某個(gè)值的個(gè)數(shù)。

用于計(jì)數(shù)的值可以是特定的數(shù)值型字段,也可以通過(guò)腳本計(jì)算而來(lái)。

該聚合一般域其它 single-value 聚合聯(lián)合使用,比如在計(jì)算一個(gè)字段的平均值的時(shí)候,可能還會(huì)關(guān)注這個(gè)平均值是由多少個(gè)值計(jì)算而來(lái)。

參數(shù):

field:用于計(jì)算的字段
script:由腳本生成用來(lái)計(jì)算的 value
{
??? "aggs" : {
??????? "grades_count" : {
?????? ??? ?"value_count" : {
?????? ??? ??? ?"field" : "grade"
?????? ??? ?}
??????? }??? //計(jì)算 grade 字段共有多少個(gè)值,和 cardinality 聚合不同的
??? }
}
1
2
3
4
5
6
7
8
9
桶聚合查詢(xún)
histogram 聚合(multi-bucket)
直方圖聚合,基于文檔中的某個(gè)【數(shù)值類(lèi)型】字段,通過(guò)計(jì)算來(lái)動(dòng)態(tài)的分桶。

計(jì)算如下:

rem = value % interval
if (rem < 0) {
??? rem += interval
}
bucket_key = value - rem
1
2
3
4
5
參數(shù):

field:字段,必須為數(shù)值類(lèi)型
interval:分桶間距
min_doc_count:最少文檔數(shù)桶過(guò)濾,只有不少于這么多文檔的桶才會(huì)返回
extended_bounds:范圍擴(kuò)展
order:對(duì)桶排序,如果 histogram 聚合有一個(gè)權(quán)值聚合類(lèi)型的"直接"子聚合,那么排序可以使用子聚合中的結(jié)果
offset:桶邊界位移,默認(rèn)從0開(kāi)始
keyed:hash結(jié)構(gòu)返回,默認(rèn)以數(shù)組形式返回每一個(gè)桶
missing:配置缺省默認(rèn)值
{
??? "aggs" : {
??????? "prices" : {
??????????? "histogram" : {
??????????????? "field" : "price",
??????????????? "interval" : 50,
??????????????? "min_doc_count" : 1,
??????????????? "extended_bounds" : {
??????????????????? "min" : 0,
??????????????????? "max" : 500
??????????????? },
??????????????? "order" : { "_count" : "desc" },
??????????????? "keyed":true,
??????????????? "missing":0
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Data Histogram 聚合(multi-bucket)
日期直方圖聚合——基于日期類(lèi)型,以【日期間隔】來(lái)桶分聚合。

可用的時(shí)間間隔類(lèi)型為:

year、quarter、month、week、day、hour、minute、second
其中,除了year、quarter 和 month,其余可用小數(shù)形式。
參數(shù):

field:字段,必須為數(shù)值類(lèi)型
interval:分桶間距
format:定義日期的格式,配置后會(huì)返回一個(gè) key_as_string 的字符串類(lèi)型日期(默認(rèn)只有key)
time_zone:定義時(shí)區(qū),用作時(shí)間值的調(diào)整
offset:桶邊界位移,默認(rèn)從0開(kāi)始
missing:配置缺省默認(rèn)值
{
??? "aggs" : {
??????? "articles_over_time" : {
??????????? "date_histogram" : {
??????????????? "field" : "date",
??????????????? "interval" : "month",
??????????????? "format" : "yyyy-MM-dd",
??????????????? "time_zone": "+08:00"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
Range 聚合(multi-bucket)
范圍聚合——基于某個(gè)值(可以是 field 或 script),以【字段范圍】來(lái)桶分聚合。

范圍聚合包括 from 值,不包括 to 值(區(qū)間前閉后開(kāi))。

參數(shù):

ranges:配置區(qū)間,數(shù)組,每一個(gè)元素是一個(gè)區(qū)間。例如:[{from:0}, {from:50, to:100}, {to:200}]
keyed:以一個(gè)關(guān)聯(lián)的唯一字符串作為鍵,以 HASH 形式返回,而不是默認(rèn)的數(shù)組
script:利用 script 執(zhí)行結(jié)果替代普通的 field 值進(jìn)行聚合。script可以用file給出,還可以對(duì)其它 field 進(jìn)行求值計(jì)算。
{
??? "aggs" : {
??????? "price_ranges" : {
??????????? "range" : {
??????????????? "field" : "price",
??????????????? "ranges" : [?????????????????????? //包含 3 個(gè)桶
??????????????????? { "to" : 50 },
??????????????????? { "from" : 50, "to" : 100 },
??????????????????? { "from" : 100 }
??????????????? ],
??????????????? "keyed" : true
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Date Range 聚合(multi-bucket)
日期范圍聚合,基于日期類(lèi)型的值,以【日期范圍】來(lái)桶分聚合。

日期范圍可以用各種 Date Math 表達(dá)式。

同樣的,包括 from 的值,不包括 to 的值。

參數(shù):

format:定義日期格式,配置后會(huì)返回一個(gè) [to/from]_as_string 的字符串類(lèi)型日期,默認(rèn)是 to/from 的數(shù)值表示。
{
??? "aggs": {
??????? "range": {
??????????? "date_range": {
??????????????? "field": "date",
??????????????? "format": "MM-yyy",????????????? ?
??????????????? "ranges": [??????????????????????????? //包含 3 個(gè)桶
??????????????????? { "to": "now-10M/M" },
??????????????????? { "from": "now-10M/M" },
??????????????????? {"from":"1970-1-1", "to":"2000-1-1"}
??????????????? ]
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
terms 聚合(multi-bucket)
terms是一個(gè)分組聚合,其作用與關(guān)系型數(shù)據(jù)庫(kù)中相同。

默認(rèn)返回順序是按照文檔個(gè)數(shù)多少排序。

當(dāng)不返回所有 buckets 的情況,文檔個(gè)數(shù)可能不準(zhǔn)確

參數(shù):

size:size用來(lái)定義需要返回多個(gè) buckets(防止太多),默認(rèn)會(huì)全部返回。(注意,如果只返回部分buckets,統(tǒng)計(jì)的文檔個(gè)數(shù)不一定準(zhǔn)確(每個(gè)分片各自的top size個(gè))。size 越大,count 會(huì)越精確。)
order:排序方式
min_doc_count:只返回文檔個(gè)數(shù)不小于該值的 buckets
script:用基本來(lái)生成詞元
include:包含過(guò)濾
exclude:排除過(guò)濾
execution_hint:
collect_mode:
missing:配置缺省默認(rèn)值
GET /lib4/items/_search
{
??? "size": 0,
??? "aggs": {
??????? "price_of_by": {
??????????? "terms": {
??????????????? "field": "price"
??????????? }
??????? }
??? }
}

# 對(duì)那些有唱歌興趣的用戶(hù)按年齡分組
GET /lib3/user/_search
{
??? "query": {
??????? "match": {
??????????? "interests": "changge"
??????? }
??? },
??? "size": 0,
??? "aggs": {
??????? "agg_group_by": {
??????????? "field": "age",
??????????? "order": {
??????????????? "avg_of_age": "desc"
??????????? }
??????? },
??????? "aggs": {
??????????? "avg_of_age": {
??????????????? "age": {
??????????????????? "field": "age"
??????????????? }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Filters 聚合(multi-bucket)
多過(guò)濾聚合,基于多個(gè)過(guò)濾條件,來(lái)對(duì)當(dāng)前文檔進(jìn)行【過(guò)濾】的聚合,每個(gè)過(guò)濾都包含所有滿(mǎn)足它的文檔(多個(gè)bucket中可能重復(fù))。

參數(shù):

filters: 配置過(guò)濾條件,支持 HASH 或 數(shù)組格式
other_bucket: 是否計(jì)算不滿(mǎn)足任何匹配條件的文檔
other_bucket_key: 作為不匹配所有過(guò)濾條件的文檔的 bucket 名稱(chēng)
{
? "aggs" : {
??? "messages" : {
????? "filters" : {
??????? "other_bucket_key": "other_messages",??????????????? //不在過(guò)濾條件范圍內(nèi)的文檔都?xì)w屬于 other_messages 桶
??????? "filters" : {??????????????????????????????????????? //過(guò)濾條件
????????? "errors" :?? { "term" : { "body" : "error"?? }},? ?
????????? "warnings" : { "term" : { "body" : "warning" }}
??????? }
????? },
????? "aggs" : {
??????? "monthly" : {
????????? "histogram" : {
??????????? "field" : "timestamp",
??????????? "interval" : "1M"
????????? }
??????? }
????? }
??? }
? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Filter 聚合(single-bucket)
過(guò)濾聚合,基于一個(gè)條件,來(lái)對(duì)當(dāng)前的文檔進(jìn)行過(guò)濾的聚合。

{
??? "aggs" : {
??????? "red_products" : {
??????????? "filter" : { "term": { "color": "red" } },
??????????? "aggs" : {
??????????????? "avg_price" : { "avg" : { "field" : "price" } }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
IPv4 Range 聚合(multi-bucket)
IP4聚合——基于一個(gè) IPv4 字段,對(duì)文檔進(jìn)行【IPv4范圍】的桶分聚合。

和 Range Aggregation 類(lèi)似,只是應(yīng)用字段必須是 IPv4 數(shù)據(jù)類(lèi)型。

{
??? "aggs" : {
??????? "ip_ranges" : {
??????????? "ip_range" : {
??????????????? "field" : "ip",
??????????????? "ranges" : [??????????????????????????????? //包含 3 個(gè)桶,各個(gè)桶之間可能有文檔重復(fù)
??????????????????? { "to" : "10.0.0.5" },
??????????????????? { "from" : "10.0.0.5" },
??????????????????? { "from":"1.1.1.1", "to" : "10.0.0.5" },
??????????????? ]
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Nested 聚合(single-bucket)
嵌套類(lèi)型聚合,基于嵌套(nested)數(shù)據(jù)類(lèi)型,把該【嵌套類(lèi)型的信息】聚合到單個(gè)桶里,然后就可以對(duì)嵌套類(lèi)型做進(jìn)一步的聚合操作。

// resellers 是一個(gè)嵌套類(lèi)型
{
??? ...
??? "product" : {
??????? "properties" : {
??????????? "resellers" : {
??????????????? "type" : "nested",
??????????????? "properties" : {
??????????????????? "name" : { "type" : "string" },
??????????????????? "price" : { "type" : "double" }
??????????????? }
??????????? }
??????? }
??? }
}
// 對(duì) nested 對(duì)象里面的信息做其它聚合操作
{
??? "query" : {
??????? "match" : { "name" : "led tv" }
??? },
??? "aggs" : {
??????? "resellers" : {
??????????? "nested" : {?????????????????????????? //"嵌套類(lèi)型聚合"把所有嵌套信息都包含在單一的桶里,以供進(jìn)一步處理
??????????????? "path" : "resellers"
??????????? },
??????????? "aggs" : {
??????????????? "min_price" : { "min" : { "field" : "resellers.price" } }?? //對(duì)嵌套類(lèi)型聚合輸出的桶做進(jìn)一步處理,這里是計(jì)算其 price 的 average
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
管道聚合
管道聚合處理的對(duì)象是其它聚合的輸出(桶或者桶的某些權(quán)值),而不是直接針對(duì)文檔。

管道聚合的作用是為輸出增加一些有用信息。

管道聚合大致分為兩類(lèi):

parent
此類(lèi)聚合的"輸入"是其【父聚合】的輸出,并對(duì)其進(jìn)行進(jìn)一步處理。一般不生成新的桶,而是對(duì)父聚合桶信息的增強(qiáng)。

sibling
此類(lèi)聚合的輸入是其【兄弟聚合】的輸出。并能在同級(jí)上計(jì)算新的聚合。

管道聚合通過(guò) buckets_path 參數(shù)指定他們要進(jìn)行聚合計(jì)算的權(quán)值對(duì)象,buckets_path 參數(shù)有其自己的使用語(yǔ)法。

管道聚合不能包含子聚合,但是某些類(lèi)型的管道聚合可以鏈?zhǔn)绞褂?#xff08;比如計(jì)算導(dǎo)數(shù)的導(dǎo)數(shù))。

bucket_path語(yǔ)法
聚合分隔符 ==> “>”,指定父子聚合關(guān)系,如:“my_bucket>my_stats.avg”

權(quán)值分隔符 ==> “.”,指定聚合的特定權(quán)值

聚合名稱(chēng) ==> ,直接指定聚合的名稱(chēng)

權(quán)值 ==> ,直接指定權(quán)值

完整路徑 ==> agg_name[> agg_name]*[. metrics] ,綜合利用上面的方式指定完整路徑

特殊值 ==> “_count”,輸入的文檔個(gè)數(shù)

特殊情況
要進(jìn)行 pipeline aggregation 聚合的對(duì)象名稱(chēng)或權(quán)值名稱(chēng)包含小數(shù)點(diǎn)
“buckets_path”: “my_percentile[99.9]”
處理對(duì)象中包含空桶(無(wú)文檔的桶分)
參數(shù) gap_policy,可選值有 skip、insert_zeros
Avg Bucket 聚合(sibliing)
桶均值聚合,基于兄弟聚合的某個(gè)權(quán)值,求所有桶的權(quán)值均值。

用于計(jì)算的兄弟聚合必須是多桶聚合。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

參數(shù):

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
{
??? "aggs" : {
??????? "sales_per_month" : {
??????????? "date_histogram" : {
??????????????? "field" : "date",
??????????????? "interval" : "month"
??????????? },
??????????? "aggs": {
??????????????? "sales": {
??????????????????? "sum": {
??????????????????????? "field": "price"
??????????????????? }
??????????????? }
??????????? }
??????? },
??????? "avg_monthly_sales": {
??????????? "avg_bucket": {???????????? //對(duì)所有月份的銷(xiāo)售總 sales 求平均值
??????????????? "buckets_path": "sales_per_month>sales"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Derivative 聚合(parent)
求導(dǎo)聚合,基于父聚合(只能是histogram或date_histogram類(lèi)型)的某個(gè)權(quán)值,對(duì)權(quán)值求導(dǎo)。

用于求導(dǎo)的權(quán)值必須是數(shù)值類(lèi)型。

封閉直方圖(histogram)聚合的 min_doc_count 必須是 0。

參數(shù):

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
{
??? "aggs" : {
??????? "sales_per_month" : {
??????????? "date_histogram" : {
??????????????? "field" : "date",
??????????????? "interval" : "month"
??????????? },
??????????? "aggs": {
??????????????? "sales": {
??????????????????? "sum": {
??????????????????????? "field": "price"
??????????????????? }
??????????????? },
??????????????? "sales_deriv": {?????? //對(duì)每個(gè)月銷(xiāo)售總和 sales 求導(dǎo)
??????????????????? "derivative": {
??????????????????????? "buckets_path": "sales"? //同級(jí),直接用 metric 值
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Max Bucket 聚合(sibling)
桶最大值聚合,基于兄弟聚合的某個(gè)權(quán)值,輸出權(quán)值最大的那一個(gè)桶。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

用于計(jì)算的兄弟聚合必須是多桶聚合類(lèi)型。

參數(shù):

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
Min Bucket 聚合(sibling)
桶最小值聚合,基于兄弟聚合的某個(gè)權(quán)值,輸出權(quán)值最小的一個(gè)桶。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

用于計(jì)算的兄弟聚合必須是多桶聚合類(lèi)型。

參數(shù)

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
Sum Buchet 聚合(sibling)
桶求和聚合,基于兄弟聚合的權(quán)值,對(duì)所有桶的權(quán)值求和。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

用于計(jì)算的兄弟聚合必須是多桶聚合類(lèi)型。

參數(shù)

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
{
??? "aggs" : {
??????? "sales_per_month" : {
??????????? "date_histogram" : {
??????????????? "field" : "date",
??????????????? "interval" : "month"
??????????? },
??????????? "aggs": {
??????????????? "sales": {
??????????????????? "sum": {
??????????????????????? "field": "price"
??????????????????? }
??????????????? }
??????????? }
??????? },
??????? "max_monthly_sales": {??????? //輸出兄弟聚合 sales_per_month 的每月銷(xiāo)售總和 sales 的最大一個(gè)桶
??????????? "max_bucket": {
??????????????? "buckets_path": "sales_per_month>sales"
??????????? }
??????? },
??????? "min_monthly_sales": {???????? //輸出兄弟聚合 sales_per_month 的每月銷(xiāo)售總和 sales 的最小一個(gè)桶
??????????? "min_bucket": {
??????????????? "buckets_path": "sales_per_month>sales"
??????????? }
??????? },
??????? "sum_monthly_sales": {???????? //輸出兄弟聚合 sales_per_month 的每月銷(xiāo)售總和 sales 的最小一個(gè)桶
??????????? "sum_bucket": {
??????????????? "buckets_path": "sales_per_month>sales"
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Stats Bucket 聚合(sibling)
桶統(tǒng)計(jì)信息聚合,基于兄弟聚合的某個(gè)權(quán)值,對(duì)【桶的信息】進(jìn)行一些統(tǒng)計(jì)學(xué)運(yùn)算(總計(jì)多少個(gè)桶、所有桶中該權(quán)值的最大值、最小等)。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

用于計(jì)算的兄弟聚合必須是多桶聚合類(lèi)型。

參數(shù)

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
{
??? "aggs" : {
??????? "sales_per_month" : {
??????????? "date_histogram" : {
??????????????? "field" : "date",
??????????????? "interval" : "month"
??????????? },
??????????? "aggs": {
??????????????? "sales": {
??????????????????? "sum": {
??????????????????????? "field": "price"
??????????????????? }
??????????????? }
??????????? }
??????? },
??????? "stats_monthly_sales": {?????????????? // 對(duì)父聚合的每個(gè)桶(每月銷(xiāo)售總和)的一些基本信息進(jìn)行聚合
??????????? "stats_bucket": {
??????????????? "buckets_paths": "sales_per_month>sales"
??????????? }
??????? }
??? }
}
//輸出結(jié)果
{
?? "aggregations": {
????? "sales_per_month": {
???????? "buckets": [
??????????? {
?????????????? "key_as_string": "2015/01/01 00:00:00",
?????????????? "key": 1420070400000,
?????????????? "doc_count": 3,
?????????????? "sales": {
????????????????? "value": 550
?????????????? }
??????????? },
??????????? {
?????????????? "key_as_string": "2015/02/01 00:00:00",
?????????????? "key": 1422748800000,
?????????????? "doc_count": 2,
?????????????? "sales": {
????????????????? "value": 60
?????????????? }
??????????? },
??????????? {
?????????????? "key_as_string": "2015/03/01 00:00:00",
?????????????? "key": 1425168000000,
?????????????? "doc_count": 2,
?????????????? "sales": {
????????????????? "value": 375
?????????????? }
??????????? }
???????? ]
????? },
????? "stats_monthly_sales": {??????? //注意,統(tǒng)計(jì)的是桶的信息
???????? "count": 3,
???????? "min": 60,
???????? "max": 550,
???????? "avg": 328.333333333,
???????? "sum": 985
????? }
?? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
** Extended Stats Bucket 聚合(sibling)**
擴(kuò)展桶統(tǒng)計(jì)聚合,基于兄弟聚合的某個(gè)權(quán)值,對(duì)【桶信息】進(jìn)行一系列統(tǒng)計(jì)學(xué)計(jì)算(比普通的統(tǒng)計(jì)聚合多了一些統(tǒng)計(jì)值)。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

用于計(jì)算的兄弟聚合必須是多桶聚合類(lèi)型。

參數(shù)

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
sigma:偏差顯示位置(above/below)
** Percentiles Bucket 聚合(sibling)**
桶百分比聚合,基于兄弟聚合的某個(gè)權(quán)值,計(jì)算權(quán)值的百分百。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

用于計(jì)算的兄弟聚合必須是多桶聚合類(lèi)型。

對(duì)百分百的計(jì)算是精確的(不像Percentiles Metric聚合是近似值),所以可能會(huì)消耗大量?jī)?nèi)存

參數(shù):

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
percents:需要計(jì)算的百分百列表(數(shù)組形式)
Moving Average 聚合(parent)
窗口平均值聚合,基于已經(jīng)排序過(guò)的數(shù)據(jù),計(jì)算出處在當(dāng)前出口中數(shù)據(jù)的平均值。

比如窗口大小為 5 ,對(duì)數(shù)據(jù) 1—10 的部分窗口平均值如下:

(1 + 2 + 3 + 4 + 5) / 5 = 3
(2 + 3 + 4 + 5 + 6) / 5 = 4
(3 + 4 + 5 + 6 + 7) / 5 = 5
參數(shù):

buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
window:窗口大小
model:移動(dòng)模型
minimize:
settings:


{
??? "the_movavg":{
??????? "moving_avg":{
??????????? "buckets_path": "the_sum",
??????????? "window" : 30,
??????????? "model" : "simple"
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
Cumulative Sum 聚合(parent)
累計(jì)和聚合,基于父聚合(只能是histogram或date_histogram類(lèi)型)的某個(gè)權(quán)值,對(duì)權(quán)值在每一個(gè)桶中求所有之前的桶的該值累計(jì)的和。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

封閉直方圖(histogram)聚合的 min_doc_count 必須是 0。

參數(shù):

buckets_path:用于計(jì)算均值的權(quán)值路徑
format:該聚合的輸出格式定義
{
??? "aggs" : {
??????? "sales_per_month" : {
??????????? "date_histogram" : {
??????????????? "field" : "date",
??????????????? "interval" : "month"
??????????? },
??????????? "aggs": {
??????????????? "sales": {
??????????????????? "sum": {
??????????????????????? "field": "price"
??????????????????? }
??????????????? },
??????????????? "cumulative_sales": {
??????????????????? "cumulative_sum": {
??????????????????????? "buckets_path": "sales"
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
}
//輸出
{
?? "aggregations": {
????? "sales_per_month": {
???????? "buckets": [
??????????? {
?????????????? "key_as_string": "2015/01/01 00:00:00",
?????????????? "key": 1420070400000,
?????????????? "doc_count": 3,
?????????????? "sales": {
????????????????? "value": 550
?????????????? },
?????????????? "cumulative_sales": {
????????????????? "value": 550??????????????? //總計(jì) sales = 550
?????????????? }
??????????? },
??????????? {
?????????????? "key_as_string": "2015/02/01 00:00:00",
?????????????? "key": 1422748800000,
?????????????? "doc_count": 2,
?????????????? "sales": {
????????????????? "value": 60
?????????????? },
?????????????? "cumulative_sales": {
????????????????? "value": 610?????????????? //總計(jì) sales = 550 + 60
?????????????? }
??????????? },
??????????? ...
???????? ]
????? }
?? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
** Bucket Script 聚合(parent)**
桶腳本聚合,基于父聚合的【一個(gè)或多個(gè)權(quán)值】,對(duì)這些權(quán)值通過(guò)腳本進(jìn)行運(yùn)算。

用于計(jì)算的父聚合必須是多桶聚合。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

執(zhí)行腳本必須要返回?cái)?shù)值型結(jié)果。

參數(shù)

script:用于計(jì)算的腳本,腳本可以是 inline,也可以是 file,還可以是 Scripting 指定的
buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義
{
??? "aggs" : {
??????? "sales_per_month" : {
??????????? "date_histogram" : {
??????????????? "field" : "date",
??????????????? "interval" : "month"
??????????? },
??????????? "aggs": {
??????????????? "total_sales": {
??????????????????? "sum": {
??????????????????????? "field": "price"
??????????????????? }
??????????????? },
??????????????? "t-shirts": {
????????????????? "filter": {
??????????????????? "term": {
????????????????????? "type": "t-shirt"
??????????????????? }
????????????????? },
????????????????? "aggs": {
??????????????????? "sales": {
????????????????????? "sum": {
??????????????????????? "field": "price"
????????????????????? }
??????????????????? }
????????????????? }
??????????????? },
??????????????? "t-shirt-percentage": {
??????????????????? "bucket_script": {
??????????????????????? "buckets_path": {??????????????????? //對(duì)兩個(gè)權(quán)值進(jìn)行計(jì)算
????????????????????????? "tShirtSales": "t-shirts>sales",
????????????????????????? "totalSales": "total_sales"
??????????????????????? },
??????????????????????? "script": "tShirtSales / totalSales * 100"
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Bucket Selector 聚合(parent)
桶選擇器聚合,基于父聚合的【一個(gè)或多個(gè)權(quán)值】,通過(guò)腳本對(duì)權(quán)值進(jìn)行計(jì)算,并決定父聚合的哪些桶需要保留,其余的將被丟棄。

用于計(jì)算的父聚合必須是多桶聚合。

用于計(jì)算的權(quán)值必須是數(shù)值類(lèi)型。

運(yùn)算的腳本必須是返回 boolean 類(lèi)型,如果腳本是腳本表達(dá)式形式給出,那么允許返回?cái)?shù)值類(lèi)型。

參數(shù):

script:用于計(jì)算的腳本,腳本可以是 inline,也可以是 file,還可以是 Scripting 指定的
buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
{
??? "bucket_selector": {
??????? "buckets_path": {
??????????? "my_var1": "the_sum",
??????????? "my_var2": "the_value_count"
??????? },
??????? "script": "my_var1 > my_var2"??? // true 則保留該桶;false 則丟棄
??? }
}
1
2
3
4
5
6
7
8
9
** Serial Differencing 聚合(parent)**
串行差分聚合,基于父聚合(只能是histogram或date_histogram類(lèi)型)的某個(gè)權(quán)值,對(duì)權(quán)值值進(jìn)行差分運(yùn)算,(取時(shí)間間隔,后一刻的值減去前一刻的值:f(X) = f(Xt) – f(Xt-n))。

用于計(jì)算的父聚合必須是多桶聚合。

參數(shù)

lag:滯后間隔(比如lag=7,表示每次從當(dāng)前桶的值中減去其前面第7個(gè)桶的值)
buckets_path:用于計(jì)算均值的權(quán)值路徑
gap_policy:空桶處理策略(skip/insert_zeros)
format:該聚合的輸出格式定義


{
?? "aggs": {
????? "my_date_histo": {???????????????? ?
???????? "date_histogram": {
??????????? "field": "timestamp",
??????????? "interval": "day"
???????? },
???????? "aggs": {
??????????? "the_sum": {
?????????????? "sum": {
????????????????? "field": "lemmings"??? ?
?????????????? }
??????????? },
??????????? "thirtieth_difference": {
?????????????? "serial_diff": {?????????????? ?
????????????????? "buckets_path": "the_sum",
????????????????? "lag" : 30??????????????????????? //差分間隔為 30 day
?????????????? }
??????????? }
???????? }
????? }
?? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
復(fù)合查詢(xún)
使用bool查詢(xún)
接受以下參數(shù):

must:文檔必須匹配設(shè)定條件才能被包含進(jìn)來(lái)
must_not:文檔必須不匹配設(shè)定條件才能被包含進(jìn)來(lái)
should:如果滿(mǎn)足語(yǔ)句中的任意語(yǔ)句,將增加_source,否則,無(wú)任何影響。主要用于修正每個(gè)文檔的相關(guān)性得分
filter:必須匹配,但以不評(píng)分、過(guò)濾模式來(lái)進(jìn)行。這些語(yǔ)句對(duì)評(píng)分沒(méi)有貢獻(xiàn),只是根據(jù)過(guò)濾標(biāo)準(zhǔn)來(lái)排除或包含文檔
相關(guān)性得分是如何組合的?
每一個(gè)子查詢(xún)都獨(dú)自的計(jì)算文檔的相關(guān)性得分,bool查詢(xún)將對(duì)計(jì)算出的等分進(jìn)行合并,然后返回一個(gè)代表整個(gè)布爾操作的等分。

下面的查詢(xún)用于查找title字段匹配 how to make millions 并且不被標(biāo)識(shí)為 spam的文檔。那些被標(biāo)識(shí)為 starred 或在2014之后的文檔,將比另外那些文檔擁有更高的排名。如果 兩者 都滿(mǎn)足,那么它的排名將更高。

GET /lib3/user/_search
{
??? "query": {
??????? "bool": {
??????????? "must": {
??????????????? "match": {
??????????????????? "interests": "changge"
??????????????? }
??????????? },
??????????? "must_not": {
??????????????? "match": {
??????????????????? "interests": "lvyou"
??????????????? }
??????????? },
??????????? "should": [
??????????????? {
??????????????????? "match": {
??????????????????????? "address": "bei jing"
??????????????????? }
??????????????? },
??????????????? {
??????????????????? "range": {
??????????????????????? "birthday": {
??????????????????????????? "gte": "1996-01-01"
??????????????????????? }
??????????????????? }
??????????????? }
??????????? ]
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
如果沒(méi)有 must 語(yǔ)句,那么至少需要能夠匹配其中的一條 should 語(yǔ)句。但如果存在至少一條 must 語(yǔ)句,則對(duì) should 語(yǔ)句的匹配沒(méi)有要求。如果不想因?yàn)槲臋n的時(shí)間影響得分,可以用 filter 語(yǔ)句來(lái)重寫(xiě)前面的例子

# 可以在bool內(nèi)嵌套filter過(guò)濾
GET /lib3/user/_search
{
??? "query": {
??????? "bool": {
??????????? "must": {
??????????????? "match": {
??????????????????? "interests": "changge"
??????????????? }
??????????? },
??????????? "must_not": {
??????????????? "match": {
??????????????????? "interests": "lvyou"
??????????????? }
??????????? },
??????????? "should": [
??????????????? {
??????????????????? "match": {
??????????????????????? "address": "bei jing"
??????????????????? }
??????????????? }
??????????? ],
??????????? "filter": {
??????????????? "range": {
??????????????????? "birthday": {
??????????????????????? "gte": "1996-01-01"
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
通過(guò)將 range 查詢(xún)移動(dòng)到 filter 語(yǔ)句中,我們將它轉(zhuǎn)成不評(píng)分的查詢(xún),將不在影響文檔的相關(guān)性排名,由于它現(xiàn)在是一個(gè)不評(píng)分的查詢(xún),可以使用各種對(duì) filter 查詢(xún)有效的優(yōu)化手段來(lái)提升性能。

bool 查詢(xún)本身也可以被用作不評(píng)分的查詢(xún),簡(jiǎn)單的將它放置到 filter 語(yǔ)句中并在內(nèi)部構(gòu)建布爾邏輯

# 在bool內(nèi)嵌套fliter,在fliter下嵌套另一個(gè)bool作為過(guò)濾條件
GET /lib3/user/_search
{
??? "query": {
??????? "bool": {
??????????? "must": {
??????????????? "match": {
??????????????????? "interests": "changge"
??????????????? }
??????????? },
??????????? "must_not": {
??????????????? "match": {
??????????????????? "interests": "lvyou"
??????????????? }
??????????? },
??????????? "should": [
??????????????? {
??????????????????? "match": {
??????????????????????? "address": "bei jing"
??????????????????? }
??????????????? }
??????????? ],
??????????? "filter": {
??????????????? "bool": {
??????????????????? "must": [
??????????????????????? {
??????????????????????????? "range": {
??????????????????????????????? "birthday": {
??????????????????????????????????? "gte": "1990-01-01"
??????????????????????????????? }
??????????????????????????? }
??????????????????????? },
??????????????????????? {
??????????????????????????? "range": {
??????????????????????????????? "age": {
??????????????????????????????????? "lte": 30
??????????????????????????????? }
??????????????????????????? }
??????????????????????? }
??????????????????? ],
??????????????????? "must_not": [
??????????????????????? {
??????????????????????????? "term": {
??????????????????????????????? "age": "29"
??????????????????????????? }
??????????????????????? }
??????????????????? ]
??????????????? }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
constant_score查詢(xún)
constant_score將一個(gè)不變的量評(píng)分應(yīng)用于所有匹配的文檔,被經(jīng)常用于你只需要執(zhí)行一個(gè) fliter 而沒(méi)有其他查詢(xún)(例如:評(píng)分查詢(xún))的情況下。
請(qǐng)求結(jié)構(gòu)如下:

{
?? ?"constant_score": {
?? ??? ?"filter": {
?? ??? ??? ?"term": {
?? ??? ??? ??? ?"category": "ebooks"
?? ??? ??? ?}
?? ??? ?}
?? ?}
}
1
2
3
4
5
6
7
8
9
示例:

GET /lib4/items/_search
{
??? "query": {
??????? "constant_score": {
??????????? "filter": {
??????????????? "term": {
??????????????????? "interests": "changge"
??????????????? }
??????????? }
??????? }
??? }
}
1
2
3
4
5
6
7
8
9
10
11
12
term 查詢(xún)被放置在constant_score中,轉(zhuǎn)成不評(píng)分的 filter。這種方式可以用來(lái)取代只有 filter 語(yǔ)句的 bool 查詢(xún)。
————————————————
版權(quán)聲明:本文為CSDN博主「迷途碼界」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zx711166/article/details/81906881

總結(jié)

以上是生活随笔為你收集整理的(转)Elasticsearch 聚合查询、桶聚合、管道聚合及复合查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

天天想夜夜操 | 综合av在线 | 日韩一级成人av | 久久久久国产精品免费 | 亚洲精品免费看 | 亚洲精品乱码久久久久久久久久 | 香蕉精品视频在线观看 | 国产高清在线精品 | 久草五月 | 日韩高清国产精品 | 精品在线观看一区二区 | 操操操夜夜操 | 日韩黄在线观看 | 久久久高清一区二区三区 | 日日爽 | 国产精品99久久久精品免费观看 | 黄色毛片一级片 | 正在播放 久久 | 欧美视频xxx| 韩国精品福利一区二区三区 | 天天插综合 | 国产精品一区二区久久 | 久久免费大片 | 欧美午夜寂寞影院 | 97国产大学生情侣白嫩酒店 | 久久观看免费视频 | 五月激情综合婷婷 | 久久中国精品 | 二区三区精品 | 一区二区免费不卡在线 | 91看毛片 | 中文字幕在线观看的网站 | www.干| 色吊丝在线永久观看最新版本 | 国际精品久久久 | 久久综合色天天久久综合图片 | www.夜色321.com| 黄色一级在线观看 | 丁香九月激情综合 | 国产短视频在线播放 | 色资源在线观看 | 国产免费嫩草影院 | 久久国产精品免费 | 免费男女羞羞的视频网站中文字幕 | 色搞搞| 日韩中字在线观看 | 精品国内自产拍在线观看视频 | 青青河边草免费视频 | 国产第一福利网 | 成人黄色在线电影 | 国产精品原创在线 | www五月天com | 99色精品视频 | a久久久久久 | 人人干97 | 国产精品综合久久久 | 国产精品日韩在线播放 | 国产精品美女久久久久久 | 久久一及片 | 人人干97 | 四虎成人精品永久免费av九九 | 国语精品免费视频 | 亚洲激色 | 少妇bbb好爽 | 国产又粗又猛又爽又黄的视频免费 | www.在线观看视频 | 99精品久久久久久久久久综合 | 精品女同一区二区三区在线观看 | 天堂网一区二区 | 免费看黄在线 | 欧美日韩国产二区 | 天天色天天爱天天射综合 | 亚洲成人高清在线 | 国产精品毛片一区二区在线看 | 欧美福利视频一区 | av黄色免费网站 | 欧美一区日韩一区 | 午夜视频一区二区三区 | 欧美日韩二区在线 | 美女黄网站视频免费 | 9i看片成人免费看片 | 国产999精品久久久久久麻豆 | a黄色大片 | 日韩欧美99 | 偷拍区另类综合在线 | 成人黄色免费观看 | 久久久久 | 91精品在线免费视频 | www.狠狠色 | 久久精品爱视频 | 亚洲精品一区二区在线观看 | 欧美一级性生活视频 | 免费在线黄色av | 日韩精品视频久久 | 国产91精品看黄网站在线观看动漫 | 久久精品国亚洲 | 激情综合色播五月 | 国产在线视频一区二区三区 | 久久高清av | 国模精品一区二区三区 | 99精品国产兔费观看久久99 | 91av免费看 | 成人精品99| 视频91在线 | 99在线热播精品免费 | 五月天中文在线 | 久久视频二区 | 99精品免费观看 | 五月激情姐姐 | 婷婷免费在线视频 | 国产精品影音先锋 | 久久精品综合一区 | 国产资源av | 欧美日韩中文国产一区发布 | 欧美一级免费高清 | 欧美精品中文 | 欧美综合在线视频 | 成年人免费看片 | 三级av在线播放 | 国产午夜一区二区 | 国产精品v欧美精品v日韩 | 激情五月播播久久久精品 | 日韩精品不卡在线观看 | 黄色app网站在线观看 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 午夜精品久久久久久99热明星 | 91视频在线国产 | 国产精品密入口果冻 | 99精品国产在热久久 | 国产精品美女在线 | 婷婷丁香综合 | 91资源在线观看 | 国产精品一区二区久久国产 | 久久国产网站 | 久久精品视频网址 | 国产欧美综合视频 | 日韩国产精品久久 | 亚洲伦理电影在线 | 欧美成人一二区 | 亚洲性少妇性猛交wwww乱大交 | 日韩av一区二区三区 | 日韩电影在线视频 | 91福利社区在线观看 | 91插插影库 | 在线99视频 | 99日韩精品 | 五月天视频网 | 久久久久免费看 | 97电影手机版 | 亚洲三级在线播放 | 日韩在线字幕 | 亚洲精选久久 | 亚洲视频每日更新 | 精品欧美一区二区在线观看 | 丁香婷婷在线观看 | 91麻豆精品91久久久久同性 | 在线看成人片 | 久久99精品一区二区三区三区 | 在线导航福利 | 97夜夜澡人人爽人人免费 | 天天爽夜夜爽人人爽一区二区 | 精品视频资源站 | 在线你懂 | 中文字幕 二区 | 久草精品视频 | 亚洲精品美女免费 | 亚洲国产精品500在线观看 | 激情小说网站亚洲综合网 | 欧美日视频 | 久久久久成人精品免费播放动漫 | 在线观看免费高清视频大全追剧 | 国产精品99久久久久久小说 | 在线观看黄网站 | 亚洲黄色在线 | 亚洲精品www久久久久久 | 91精品久久久久久久99蜜桃 | japanese黑人亚洲人4k | av中文在线观看 | 在线观看久 | 国产精品久99 | 久久成年人网站 | 狂野欧美激情性xxxx欧美 | 天天搞天天干天天色 | 亚洲精品激情 | 亚洲资源片 | 特级毛片爽www免费版 | 日日爽夜夜爽 | 18做爰免费视频网站 | 97在线观看免费观看 | 日本黄色免费看 | 亚洲极色| 久久久久久免费 | 天天干天天拍天天操天天拍 | 日本性生活一级片 | 久久欧美在线电影 | 西西www4444大胆在线 | av中文字幕网址 | 日日夜夜国产 | 成人免费网视频 | 六月天综合网 | 国外调教视频网站 | 人人爽人人爽人人片av免 | 99精品视频免费观看视频 | 91免费日韩 | 99久久精品无码一区二区毛片 | 日韩欧美区 | 国产99久久久精品 | 久久久精品小视频 | 国内久久视频 | 国产九九九视频 | 99久久国产免费免费 | 欧美激情第八页 | 久久精品美女视频 | 国产精品9999久久久久仙踪林 | 亚洲综合成人在线 | 黄色av网站在线免费观看 | 中文字幕乱视频 | 久久伊人操 | 亚洲va天堂va欧美ⅴa在线 | 午夜在线免费观看视频 | 亚洲精品66| 国产精品久久久久久影院 | 在线观看国产一区 | 久久综合操 | 日韩免费一二三区 | 国产日韩中文字幕 | 精品999久久久| 青青草国产在线 | 亚洲欧美在线视频免费 | 国产a高清 | 美女在线免费视频 | 99色网站 | 欧美久久久久久久 | 摸阴视频| 日韩综合一区二区 | 一区二区三区四区五区在线 | 国产精品永久免费观看 | 亚洲a免费| 亚洲国产精品电影在线观看 | 色播五月激情五月 | 日日夜夜干 | 98超碰在线观看 | 一区二区不卡在线观看 | 成人黄色电影在线播放 | 亚洲一区二区三区毛片 | 久久久久久电影 | 日本aa在线 | 亚洲aⅴ免费在线观看 | 黄色网在线免费观看 | 视频在线99 | 在线观看国产中文字幕 | 亚洲狠狠丁香婷婷综合久久久 | 国产区精品在线观看 | 九九热精品国产 | 亚洲精品视频在线看 | 国产精品24小时在线观看 | 欧美日韩在线观看不卡 | 久久国色夜色精品国产 | 亚洲精品视频中文字幕 | 在线a亚洲视频播放在线观看 | 国产原创av在线 | 一区二区三区在线观看中文字幕 | 成人国产精品入口 | 国产一二三四在线观看视频 | 国产福利网站 | 日韩av成人在线观看 | 成人免费影院 | 久久婷婷国产色一区二区三区 | 亚洲免费av一区二区 | 亚洲精品av在线 | 中文字幕 在线 一 二 | 国产成人久久精品亚洲 | www婷婷 | 欧美激情综合色综合啪啪五月 | 五月天天在线 | 国产资源中文字幕 | 黄色在线视频网址 | 视频 国产区 | 欧美片网站yy | 91欧美精品 | 久久高清毛片 | 国产高清在线看 | 久草在线久 | 99热在线精品观看 | 国产精品久久久久久久久久久久久久 | 婷婷色综合网 | 天天操天天舔天天爽 | 一级片视频在线 | 欧美日韩99 | 91日韩精品一区 | 日韩精品一区二区三区在线视频 | 日日爽| 久久久久电影网站 | 91在线视频免费91 | 五月天婷婷综合 | 国产麻豆视频网站 | 欧美亚洲成人xxx | 国产精品wwwwww | 一级黄色片在线免费看 | 精品欧美日韩 | 射射色| 免费成人短视频 | 91黄色影视| 国产成人精品一区二区三区福利 | 亚洲色五月 | 97超碰在线资源 | 一级黄色毛片 | 久草网视频在线观看 | 最近日本韩国中文字幕 | 在线观看成人福利 | 欧美福利网址 | 国产精品高清在线 | 亚洲欧美国内爽妇网 | 久久久免费av | 91精品视频免费观看 | 青草视频在线免费 | 91av视频导航| 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 婷婷丁香花五月天 | 亚洲精品伦理在线 | 国产日本在线播放 | 亚洲精品国产精品国 | 区一区二在线 | 一区二区在线不卡 | 成人全视频免费观看在线看 | 国产九九精品视频 | 国产免费专区 | 日本一区二区免费在线观看 | 天天天天天天操 | 久久精品99精品国产香蕉 | 菠萝菠萝在线精品视频 | 国产精品综合久久久久 | 成人免费在线观看av | 欧美最猛性xxxxx免费 | 911香蕉 | a在线观看视频 | 久久精品一区二区 | av片无限看| 国产96视频 | 久艹在线观看视频 | 国产激情小视频在线观看 | 亚洲va天堂va欧美ⅴa在线 | 日韩在线| 欧美日在线| 91视频久久久久久 | 成人av午夜| av网站免费在线 | 一本一道久久a久久综合蜜桃 | 久久久久国产精品免费网站 | 日日夜夜亚洲 | 色99导航| 亚洲精品国产精品国自产 | 久久99国产精品 | 久久网站最新地址 | 亚洲日本va在线观看 | 免费看片网址 | 综合精品久久 | 日韩av电影中文字幕在线观看 | 黄色a大片| 亚洲国产精品激情在线观看 | 在线亚洲欧美日韩 | 国产一区av在线 | japanesefreesex中国少妇 | 国产视频欧美视频 | 黄色毛片一级 | 日韩网页| 中字幕视频在线永久在线观看免费 | 最新中文字幕视频 | 国产精品久久久久久久婷婷 | 伊人天堂网 | 日韩欧美电影在线观看 | 日本亚洲国产 | av东方在线 | 国产 视频 高清 免费 | 最新久久久| 日本在线视频一区二区三区 | 久久久久久久久久久影视 | 521色香蕉网站在线观看 | 美女视频又黄又免费 | 色播五月激情综合网 | 久热色超碰 | www.色午夜,com | 四虎影视精品成人 | www.福利| 天天天干天天天操 | 又爽又黄又无遮挡网站动态图 | 狠狠网站| 久久久久女人精品毛片九一 | 欧美一级在线观看视频 | 国产精品一区二区三区免费看 | 成人国产精品免费观看 | 国产精品6 | 色七七亚洲影院 | 国产乱对白刺激视频在线观看女王 | 97人人澡人人添人人爽超碰 | 欧美精品在线观看免费 | 久久深夜福利免费观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 欧美性成人 | 国产一区二区在线精品 | 亚洲va欧美va人人爽春色影视 | 亚洲激情视频 | av网站免费在线 | 日日夜夜网 | 精品在线观看国产 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产69久久久 | 91视频-88av| 99视频在线免费播放 | 99久久久精品 | 精品国偷自产国产一区 | 日韩精品一区二区三区丰满 | 在线观看免费黄色 | 婷婷日| 久久亚洲精品国产亚洲老地址 | 国产一级淫片免费看 | 精品国产乱码久久久久久浪潮 | 国产一区二区中文字幕 | 久久九九国产精品 | 成人禁用看黄a在线 | 欧美日韩破处 | 97超碰人人网 | 西西大胆啪啪 | 成人小视频在线观看免费 | 特级西西444www大胆高清无视频 | 亚洲精品av在线 | 久久伦理影院 | 在线视频久| 久久免费的视频 | 中文字幕成人在线观看 | 国产精品久久久久999 | 亚洲永久av | 精品亚洲免费 | 免费a v在线 | 日韩精品中文字幕在线 | 国产专区一 | 人人插超碰 | 91大神精品视频在线观看 | 国产精品日韩在线观看 | 日韩欧美视频在线免费观看 | 亚洲成人av片在线观看 | 超碰在线亚洲 | 视频在线观看一区 | 91精品视频一区 | 亚洲专区免费观看 | 国产资源在线播放 | 四虎国产视频 | 日韩国产欧美在线播放 | 日韩av免费网站 | 麻豆果冻剧传媒在线播放 | 91日韩在线视频 | 久久这里只有精品首页 | 亚洲精品免费在线播放 | 国产成人一区二区三区免费看 | 国产欧美久久久精品影院 | 亚洲一区日韩精品 | 激情欧美一区二区免费视频 | 免费看十八岁美女 | 三级a毛片 | 国产视频资源 | 久久久久久久久久国产精品 | av丝袜美腿| 国产日韩精品一区二区三区在线 | 欧美日韩在线视频观看 | 精品国产91亚洲一区二区三区www | 狠狠色狠狠综合久久 | 欧美一级性 | 一区免费观看 | 午夜电影中文字幕 | 国产精品一区在线观看你懂的 | 在线观看黄色的网站 | 国产99精品 | 国产精品18久久久久久vr | 国产成人精品一区在线 | 丁香久久激情 | 欧美国产高清 | 狠狠色伊人亚洲综合成人 | 午夜精品久久久久久久久久久 | 欧美精品三级在线观看 | 黄色www在线观看 | 国产一级性生活 | 亚洲干视频在线观看 | 毛片网站在线 | 免费黄色特级片 | 欧美不卡视频在线 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 91在线视频精品 | 亚洲精品视频网站在线观看 | 日韩黄色软件 | 色婷婷狠 | 精品99免费 | 奇米7777狠狠狠琪琪视频 | 黄色三级免费 | 欧美日韩高清不卡 | 国产色道 | 九九爱免费视频在线观看 | 毛片网站在线 | 久久综合九色综合久久久精品综合 | 欧美一二区视频 | 日韩久久久久久久久久久久 | 人人插超碰| 国产精品视频免费 | 久久精品7 | 免费日韩一区二区三区 | 日韩免费在线观看视频 | 国产精品原创av片国产免费 | 波多野结衣网址 | 精品黄色在线观看 | 在线免费观看视频一区二区三区 | 午夜精品婷婷 | 日本久久久影视 | 91网页版免费观看 | 2021国产视频 | 欧美日韩激情网 | 国产一级黄色电影 | 97香蕉超级碰碰久久免费软件 | 久久高清视频免费 | 精品久久1| 最近日韩中文字幕中文 | 国产精品ⅴa有声小说 | 久久天天操 | 很黄很污的视频网站 | 久久草在线视频国产 | 黄av免费 | 在线99视频 | 激情视频免费观看 | 九九免费在线看完整版 | 日韩精品一区二区在线观看视频 | 狠狠干婷婷色 | www.com久久久 | 国产精品手机看片 | 激情五月激情综合网 | 2021国产精品视频 | 91大神在线观看视频 | 人人插人人爱 | 免费在线国产视频 | 天天干,天天射,天天操,天天摸 | 日日夜夜精品 | 午夜aaaa| 精品免费在线视频 | 99久久精品费精品 | 午夜男人影院 | 久久成人国产精品免费软件 | 成片免费观看视频 | 99夜色| 国产精品在线看 | 久久国产精品二国产精品中国洋人 | 欧美日韩一区二区视频在线观看 | 久久久久久福利 | 美女福利视频网 | 色就色,综合激情 | 81国产精品久久久久久久久久 | 免费在线观看a v | 国产精品久久9 | www.天天综合 | 久久在线一区 | 中文字幕视频播放 | 黄色三级在线 | 色99导航| 国产精品区二区三区日本 | 国产在线一卡 | 中文在线中文资源 | 国产人成看黄久久久久久久久 | 国产网红在线观看 | 日韩精品一区二区三区水蜜桃 | 国产精品99在线播放 | 久久伦理网 | 久久久久看片 | 亚洲在线国产 | 亚洲天堂社区 | 国产理论一区二区三区 | 夜夜嗨av色一区二区不卡 | 婷婷丁香激情网 | 欧洲成人av| 91热爆视频 | 日日操天天操狠狠操 | 婷婷激情影院 | 在线观看网站你懂的 | av高清一区二区三区 | 伊人婷婷 | 精品国产成人在线影院 | 日日操天天操狠狠操 | 欧美日韩久久不卡 | 香蕉手机在线 | 亚洲黄色av | 在线亚洲精品 | 在线观看免费av片 | 欧美精品免费一区二区 | 国产精品k频道 | 亚洲做受高潮欧美裸体 | 欧美日韩在线观看不卡 | 久久激情日本aⅴ | 中国美女一级看片 | 婷婷五月在线视频 | 人人射人人爽 | 久久69精品| 99综合视频 | 2023av在线 | 日韩大片在线观看 | 亚洲午夜精品久久久久久久久 | 最近中文字幕久久 | 欧美激情精品久久久久久 | 不卡视频在线 | 日韩aⅴ视频 | 国产资源中文字幕 | 蜜臀久久99精品久久久无需会员 | 手机看国产毛片 | 免费v片 | 久久经典视频 | 久久久精品电影 | 一级黄色电影网站 | 成人黄色小说在线观看 | 国产一二三在线视频 | 亚洲精品女人久久久 | 久久精品看片 | 国产精品99精品 | 亚洲精品99久久久久中文字幕 | 欧美一区二区伦理片 | 婷婷新五月 | 色五月色开心色婷婷色丁香 | 伊人天堂av | 九九视频网站 | 久久久精品视频成人 | 日韩在线短视频 | 日韩免费视频在线观看 | 久久草| 亚洲男人天堂a | 日韩r级电影在线观看 | 看黄色91 | 美女黄网久久 | 国产在线高清 | 毛片基地黄久久久久久天堂 | 亚洲精品毛片一级91精品 | 在线免费日韩 | 97视频在线观看成人 | 色网站免费在线观看 | 精品一二三四视频 | 久久香蕉国产 | 国产精品不卡视频 | 国产电影黄色av | 婷婷久久久 | 日韩视频一二三区 | 91精品久久久久久久91蜜桃 | 国产精品热视频 | 天天操天天操天天操天天操天天操天天操 | 一级c片| 亚洲第一久久久 | 国产在线精品播放 | av中文字幕不卡 | 最近字幕在线观看第一季 | 中文字幕中文字幕在线中文字幕三区 | 欧美激情va永久在线播放 | 久久av影院 | 成人午夜精品福利免费 | 韩日精品在线观看 | 国产小视频在线看 | 亚洲国产影院av久久久久 | 久久久精品日本 | 精品视频久久久久久 | 亚洲一一在线 | 在线看的毛片 | 亚洲无人区小视频 | 国产理论一区二区三区 | 久久久婷| 黄色的网站在线 | 欧美激情视频一二三区 | 久久免费美女视频 | 欧美激情视频免费看 | 国内视频一区二区 | 中文字幕在线播放日韩 | 婷婷在线资源 | 欧美日本不卡高清 | 在线观看91久久久久久 | 久99热| 97视频中文字幕 | 免费a视频 | 亚洲精品黄色在线观看 | 欧美天天干 | 国产97色 | 亚洲乱码久久 | 91av免费观看 | 五月天伊人| 免费看的国产视频网站 | 久久精品网站视频 | 国产亚洲一区二区三区 | 综合久久一本 | 亚洲黄色精品 | 免费福利在线 | 激情久久影院 | 最近中文字幕在线中文高清版 | 视频在线99re| 色av网站 | 麻豆视频在线免费看 | 国产精品a级 | 久久免费视频8 | 国产夫妻自拍av | 91九色蝌蚪在线 | av一区二区三区在线观看 | 欧美一区二区三区激情视频 | 五月天婷婷综合 | 国产一区电影在线观看 | 夜夜躁日日躁狠狠躁 | 看毛片的网址 | 国产精品成人av在线 | 懂色av懂色av粉嫩av分享吧 | 国产精品久久久久久久免费大片 | 99国产一区二区三精品乱码 | 久久综合狠狠综合久久综合88 | 亚洲视频在线观看免费 | 久久少妇免费视频 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 午夜精品一区二区三区在线视频 | 国产麻豆精品久久一二三 | 超碰在线资源 | 久久 精品一区 | av片在线观看免费 | 成人毛片久久 | 激情久久久久久久久久久久久久久久 | 日本精品一区二区 | 天天干,天天插 | 午夜在线看片 | 婷婷五月在线视频 | 亚洲欧美日韩一二三区 | 人人爽影院 | 激情黄色av | 日韩在线高清免费视频 | 在线免费观看视频a | 精品国产aⅴ麻豆 | 日本高清免费中文字幕 | 在线看岛国av | 国产在线观看二区 | 成人三级av | 亚洲成人av影片 | 最新av免费在线观看 | 色干干| 亚洲精品在线免费播放 | 国产精品a成v人在线播放 | 亚洲精品免费在线观看 | 婷婷丁香五 | 欧美与欧洲交xxxx免费观看 | 伊人伊成久久人综合网站 | 在线观看av大片 | 在线看一级片 | 日本中文不卡 | 久久av网 | 国产欧美精品一区二区三区 | 久久黄色免费观看 | 日本不卡视频 | 午夜黄色大片 | 中文字幕一区二区三区四区久久 | 一区二区视频免费在线观看 | 国产视频69 | 亚洲激情一区二区三区 | 草久视频在线 | 国产精品男女视频 | 在线亚洲欧美日韩 | 青青河边草观看完整版高清 | 人人草人人做 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 91av视频免费在线观看 | 精品国产一区二区三区日日嗨 | a级黄色片视频 | 国产99视频在线观看 | 在线视频观看国产 | 在线观看91精品国产网站 | 91视频黄色 | 中文字幕在线一二 | 国产精品美女毛片真酒店 | av成人在线电影 | 国产精品高清在线观看 | 福利视频入口 | 亚洲视频精品在线 | 日韩精品视频在线观看免费 | 最新av免费在线 | 亚洲精品视频在线播放 | 欧美成人性战久久 | 国产精品视频一二三 | 国产精品免费小视频 | 91看片成人 | 一区二区精品视频 | 欧美精品久久久久久久久久 | 国产又粗又猛又色 | 国产在线更新 | 伊人夜夜| 亚洲黄色网络 | 国产精品高潮久久av | 国产精品男女视频 | 91人人人 | av色图天堂网 | 国产精品情侣视频 | 欧美一区二区三区四区夜夜大片 | 在线观看黄网 | 国产精品永久久久久久久久久 | 久久久久久99精品 | 国产欧美在线一区二区三区 | 在线观看国产福利片 | 国产精品免费久久久久影院仙踪林 | 亚洲成人欧美 | 亚洲精品福利在线 | 五月天com | 国产麻豆果冻传媒在线观看 | 日韩乱码在线 | av电影不卡在线 | 伊人天堂网 | 五月宗合网 | 超碰在线97观看 | 婷婷5月激情5月 | www色av| 日本91在线 | 免费中午字幕无吗 | 久久视频99 | 色在线中文字幕 | 欧美va天堂va视频va在线 | 国产精品久久久亚洲 | 欧美国产日韩一区二区三区 | 中文理论片 | 欧美日韩高清 | 91亚洲精品久久久蜜桃网站 | 91精品在线看 | 欧美在线18| 国产精品久久久久av免费 | 国产一级a毛片视频爆浆 | 超碰在线色| 久久经典国产 | 久久久久久高潮国产精品视 | 97在线观看免费高清完整版在线观看 | 福利一区二区三区四区 | 国产日韩欧美在线影视 | 国产精彩在线视频 | 精品电影一区二区 | 亚洲精品美女久久17c | 免费在线观看的av网站 | 国产精品视频999 | 久久久国产一区二区 | 在线观看一区视频 | 日韩在线视频在线观看 | 四虎影视精品永久在线观看 | 久草com | 免费91麻豆精品国产自产在线观看 | 国内精品中文字幕 | 国产亚洲视频在线观看 | 免费色网站| 操操操夜夜操 | 天天操网址 | 欧美激情第八页 | 97视频中文字幕 | 国产精品久久久久久妇 | 精品视频免费观看 | 中文字幕日韩精品有码视频 | 综合激情婷婷 | 精品国产伦一区二区三区观看方式 | 日本视频高清 | 欧美精品视| 91夜夜夜| av网站在线观看免费 | 99精品偷拍视频一区二区三区 | 国产成人精品一区二区三区网站观看 | 久久国产热 | 免费看一及片 | 午夜精品久久久 | 国产日韩视频在线播放 | 久久开心激情 | 天天躁日日躁狠狠 | 五月激情电影 | 91人人爱 | 日本二区三区在线 | 日韩电影中文字幕在线观看 | 四川bbb搡bbb爽爽视频 | 国产成人99av超碰超爽 | 久热精品国产 | 国内精品久久久久久久97牛牛 | 欧美在线91 | 久一久久 | 欧美精品久久久久久久久久 | 国产一区二区三区视频在线 | 九九免费观看全部免费视频 | 中文字幕精品久久 | 欧美一级片免费播放 | 久久久激情视频 | 国产精品久久久电影 | 色.www | 很污的网站 | 亚洲禁18久人片 | 在线看成人av | 国产小视频免费在线网址 | 亚洲五月婷 | 中文在线免费看视频 | 亚洲午夜精品在线观看 | 狠狠操精品 | 激情中文在线 | 色狠狠干| 成人av网站在线播放 | 色综合天天视频在线观看 | 久久电影国产免费久久电影 | 国产网站av | 免费观看av | 在线免费观看黄网站 | 精品在线观看一区二区三区 | 九九九国产 | 久久日本视频 | 中文字幕av免费观看 | 黄a在线观看 | 久草久草视频 | 国产精品久久久久久久毛片 | 久久天堂亚洲 | 中文字幕中文中文字幕 | 成人av在线一区二区 | 97精品免费视频 | 精品女同一区二区三区在线观看 | 久久er99热精品一区二区三区 | 国产精品videoxxxx | 免费看黄电影 | 性色va| 日韩无在线 | v片在线看 | 欧美日韩精 | 精品国产乱码一区二区三区在线 | 免费在线观看污网站 | 国产精品久久久久久久午夜 | 中文字幕黄色网址 | 久久国产精品电影 | 国产亚洲婷婷免费 | 欧美精品久久久久久久久久丰满 | 日韩精品欧美一区 | 91精品久久久久久综合五月天 | 久久99精品久久久久婷婷 | 亚洲精品一区二区三区高潮 | 片黄色毛片黄色毛片 | 国产精品免费观看久久 | 日日夜夜精品视频天天综合网 | 一区二区三区视频 | 在线日韩三级 | 在线观看视频日韩 | 国产在线污 | 91免费视频网站在线观看 | 成人小视频在线观看免费 | 欧美激情亚洲综合 | 97热在线观看 | 99精品视频免费全部在线 | 精品国产aⅴ麻豆 | 婷婷精品国产欧美精品亚洲人人爽 | 精品国产电影一区二区 | 中文字幕国产一区二区 | 亚洲国产精品成人va在线观看 | 国产视频中文字幕在线观看 | 久久涩视频 | av在线色 | 91最新网址 | 在线免费黄色毛片 | 高清av影院| 国产专区免费 | 国产精品久久久一区二区三区网站 | 精品伦理一区二区三区 | 香蕉视频网址 | 色婷婷午夜 | 日韩av在线免费播放 | 天天射天天操天天干 | 国产亚洲成人网 | 欧美日韩国产一二三区 | 国产精品网站 | 中文字幕色婷婷在线视频 | 久草热视频 | 国产日韩欧美在线影视 | 久久精品香蕉 | 国产亚洲精品久久久久久久久久 | 国产精品久久久久久久久久久久午 | 婷婷色中文 | 亚洲精品美女在线观看播放 | 三级在线视频播放 | 韩国在线一区二区 | 99久久精品免费看国产一区二区三区 | 最新午夜 | 国产自产高清不卡 | 中文字幕一区二区三区在线播放 | 97碰碰视频 | 久久伊人婷婷 | 伊人资源视频在线 | 一区二区三区日韩精品 | 91插插视频| 欧美一区免费观看 | 国产一区二区不卡视频 | 亚洲小视频在线观看 | 91视频麻豆视频 | 午夜精选视频 | 超级碰碰免费视频 | 免费在线观看不卡av | 免费高清在线观看成人 | 精品国产乱码一区二区三区在线 | 久久免费成人精品视频 | 成人av片免费观看app下载 | 美女视频永久黄网站免费观看国产 | 四虎影视成人精品 | 91国内在线| 久久精品三级 | 丁香九月激情综合 | 安徽妇搡bbbb搡bbbb | 久久99精品一区二区三区三区 | 国产超碰97 |