国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

5000字詳述Elasticsearch倒排索引算法(建議收藏)

共 7187字,需瀏覽 15分鐘

 ·

2020-09-11 06:53


來(lái)源:博客園?

鏈接:

https://www.cnblogs.com/dreamroute/p/8484457.html

介紹

Elasticsearch 是一個(gè)分布式可擴(kuò)展的實(shí)時(shí)搜索和分析引擎,一個(gè)建立在全文搜索引擎 Apache Lucene(TM) 基礎(chǔ)上的搜索引擎.當(dāng)然 Elasticsearch 并不僅僅是 Lucene 那么簡(jiǎn)單,它不僅包括了全文搜索功能,還可以進(jìn)行以下工作:

  • 分布式實(shí)時(shí)文件存儲(chǔ),并將每一個(gè)字段都編入索引,使其可以被搜索。

  • 實(shí)時(shí)分析的分布式搜索引擎。

  • 可以擴(kuò)展到上百臺(tái)服務(wù)器,處理PB級(jí)別的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。

基本概念

先說(shuō)Elasticsearch的文件存儲(chǔ),Elasticsearch是面向文檔型數(shù)據(jù)庫(kù),一條數(shù)據(jù)在這里就是一個(gè)文檔,用JSON作為文檔序列化的格式,比如下面這條用戶數(shù)據(jù):

{
"name" : "John",
"sex" : "Male",
"age" : 25,
"birthDate": "1990/05/01",
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}

用Mysql這樣的數(shù)據(jù)庫(kù)存儲(chǔ)就會(huì)容易想到建立一張User表,有balabala的字段等,在Elasticsearch里這就是一個(gè)文檔,當(dāng)然這個(gè)文檔會(huì)屬于一個(gè)User的類型,各種各樣的類型存在于一個(gè)索引當(dāng)中。這里有一份簡(jiǎn)易的將Elasticsearch和關(guān)系型數(shù)據(jù)術(shù)語(yǔ)對(duì)照表:

關(guān)系數(shù)據(jù)庫(kù)     ? 數(shù)據(jù)庫(kù) ? 表    ? 行    ? 列(Columns)

Elasticsearch ? 索引(Index) ? 類型(type) ? 文檔(Docments) ? 字段(Fields)

一個(gè) Elasticsearch 集群可以包含多個(gè)索引(數(shù)據(jù)庫(kù)),也就是說(shuō)其中包含了很多類型(表)。這些類型中包含了很多的文檔(行),然后每個(gè)文檔中又包含了很多的字段(列)。Elasticsearch的交互,可以使用Java API,也可以直接使用HTTP的Restful API方式,比如我們打算插入一條記錄,可以簡(jiǎn)單發(fā)送一個(gè)HTTP的請(qǐng)求:

PUT /megacorp/employee/1
{
"name" : "John",
"sex" : "Male",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}

更新,查詢也是類似這樣的操作,具體操作手冊(cè)可以參見(jiàn)Elasticsearch權(quán)威指南


索引

Elasticsearch最關(guān)鍵的就是提供強(qiáng)大的索引能力了,其實(shí)InfoQ的這篇時(shí)間序列數(shù)據(jù)庫(kù)的秘密(2)——索引寫(xiě)的非常好,我這里也是圍繞這篇結(jié)合自己的理解進(jìn)一步梳理下,也希望可以幫助大家更好的理解這篇文章。

Elasticsearch索引的精髓:

一切設(shè)計(jì)都是為了提高搜索的性能

另一層意思:為了提高搜索的性能,難免會(huì)犧牲某些其他方面,比如插入/更新,否則其他數(shù)據(jù)庫(kù)不用混了。前面看到往Elasticsearch里插入一條記錄,其實(shí)就是直接PUT一個(gè)json的對(duì)象,這個(gè)對(duì)象有多個(gè)fields,比如上面例子中的name, sex, age, about, interests,那么在插入這些數(shù)據(jù)到Elasticsearch的同時(shí),Elasticsearch還默默1的為這些字段建立索引--倒排索引,因?yàn)镋lasticsearch最核心功能是搜索。

Elasticsearch是如何做到快速索引的

InfoQ那篇文章里說(shuō)Elasticsearch使用的倒排索引比關(guān)系型數(shù)據(jù)庫(kù)的B-Tree索引快,為什么呢?

什么是B-Tree索引?

上大學(xué)讀書(shū)時(shí)老師教過(guò)我們,二叉樹(shù)查找效率是logN,同時(shí)插入新的節(jié)點(diǎn)不必移動(dòng)全部節(jié)點(diǎn),所以用樹(shù)型結(jié)構(gòu)存儲(chǔ)索引,能同時(shí)兼顧插入和查詢的性能。因此在這個(gè)基礎(chǔ)上,再結(jié)合磁盤(pán)的讀取特性(順序讀/隨機(jī)讀),傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)采用了B-Tree/B+Tree這樣的數(shù)據(jù)結(jié)構(gòu):

為了提高查詢的效率,減少磁盤(pán)尋道次數(shù),將多個(gè)值作為一個(gè)數(shù)組通過(guò)連續(xù)區(qū)間存放,一次尋道讀取多個(gè)數(shù)據(jù),同時(shí)也降低樹(shù)的高度。

什么是倒排索引?

繼續(xù)上面的例子,假設(shè)有這么幾條數(shù)據(jù)(為了簡(jiǎn)單,去掉about, interests這兩個(gè)field):

| ID | Name | Age  |  Sex     |
| -- |:------------:| -----:| -----:|
| 1 | Kate | 24 | Female
| 2 | John | 24 | Male
| 3 | Bill | 29 | Male

ID是Elasticsearch自建的文檔id,那么Elasticsearch建立的索引如下:

Name:

| Term | Posting List |
| -- |:----:|
| Kate | 1 |
| John | 2 |
| Bill | 3 |

Age:

| Term | Posting List |
| -- |:----:|
| 24 | [1,2] |
| 29 | 3 |

Sex:

| Term | Posting List |
| -- |:----:|
| Female | 1 |
| Male | [2,3] |
Posting List

Elasticsearch分別為每個(gè)field都建立了一個(gè)倒排索引,Kate, John, 24, Female這些叫term,而[1,2]就是Posting List。Posting list就是一個(gè)int的數(shù)組,存儲(chǔ)了所有符合某個(gè)term的文檔id。

看到這里,不要認(rèn)為就結(jié)束了,精彩的部分才剛開(kāi)始...

通過(guò)posting list這種索引方式似乎可以很快進(jìn)行查找,比如要找age=24的同學(xué),愛(ài)回答問(wèn)題的小明馬上就舉手回答:我知道,id是1,2的同學(xué)。但是,如果這里有上千萬(wàn)的記錄呢?如果是想通過(guò)name來(lái)查找呢?

Term Dictionary

Elasticsearch為了能快速找到某個(gè)term,將所有的term排個(gè)序,二分法查找term,logN的查找效率,就像通過(guò)字典查找一樣,這就是Term Dictionary?,F(xiàn)在再看起來(lái),似乎和傳統(tǒng)數(shù)據(jù)庫(kù)通過(guò)B-Tree的方式類似啊,為什么說(shuō)比B-Tree的查詢快呢?

Term Index

B-Tree通過(guò)減少磁盤(pán)尋道次數(shù)來(lái)提高查詢性能,Elasticsearch也是采用同樣的思路,直接通過(guò)內(nèi)存查找term,不讀磁盤(pán),但是如果term太多,term dictionary也會(huì)很大,放內(nèi)存不現(xiàn)實(shí),于是有了Term Index,就像字典里的索引頁(yè)一樣,A開(kāi)頭的有哪些term,分別在哪頁(yè),可以理解term index是一顆樹(shù):

這棵樹(shù)不會(huì)包含所有的term,它包含的是term的一些前綴。通過(guò)term index可以快速地定位到term dictionary的某個(gè)offset,然后從這個(gè)位置再往后順序查找。

所以term index不需要存下所有的term,而僅僅是他們的一些前綴與Term Dictionary的block之間的映射關(guān)系,再結(jié)合FST(Finite State Transducers)的壓縮技術(shù),可以使term index緩存到內(nèi)存中。從term index查到對(duì)應(yīng)的term dictionary的block位置之后,再去磁盤(pán)上找term,大大減少了磁盤(pán)隨機(jī)讀的次數(shù)。

這時(shí)候愛(ài)提問(wèn)的小明又舉手了:"那個(gè)FST是神馬東東啊?"

一看就知道小明是一個(gè)上大學(xué)讀書(shū)的時(shí)候跟我一樣不認(rèn)真聽(tīng)課的孩子,數(shù)據(jù)結(jié)構(gòu)老師一定講過(guò)什么是FST。但沒(méi)辦法,我也忘了,這里再補(bǔ)下課:

FSTs are finite-state machines that?map?a?term (byte sequence)?to an arbitrary?output.

假設(shè)我們現(xiàn)在要將mop, moth, pop, star, stop and top(term index里的term前綴)映射到序號(hào):0,1,2,3,4,5(term dictionary的block位置)。最簡(jiǎn)單的做法就是定義個(gè)Map,大家找到自己的位置對(duì)應(yīng)入座就好了,但從內(nèi)存占用少的角度想想,有沒(méi)有更優(yōu)的辦法呢?答案就是:FST理論(可以自行百度)

??表示一種狀態(tài)

-->表示狀態(tài)的變化過(guò)程,上面的字母/數(shù)字表示狀態(tài)變化和權(quán)重

將單詞分成單個(gè)字母通過(guò)??和-->表示出來(lái),0權(quán)重不顯示。如果??后面出現(xiàn)分支,就標(biāo)記權(quán)重,最后整條路徑上的權(quán)重加起來(lái)就是這個(gè)單詞對(duì)應(yīng)的序號(hào)。

FSTs are finite-state machines that map a term (byte sequence) to an arbitrary output.

FST以字節(jié)的方式存儲(chǔ)所有的term,這種壓縮方式可以有效的縮減存儲(chǔ)空間,使得term index足以放進(jìn)內(nèi)存,但這種方式也會(huì)導(dǎo)致查找時(shí)需要更多的CPU資源。

后面的更精彩,看累了的同學(xué)可以喝杯咖啡……


壓縮技巧

Elasticsearch里除了上面說(shuō)到用FST壓縮term index外,對(duì)posting list也有壓縮技巧。?
小明喝完咖啡又舉手了:"posting list不是已經(jīng)只存儲(chǔ)文檔id了嗎?還需要壓縮?"

嗯,我們?cè)倏椿刈铋_(kāi)始的例子,如果Elasticsearch需要對(duì)同學(xué)的性別進(jìn)行索引(這時(shí)傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)哭暈在廁所……),會(huì)怎樣?如果有上千萬(wàn)個(gè)同學(xué),而世界上只有男/女這樣兩個(gè)性別,每個(gè)posting list都會(huì)有至少百萬(wàn)個(gè)文檔id。Elasticsearch是如何有效的對(duì)這些文檔id壓縮的呢?

Frame Of Reference

增量編碼壓縮,將大數(shù)變小數(shù),按字節(jié)存儲(chǔ)

首先,Elasticsearch要求posting list是有序的(為了提高搜索的性能,再任性的要求也得滿足),這樣做的一個(gè)好處是方便壓縮,看下面這個(gè)圖例:?

如果數(shù)學(xué)不是體育老師教的話,還是比較容易看出來(lái)這種壓縮技巧的。

未壓縮之前,6個(gè)整數(shù),每個(gè)整數(shù)用4個(gè)字節(jié)壓縮,一共需要24個(gè)字節(jié);通過(guò)將數(shù)據(jù)增量編碼,將73,300,302...,變成73, 227, 2,沒(méi)有丟掉數(shù)據(jù)信息的情況下,將數(shù)據(jù)減小。標(biāo)識(shí)位8,本身需要一個(gè)字節(jié)空間,表示73,227,2每個(gè)數(shù)都用8bit =?1byte來(lái)存儲(chǔ),需要1byte * 3 = 3bytes內(nèi)存空間來(lái)存儲(chǔ),標(biāo)識(shí)位5,本身需要1個(gè)字節(jié)空間存儲(chǔ),表示30,11,29都用5bit來(lái)存儲(chǔ),5bit * 3 = 15bit,但是需要16bit = 2bytes來(lái)存儲(chǔ),那么8,73,227,2,5,30,11,29,一共需要1 +?3?+ 1 + 2 = 7bytes空間即可。

原理就是通過(guò)增量,將原來(lái)的大數(shù)變成小數(shù)僅存儲(chǔ)增量值,再精打細(xì)算按bit排好隊(duì),最后通過(guò)字節(jié)存儲(chǔ),而不是大大咧咧的盡管是2也是用int(4個(gè)字節(jié))來(lái)存儲(chǔ)。

Roaring bitmaps

說(shuō)到Roaring bitmaps,就必須先從bitmap說(shuō)起。Bitmap是一種數(shù)據(jù)結(jié)構(gòu),假設(shè)有某個(gè)posting list:

[1,3,4,7,10]

對(duì)應(yīng)的bitmap就是:

[1,0,1,1,0,0,1,0,0,1]

非常直觀,用0/1表示某個(gè)值是否存在,比如10這個(gè)值就對(duì)應(yīng)第10位,對(duì)應(yīng)的bit值是1,這樣用一個(gè)字節(jié)就可以代表8個(gè)文檔id,舊版本(5.0之前)的Lucene就是用這樣的方式來(lái)壓縮的,但這樣的壓縮方式仍然不夠高效,如果有1億個(gè)文檔,那么需要12.5MB的存儲(chǔ)空間,這僅僅是對(duì)應(yīng)一個(gè)索引字段(我們往往會(huì)有很多個(gè)索引字段)。于是有人想出了Roaring bitmaps這樣更高效的數(shù)據(jù)結(jié)構(gòu)。

Bitmap的缺點(diǎn)是存儲(chǔ)空間隨著文檔個(gè)數(shù)線性增長(zhǎng),Roaring bitmaps需要打破這個(gè)魔咒就一定要用到某些指數(shù)特性:

將posting list按照65535為界限分塊,比如第一塊所包含的文檔id范圍在0~65535之間,第二塊的id范圍是65536~131071,以此類推。再用<商,余數(shù)>的組合表示每一組id,這樣每組里的id范圍都在0~65535內(nèi)了,剩下的就好辦了,既然每組id不會(huì)變得無(wú)限大,那么我們就可以通過(guò)最有效的方式對(duì)這里的id存儲(chǔ)。

細(xì)心的小明這時(shí)候又舉手了:"為什么是以65535為界限?"

程序員的世界里除了1024外,65535也是一個(gè)經(jīng)典值,因?yàn)樗?2^16-1,正好是用2個(gè)字節(jié)能表示的最大數(shù),一個(gè)short的存儲(chǔ)單位,注意到上圖里的最后一行“If a block has more than 4096 values, encode as a bit set, and otherwise as a simple array using 2 bytes per value”,如果是大塊,用節(jié)省點(diǎn)用bitset存,小塊就豪爽點(diǎn),2個(gè)字節(jié)我也不計(jì)較了,用一個(gè)short[]存著方便。

那為什么用4096來(lái)區(qū)分大塊還是小塊呢?

個(gè)人理解:都說(shuō)程序員的世界是二進(jìn)制的,4096*2bytes = 8192bytes < 1KB, 磁盤(pán)一次尋道可以順序把一個(gè)小塊的內(nèi)容都讀出來(lái),再大一位就超過(guò)1KB了,需要兩次讀。


聯(lián)合索引

上面說(shuō)了半天都是單field索引,如果多個(gè)field索引的聯(lián)合查詢,倒排索引如何滿足快速查詢的要求呢?

  • 利用跳表(Skip list)的數(shù)據(jù)結(jié)構(gòu)快速做“與”運(yùn)算,或者

  • 利用上面提到的bitset按位“與”

先看看跳表的數(shù)據(jù)結(jié)構(gòu):

將一個(gè)有序鏈表level0,挑出其中幾個(gè)元素到level1及l(fā)evel2,每個(gè)level越往上,選出來(lái)的指針元素越少,查找時(shí)依次從高level往低查找,比如55,先找到level2的31,再找到level1的47,最后找到55,一共3次查找,查找效率和2叉樹(shù)的效率相當(dāng),但也是用了一定的空間冗余來(lái)?yè)Q取的。

假設(shè)有下面三個(gè)posting list需要聯(lián)合索引:

如果使用跳表,對(duì)最短的posting list中的每個(gè)id,逐個(gè)在另外兩個(gè)posting list中查找看是否存在,最后得到交集的結(jié)果。

如果使用bitset,就很直觀了,直接按位與,得到的結(jié)果就是最后的交集。


總結(jié)和思考

Elasticsearch的索引思路:

將磁盤(pán)里的東西盡量搬進(jìn)內(nèi)存,減少磁盤(pán)隨機(jī)讀取次數(shù)(同時(shí)也利用磁盤(pán)順序讀特性),結(jié)合各種奇技淫巧的壓縮算法,用及其苛刻的態(tài)度使用內(nèi)存。

所以,對(duì)于使用Elasticsearch進(jìn)行索引時(shí)需要注意:

  • 不需要索引的字段,一定要明確定義出來(lái),因?yàn)槟J(rèn)是自動(dòng)建索引的

  • 同樣的道理,對(duì)于String類型的字段,不需要analysis的也需要明確定義出來(lái),因?yàn)槟J(rèn)也是會(huì)analysis的

  • 選擇有規(guī)律的ID很重要,隨機(jī)性太大的ID(比如java的UUID)不利于查詢

關(guān)于最后一點(diǎn),個(gè)人認(rèn)為有多個(gè)因素:

其中一個(gè)(也許不是最重要的)因素: 上面看到的壓縮算法,都是對(duì)Posting list里的大量ID進(jìn)行壓縮的,那如果ID是順序的,或者是有公共前綴等具有一定規(guī)律性的ID,壓縮比會(huì)比較高;

全文檢索

前面是針對(duì)單個(gè)字段,name,age說(shuō)明的快速索引解決方案,elastic通常是全文檢索,文檔類型的,通常需要將文檔分詞。比如有這樣2個(gè)文檔:

  1. The quick brown fox jumped over the lazy dog

  2. Quick brown foxes leap over lazy dogs in summer

為了創(chuàng)建倒排索引,我們首先將每個(gè)文檔的 content 域拆分成單獨(dú)的 詞(我們稱它為 詞條 或 tokens ),創(chuàng)建一個(gè)包含所有不重復(fù)詞條的排序列表,然后列出每個(gè)詞條出現(xiàn)在哪個(gè)文檔。結(jié)果如下所示:

Term ? ? ?Doc_1 ?Doc_2-------------------------Quick ? | ? ? ? | ?XThe ? ? | ? X ? |brown ? | ? X ? | ?Xdog ? ? | ? X ? |dogs ? ?| ? ? ? | ?Xfox ? ? | ? X ? |foxes ? | ? ? ? | ?Xin ? ? ?| ? ? ? | ?Xjumped ?| ? X ? |lazy ? ?| ? X ? | ?Xleap ? ?| ? ? ? | ?Xover ? ?| ? X ? | ?Xquick ? | ? X ? |summer ?| ? ? ? | ?Xthe ? ? | ? X ? |


那么,對(duì)于brown這個(gè)詞來(lái)說(shuō),Posting list就是[1, 2],quick的Posting list就是[2],當(dāng)然了,對(duì)于大小寫(xiě),同義詞都是要考慮的,這樣就變成了前面的單個(gè)詞那樣,同樣利用倒排索引,增量編碼,大數(shù)變小數(shù),使用字節(jié)存儲(chǔ)。



--end--


掃描下方二維碼
添加好友,備注【交流群
拉你到學(xué)習(xí)路線和資源豐富的交流群

瀏覽 69
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 91欧美精品成人AAA片| 欧美不卡一区二区三区| 国产激情AV| 久久久久99| 老熟女导航| 欧美日韩激情| 少妇搡BBBB搡BBB搡造水多, | 中文字幕第5页| 人人爱人人爽人人操| 午夜天堂精品久久久久9| 亚洲无码免费在线| 91N视频| 国产TS变态重口人妖| 熟女中文字幕| 91久久人澡人妻人人澡人人爽| 深爱五月激情| 人妻少妇偷人精品无码免费| 日本一级黄色A片| 成人免费观看视频| 日本少妇性爱视频| 亚洲日本高清| а√天堂中文最新版8| 久久情| 五月丁香影院| 国产免费啪啪视频| 俺去听听婷婷| 秋霞网一区二区| 久久久WWW成人免费精品| 国产精品大香蕉| 三级av在线观看| 国产乱子伦一区二区三精品| 91AV在线观看视频| 日韩性爱小说| 亚洲日韩久久| 亚洲国产97| 天天操天天射天天爽| 中文字幕一区二区三区四区在线视频 | 亚洲一区二区成人| 亚洲AV无码成人精品区天堂小说 | 黄页视频网站| 中文字幕++中文字幕明步| 99热国产在线观看| 日韩无码久| 国产一级二级在线观看| 欧美51精品| 久久久福利视频| 成人综合娱乐网| 操逼视频大全| 黑人猛躁白人BBBBBBBBB | 日韩性爱在线观看| 欧美精品无码久久久精品酒店| 黄色直播在线观看| 天天干婷婷五月天| 国产免费一区二区三区最新不卡| 久久免费视频,久久免费视频| 黄网国产手机在线观看| 杨门女将婬乱史1—6| 国产一区二区免费在线观看| 欧美操操| 一区二区三区电影网| 天天躁狠狠躁夜躁2024| 18禁网站禁片免费观看| 天堂网中文字幕| 大香蕉777| 国产人妻在线| 亚洲色男人天堂| 高清无码免费在线| 91人妻人人澡人人爽精品| 久久撸视频| 天堂在线无码| 久久精品女同亚洲女同13| 国产天堂| 亚洲无码在线免费视频| 亚洲欧美日韩成人| 日逼网址| 日韩成人黄色电影| 女生自慰网站免费| 欧美日韩逼| 五月天色综合| 久热免费视频在线观看| 日韩欧美国产黄色电影| 精品欧美| 91三级在线观看| 在线观看中文字幕视频| 亚洲在线看| 日韩AV无码一区二区三区| 国产免费高清无码| 在线视频a| 中文无码日本一级A片人| 国精品无码一区二区三区在线秋菊| 青青av| 国产116页| av一区在线观看| 欧美美女视频网站| 国产女人在线观看| 国产一级AV片| 中文字幕日韩有码| 欧美黄色激情视频网站| 五月婷婷六月激情| 四虎AV在线| 日韩精品观看| 久久嫩草精品久久久久精| 操屄影院| 中文字幕国产AV| 无码在线播放视频| 亚洲国产精品自在自线| 九九热精品在线视频| 国产精品久久久久久久久久久久久| 操逼视频91| 国产精品视频一区二区三| 天天操b| 国产sm视频| 一级aa免费视频| 一级黄色大毛片| 成人内射视频| 九九精品视频在线播放| 北条麻妃在线视频| 精品久久久999| 青青在线| av无码在线播放| 高潮AV在线观看| 天堂网2025| 激情啪啪网站| 色婷婷AV| 黄片大全在线观看| 3p绿帽黑人看自己老婆| 成人欧美一区二区三区在线观看| 国产女人精品视频| 大雞巴疯狂浓精合集| 蜜臀久久久久久999| 五月婷婷五月| 日韩欧美黄色电影| 国产精品无码不卡| 麻豆三级精品| 久久国产大奶| 97资源在线| 免费黄片网站在线观看| 色婷婷五月天在线观看| 久天堂| 五月丁香成人电影| 91丝袜足交| 欧美精产国品一二三产品动漫| 久久久久久亚洲AV无码专区| 91秦先生在线播放| 麻豆乱伦视频| 黄色视频A| 四川性BBB搡BBB爽爽爽小说| 久艹久| 天堂亚洲AV无码精品成人| 亚洲激情网站| 亚洲欧美一区二区三区在线| 六月丁香视频| 中文解说AⅤ水果派| 成人免费网站在线| 日本高清久久| 国产一区二区不卡视频| 日韩三级一区二区| 北条麻妃一区二区三区在线| 欧美熟妇精品一二三区| 爽好紧别夹喷水无码| www.91自拍| 久久激情视频| HEZ-502搭讪绝品人妻系列| 性爱av天堂| 69av在线观看视频| 中文字幕电影| 丁香五月婷婷基地| 91免费成人视频| 青青免费视频| 亚洲视频三区| 日无码在线| 在线观看三级网址| 中文字幕1| 国产av一区二区三区| 无码超碰| 中文字幕毛片| 国产激情视频在线观看| 日韩欧美在线视频观看| 97久久精品国产熟妇高清网| 日韩成人在线播放| 17c精品麻豆一区二区免费| 99精品无码| 农村一级婬片A片AAA毛片古装 | 老太婆擦BBBB撩BBBB| 超碰欧美在线| 亚洲日韩国产成人精品久久| 亚洲色图1| 色综合久久88色综合| 国产精品无码无套在线照片| 欧美MV日韩MV国产网站| 亚洲AAA| 国产77777| 久久婷婷秘精品国产538| 黄片视频免费在线观看| 日本三级无码| 成人午夜精品| 在线观看国产| 日韩中文字幕在线观看| 一级黄色蜜芽视频| 国产精品久久久久久久免牛肉蒲| 翔田千里无码流出两部| 久久人人网| 中文乱码在线观看| 免费毛片观看| 欧美激情一区二区A片成人牛牛| 动漫3D成人H无码国漫| 国产美女免费视频| 熟女熟妇人妻一区二区三区| 欧美特级视频| 乱子伦日B视频| 日韩av在线电影| 久热福利| 国产色情在线观看| 91成人免费| 一级免费黄色电影| 国产777| AV在线不卡中文| 在线观看av中文字幕| 一区二区高清无码视频| 久久黄片视频| 国产在线看| 欧美日韩精品一区二区三区视频播放 | 欧美性猛交ⅩXXX乱大交| 黄色电影大香蕉| 日韩三级一区| 日韩国产一区二区| 成人av无码| 欧美丰满人妻免费视频人| 人人爽人人爽| 国产人国产视频成人免费观看…| 天堂无码视频| 日韩一级性爱| 无码中文字| 国产三级无码视频| 久草在线播放| 色图欧美色图| 大鸡巴导航| 99久久国内精品成人免费| 亚洲欧美激情视频| 8050午夜一级| 精品国产A片| 久久538| seseav| 波多野结衣AV无码| 人人操碰人人| 人人人射| 99色99| 免费三级网| 麻豆人妻| 黑人粗暴偷拍一区二区| 亚洲欧洲视频在线观看| 国产高清无码福利| 日韩成人区| 国产区精品| 欧美黄色电影在线观看| 韩国成人无码视频| 逼逼AV| 狠狠躁日日躁夜夜躁2022麻豆 | 国产AV日韩| 啪啪网站免费看| 欧美成人自拍视频| 天天日天天射天天操| 国产偷拍| 免费观看高清无码视频| 午夜亚洲无码| 国产无遮挡又黄又爽| 丁香五月AV| 久久小视频| 日韩精品高清中文| 午夜福利AV电影| 人人超碰人人| 久久男人天堂| 久久91| 91视频在线免费观看app| 99精品视频国产| 四季AV综合网站| 五月天婷婷色| 欧洲黄色片| 狠狠色噜噜狠狠狠888米奇视频| aaa久久| 天天干天天操| 国产免费成人在线观看| 国产迷奸在线| 天天操一操| 色色99| 一道本无码视频| 在线观看黄色网| 中文字幕日韩有码| 香蕉大综合| 99热热| 国产高清自拍视频| 色色色色色欧美网| 久久波多野结衣一区二区| 中文字幕人成人乱码亚洲电影| 日韩欧美高清| 无码视频网站| 伊人网在线播放| 狠狠穞A片一區二區三區| 欧美中文字幕在线视频| 超碰在线中文字幕| 欧美丰满美乳XXⅩ高潮www| 国产乱人伦无码视频| 伊人综合大香蕉| 久久久久久毛片| 岛国A片| 蜜芽成人网站| 亚洲狼人天堂| 人人妻人人插| 北条麻妃日B视频| 久久成人精品视频| 97伊人| 欧美AⅤ| zzjicom| 强伦轩一区二区三区在线观看| 淫色淫香综合网| 亚洲无码福利视频| 91热99| 亚洲三级黄片| 人人草大香蕉| 国产午夜视频在线观看| 婷婷五月大香蕉| 有码视频在线观看| 黑人大荫蒂女同互磨| 欧美日韩国产精品| 欧美日韩伊人| 中文字幕在线日本| 国产区精品| 国产系列每日更新| 北条麻妃亚洲无码| 91老熟女视频| 中国老熟妇| 久久国产高清视频| 成人AV十八亚洲二区| 国产亚洲欧美在线| 蜜桃视频91| 日韩成人免费观看| 日本精品国产| 欧美日韩操逼片| 91热爆TS人妖系列| 婷婷九九| AV你懂得| 可以看的毛片| 黄色小视频在线免费观看| 日本大胆中出| 伊人成人免费视频| 尹人成人| а√天堂中文最新版8| 成人午夜婬片A片| 日韩人妻精品无码| 韩国高清无码60.70.80| 日韩免费成人视频| 色婷婷影院| 乱子伦一区二区三区视频在线观看 | 嫩草导航| 亚洲黄色免费在线观看| 免费V片在线观看| 一区在线免费观看| 殴美老妇BBBBBBBBB| 午夜福利AV电影| 青草视频在线免费观看| 在线免费黄片| 国产夫妻AV| 欧美国产日韩在线| 一道本视频在线| 蜜桃视频在线观看视频| 91狠狠综合久久| 少妇的屄| 中文字幕免费在线视频| 西西人体大胆ww4444图片| 影音先锋女人av噜噜色| 亚洲精品区| 四虎成人在线| 都市激情亚洲| www.插逼| 69看片| 中文字幕有码在线播放| 91国内偷拍| www.四虎成人网站| 黄色电影av| 无码免费婬AV片在线观看| 日本一区二区视频在线观看| www.天天射| 国产毛片欧美毛片高潮| 色999日韩| 91探花足浴店按摩店| 污网站18禁| 爱爱动态图| 男女草逼视频| 成人激情视频网| 久久丁香五月天| 久草福利网| 三级一区二区| 成人在线欧美| A级毛片网站| 久久午夜一级A片| 日韩99在线观看| 天天干天| 午夜福利影院在线| 最近中文字幕在线| 亚洲avwww| 欧美日韩一区二区在线观看| 无码精品一区二区三区在线观看| 国产男女啪啪视频| 18禁网站网址| 欧美一级大香蕉| 亚洲欧美久久久久久久久久久久| 日韩无码二区| 久久久视频6r| 学生妹做爱视频| 操逼激情视频| 中国女人操逼视频| 免看一级a毛片一片成人不卡| 波多野结衣性爱视频| 一本色道久久无码人妻精品69| 北条麻妃无码在线观看| 成人午夜在线视频| 88AV视频| 人人射视频| 亚洲无码伊人| 亚洲A视频| 四虎在线免费视频| 91av在线播放| 国产精品AV在线观看| 韩国三级中文字幕HD久久精品| 欧美少妇视频| 影音先锋久久久久AV综合网成人| 久久无码一区| 亚洲XXXXX| 视色视频在线观看| 安徽妇搡BBBB搡BBBB| 日夜夜操| 午夜激情视频在线观看| 逼特逼在线视频| 精品久久久久久AV2025| 一区二区国产精品| 国产女人18水真多18精品 | 欧美一級黃色A片免費看| 成人性爱视频免费在线观看| 亚洲免费在线观看视频| 久久久久久免费毛片精品| 免费人成年激情视频在线观看| 日本二区三区| 深爱激情综合网| 成人无码在线观看免费视频| 亚洲天堂无码高清| 开心色播五月| 日韩福利片| 国产乱码一区二区三区的区别| 韩国精品一区| 水蜜桃网址| 免费无码国产在线55| 西西444大胆无码视频| 狼友在线观看| 日本黄色电影在线观看| 玖玖爱av| 五月开心婷婷| 亚洲综合中文字幕在线| 五月婷婷啪| 日韩人妻一区二区三区| 黄片无码免费| 色欲一区二区三区| 91免费在线视频| 无码成人午夜在线影院| 操操操综合| 北条麻妃久久网站| 免费的A片| 欧美熟妇BBB搡BBB| 亚洲视频三区| 91欧美日韩| 国产午夜成人| 成人午夜无码| 免费性网| 无码日韩精品一区二区免费96| 亚洲偷拍网| 欧美性猛交ⅩXXX乱大交| 久久99高清视频| A片在线免费看| 久草福利网| 亚洲在线观看免费| 久久国产热在8| 天堂网在线视频| 无码人妻精品一区二区三区蜜臀百度| 经典三级在线视频| 亚洲情在线| 亚洲av电影在线观看| 少妇超碰| 永久久久久久久| 国产三级一区| 特级西西人体444WWw高清大胆| 天天肏屄| 自拍偷拍av| 男女黄色免费网站| 日韩精品你懂的| 九九热精品视频| 亚洲成人视频免费观看| 丁香婷婷激情五月| 香蕉中文在线| 青青啪啪啪| 日韩综合在线| 91在线超碰| 中文电视剧字幕在线播放免费视频 | 一级操逼视频| 国产91白丝在一线播放| 丁香婷婷五月色成人网站| 2025最新国产成人精品| 亚洲黄色在线播放| 特级特黄A级高潮播放| 国产黄片视频| 久久久久网站| 亚洲成人免费在线观看| 国产精品黄色片| 99er在线观看| 欧美色图1| 亚洲北条麻妃一级A片| 日韩无码高清视频| 午夜熟睡乱子伦视频| 午夜男女福利| 欧美偷拍精品| 青青草精品在线视频| 俺也来最新色视频| 国产精品国产三级国产专区52| 日韩三级片av| 亚洲午夜福利| 久久免费观看视频| 日韩在线高清| 色综合一区二区| 久久嫩草国产成人一区| 国产欧美岛国| 中文在线A∨在线| 欧美一级特黄A片免费观看| 操美女一区二区| 成人片成人网久久蜜桃臀| 欧美精品99| 五月丁香综合激情| 3344gc在线观看入口| 成全在线观看高清的| 99精品全国免费观看| 欧美福利在线观看| 波多野结衣视频免费在线观看 | 中文字幕第315页| 91精品人妻少妇无码影院| 97精品欧美91久久久久久久| 婷婷午夜福利| 91麻豆视频在线观看| 在线黄色视频网站| 少妇高潮日韩| 亚洲高清无码视频在线播放| 久操国产视频| 黄片网站入口| 91白丝喷水自慰网站| 免费黄色视频在线观看| 黄片AV| 久久毛片| 亚洲一区无码| 91久久婷婷国产麻豆精品电影.co| 男女av| 狠狠撸在线| 精久久久| 9999久久久久| 免费黄片网站| 蜜桃视频在线观看18| 黄片视频在线观看| 丁香五香天堂网| 蜜臀av在线| 综合+++夜夜| 国产黄色一级片| 在线观看一区| 丁香婷婷男人天堂| 强奸校花到高潮| 久久午夜无码鲁片午夜精品男男| AAAA毛片视频| 成人国产欧美日韩在线视频| 免费中文字幕视频| AV无码不卡| 五月天AV网站| 精品人人人| 少妇一级婬片内射视频| 国产激情无码免费| 激情五月激情综合网| 国产乱码一区二区三区的区别| 欧美日韩成人一区二区三区 | 色网在线| 大香蕉伊人网| 欧美美女视频网站| 丰满人妻一区二区三区Av猛交| 日本欧美一级片| 亚洲欧美日韩在线| 2019天天操| 亚洲成人AAAAA| 中文在线字幕免费观| 骚虎av| 黄色影片在线观看| 二区视频| 亚洲精品成人无码| 亚洲乱码国产乱码精品天美传媒 | 国产精品永久久久久久久久久 | 午夜影音| 在线视频亚洲| 五月丁香综合久久| 一卡二卡久久| 99熟女| 成人无码免费看| jizzjizz欧美| 老熟女露脸25分钟91秒| 91日韩| 88海外华人免费一区| 在线视频三区| 亚洲欧美日韩中文字幕在线观看| 国产成人精品久久| 依人综合网| 久久免费视频观看| 青青操在线观看| 欧美日韩国产不卡视频| 日韩操逼av| 国产深喉视频| 高清无码中文字幕在线观看| 在线视频亚洲| 人人人操| av日韩在线播放| 免费色色视频| 免费无码又爽又黄又刺激网站| 国产无码免费在线观看| 在线观看黄色视频网站| 精品国产乱码一区二区| 无码中文字| 久久9久| 成人在线超碰| 亚洲AV无码国产精品| 亚洲日韩国产AV| P站免费版-永久免费的福利视频平台| 天堂va欧美va亚洲va在线| 俺去听听婷婷| 色色网站| 精品国产一级A片黄毛网站| 欧美熟妇一区二区三区| 午夜成人AV| 无码一区二区三区免费| 999久久精品| 欧美一级片免费观看| 久久99国产乱子伦...| 亚洲免费播放| 91愛爱| AV手机天堂| 69er小视频| 欧美色交| r四虎18| 麻豆亚洲| 在线中文无码| 中文字幕免费视频在线播放| 欧美操逼小视频| 亚洲av自拍| 亚洲a视频| 麻豆成人无码| 日韩成人免费在线观看| 91久久婷婷国产| 亚洲看片| 中文字幕东京热| 成人毛片100免费观看| 强伦轩农村人妻| 特级西西444www高清大胆免费看| 蜜臀久久久99久久久久久久| 午夜福利成人视频| 婷婷综合缴情亚洲另类在线| 国产精品久久久大香蕉| 国产一区二区成人久久919色| 尤物在线播放| 国产精品人人| 一区二区成人电影| 激情婷婷| 无码三级av| 九九九中文字幕| 亚洲天堂一级片| 17c白丝喷水自慰| 四川女人毛多水多A片| 青娱乐黄片| 国产午夜激情视频| av免费在线播放| 国产久久精品视频| 最新中文字幕在线观看视频| 波多野结衣无码视频在线观看| 日日碰狠狠躁久久躁婷婷| 日韩一级黄色毛片| 国产AV影视| 免费黄色a片| 最新在线中文字幕| 欧美综合网在线观看| 成人高清无码在线| 翔田千里珍藏版无码| 婷婷五月激情小说| 亚洲高清无码在线免费观看| 亚洲三级视频| 九一国产在线| 久久99精品久久久久久| 亚洲天堂在线观看视频网站| 色三区| 亚洲无码二区| 真实白嫖91探花无码| 午夜九九| 在线播放毛片| 亚洲日韩激情| 黄色网址五月天| 操天天| 美国无码黄片| 色综合天天操| 毛片毛片毛片| 狠狠色噜噜狠狠狠888米奇视频| 亚洲激情五月天| aV无码av天天aV天天爽第一| 亚洲中文字幕影院| 成人黄色性视频| 中文字幕你懂的| AAAA毛片视频| 婷婷俺也去| 亚洲免费在线视频| 东方av在线免费观看| 天天操中文字幕| 久久久女人| 91资源在线| 国语偷拍| 国产电影一区二区三区| 人人摸人人爱人人操| 日本无码视频在线观看| 人妻一区二区在线| 一本道中文字幕| 91无码人妻精品一区二区三区四| AAA免费视频| 国产激情网址| 91精品久久香蕉国产线看观看| 在线国产激情视频| 亚洲资源在线观看| 人人干人人操人人| 中文字幕有码在线| 成年视频网站| 天天爽夜夜爽| 成人高清无码在线观看| 日产精品久久| 亚洲国产精品成人久久蜜臀| 蜜臀av一区| 在线视频一区二区三区| 婷婷无码成人精品俺来俺去| 51成人网站| 尤物网站在线播放| 久久夜色精品噜噜亚洲AV| 亚洲秘一区二区三区-精品亚洲二区-| 亚洲成人自拍无码| 337p大胆色噜噜噜噜噜| 99热官方网站| 91无码人妻传媒tv| 中文字幕黄色片| 91在线91| 黑人无码AV黑人天堂无码AV| 女邻居的B好大| 国产精品9| 亚洲精品免费在线观看| 亚洲成人69| 国产理伦| 亚洲人免费视频| 色婷婷AV| 高清无码激情| 美女高潮在线| 上海熟搡BBB搡BBBB| 一级黄色电影免费观看| 国产看色免费| 人人操人| 一级A片亲子乱中文| 国产精品扒开腿| 亚洲精品高清无码| 囯产精品久久久| 黄色毛片av| 性生活毛片| 成人午夜精品无码区| 亚洲日韩国产AV| 精品在线免费视频| 国产粉嫩在线观看| www五月天com| 国产久久在线| 国产无码AV在线| 视频一区在线播放| 欧美a在线| 亚洲人妻无码一区| 欧美成人69| 麻豆传媒视频观看| 免费看的毛片| 免费91| 亚洲精品乱码久久久久久蜜桃欧美| 91成人免费| 国产成人午夜精品无码区久久麻豆| 日韩欧美一级A片| 国产大鸡吧| 蜜桃av一区二区三区| 天天爽夜夜操| 热热毛片| 日韩AV免费在线| 乱伦内射视频| 久久婷婷影院| 婷婷五月天影院| 九色PORNY蝌蚪视频| 天天日日干| 91久久精品国产91久久公交车 | 欧美三级不卡| av资源在线| 天堂操逼| 毛片导航| 大屌在线| 国产欧美日韩成人| 加勒比无码在线| 91亚洲高清| 五月天婷婷黄色| 亚洲超级高清无码第一在线视频观看 | 婷婷五月天综合| 91人妻人人澡人人添人人爽| 精品国产AV鲁一鲁一区| 五月av| 69视频国产| 亚洲男人的天堂视频网在线观看+720P | AV天堂影视在线观看| 在线无码人妻| caopor在线| 狠狠干综合网| 亚洲男人av| 女人久久久久| 免费看性蜜桃| 中文字幕永久免费| 超碰九九| 免费无码又爽又黄又刺激网站| 亚洲成人AV| 无码精品人妻一区二区欧美| 国产免费黄色视频| www.高清无码| 亚洲精品人伦一区二区| 免费无码婬片AAAA片老婦 | 国产高清黑人| 亚州毛多色色精品| 无码精品ThePorn| 国产AⅤ爽aV久久久久成人| 免费观看一区二区三区| 久久天堂AV综合合色蜜桃网| 久久影院av| 人人操人人透| 小草久久95| 在线播放你懂的| 欧美黑吊大战白妞欧美大片| 国产日韩欧美在线播放| 久久大屌| 性福利导航| 91美女在线视频| 男女一区二区三区| 无码视频免费播放| 99久久爱re热6在播放| 天天爽夜夜爽| 欧美狠狠| 亚洲天堂精品在线观看| 成人无码视频在线观看| 欧美日韩在线电影| 精品美女视频在线观看免费软件| 亚洲午夜精品成人毛片| 自拍偷拍激情视频| 欧美影院亚洲| 无码人妻丰满熟妇区17水蜜桃 | 欧美国产日韩综合在线观看170| 91丨露脸丨熟女| 日韩无码国产精品| 波多野成人无码精品69| 18国产免费视频在线观看| A级毛片在线观看| 成人大香蕉网站精品免费| 天堂AV在线免费观看| 伊人性爱网| 色欲网| 日韩成人黄片| 京东热av| 波多野结衣一级婬片A片免费下载| 久久婷婷在线| 加勒比人妻| 国产欧美岛国| 久草麻豆| 就要干就要操| 人妻无码久久精品| 成人欧美精品| 88AV在线视频| 波多在线视频| 色婷婷五月天在线观看| 91丨露脸丨熟女抽搐| 韩国无码一区| 老湿机福利视频| 人妻无码高清| 在线中文无码| 亚洲精品乱码久久久久久蜜桃91| 国产一级a一级a免费视频| 军人妓女院BD高清片在线播放| 午夜看黄片| 亚洲成人三级片| 水果派AV解说| 蜜桃视频一区二区三区| 色tv在线| 成人AV在线看| 丰满少妇一级片| 欧美老妇大BBBBXXXX| 五月天婷婷小说| 婷婷五月色播|