久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信搜一搜在线检索技术演进复盘

發布時間:2024/2/28 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信搜一搜在线检索技术演进复盘 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:kaelhua,騰訊 WXG 后臺開發工程師

背景

2020 年下半年我們(搜一搜工程團隊)開發了一個新的內存檢索引擎 ZeroSearch,并開始對搜一搜背后的大量垂直搜索系統進行升級,隨著升級過程中遇到的各種問題和新的需求,以及半年多來我們自身認識的提高,在線檢索引擎在各個方面都取得了長足的進步。在本文中,我會對我們團隊做過的一些主要事件進行經驗的分享,全文較長,約 2 萬 2 千字,內容涵蓋評測體系介紹,倒排查找算法優化,線程模型優化,索引壓縮原則,wand 檢索實踐,向量融合方案,以及性能優化方面的工作。

本文與前文(ZeroSearch 在線檢索設計)的目的一致,并不是因為覺得自己做得比較好,而是因為網絡上關于搜索領域的工程技術文章實在太少了,幾乎都是從大的方案架構上進行介紹,然而從目前了解到的信息來看大家其實都大同小異,而稍微細化一點介紹具體實現的資料卻幾乎沒有。本文意圖略微填補一下關于檢索引擎詳細設計的資料空缺,搜一搜正在招聘后臺開發和運營開發工程同學,如果閣下對搜索引擎或者搜索系統感興趣,也歡迎聯系我們。下面開始正文。

在線檢索評測體系

工欲善其事必先利其器,為了能夠在版本迭代以及特性開發過程中,確保每次變更的質量以及量化其收益,我們先建立了一套在線檢索評測體系,該體系主要由以下幾方面構成:

  • 1 評測 Query 集

  • 2 評測文檔集

  • 3 評測工具

  • 4 評測指標

我們先從搜一搜的搜索日志里隨機篩選出了一批 Query,并經過一定的加工篩選后,得到了我們的評測 Query 集,同時從長文本業務中,隨機抽取了一批文檔,作為我們的評測文檔集。評測工具主要是通過設定 Query 集,并發數,評測時間,以及收集引擎返回的 kpi 信息(下文會介紹)進行統計,并輸出相關報告。評測指標主要分為以下幾個方面。

引擎 kpi

每次 Query 檢索過程中其召回篇數信息,耗時信息,以及打分信息引擎都會進行記錄,并隨檢索結果一起返回給上游,便于上游進行統計,上游通過統計 Query 集的信息后,得到我們最終的引擎 kpi,目前引擎 kpi 主要由以下指標構成:

全局指標

統計成功總數,失敗總數,空結果率,QPS 等指標。

召回結果指標

統計各個環節的篇數信息,如平均召回篇數,平均求交篇數,平均 L1 打分篇數,平均 L2 打分篇數等指標。

耗時指標

統計各個環節的耗時信息,如平均總耗時,平均求交耗時,平均 L1 耗時,平均 Join&L1 耗時,平均 L2 耗時,平均打分耗時,平均 Join&Score 耗時等指標。

耗時分布指標

統計最終耗時和各個環節耗時的耗時水位信息,如 99 分位耗時,99.9 分位耗時等指標。

打分指標

統計文檔的打分信息,如平均 L1 得分,平均 L2 得分等指標。

程序熱點

通過 perf 及其配套工具生成程序火焰圖,用于熱點分析,另外火焰圖也能方便我們了解程序全局的算力分配情況。

細粒度程序性能指標

perf stat 中的軟硬件統計指標,如 CPU 利用率,內存利用率,IPC(insns per cycle),cache 命中率,分支預測失敗率, context 上下文切換次數和 CPU 遷移次數等等細粒度指標。

得益于 BG 完備的運維體系,上面很多指標都有現成的運維監控系統可以統計到,包括程序的火焰圖也可以一鍵抓取。評測體系建立完成后,我們每次有重要特性合入時,都會進行一輪評測,獲取引擎的全面信息,除了上面說的質量保證和收益量化,該評價體系對我們的工作方向同樣具有指導作用。

細粒度統計指標中,實際上真正對我們的工作產生指導性作用的,只有 IPC,cache 命中率,分支預測失敗率。

關于倒排查找

在最初的設計里,我們的倒排查找實現非常簡單,由于每個 term 的倒排鏈都位于連續內存中,并且當時的索引結構也未進行壓縮,可以簡單理解為每條倒排鏈就是一個 uint32 類型的有序數組,因此我們是直接通過二分查找來定位某個文檔 id 的。

=注:經過半年多的迭代,目前索引結構已經發生了很大變化,不過并不影響本節內容。

這里其實是有個先入為主的問題,談到倒排查找的時候,我們(包括筆者)往往都會聯想到跳表,這可能是因為談到搜索引擎的時候,大家接觸過的或者想到的都是磁盤搜索引擎。基于這種刻板的認知,我們直接使用了二分搜索,因為在我們看來,跳表本質上實現的是一個在不連續內存上進行二分搜索的方式(這種認知也是有偏差的,實際上在磁盤檢索上其更多是從磁盤 IO 的角度來考慮的,且其比二分更能利用局部性優勢)。

稍作細想,我們可以想到,除了二分查找的方式,還有順序遍歷,Galloping Search 等方式。為了明確各種查找方式的一個性能對比,我們比較了以下四種倒排查找算法(基于 k-way 求交算法下,詳細見 ZeroSearch 在線檢索設計一文)的性能數據,結果出乎意料,這是部分數據的一個對比:

表格中的結論為:順序遍歷 > Galloping Search(區間內順序遍歷) > 大于 Galloping Search(區間內二分查找) > 二分查找。

注:檢索過程中會有多個庫并發進行求交,這里的求交耗時是把所有庫求交完所花耗時的累加值。根據不同的測試數據集和測試 Query 集,各個查找算法的消耗會有不同的表現,以上和以下數據均是以我們的測試數據集為準進行測試的,該測試數據集來源為搜一搜中較大的一個長文本搜索業務,測試數據集的文檔規模與真實的線上環境基本一致。

倒排查找統計

目前我們的倒排查找過程,分為以下兩個階段:

  • 1 塊間查找

  • 2 塊內查找

我們首先通過火焰圖觀察到塊間查找的消耗僅占 0.05%,幾乎可以忽略不計,因此對上面的結論造成影響的因素基本全部來自塊內查找。為了進一步明確塊內查找的消耗情況,我們對倒排查找函數內部的執行狀況進行了統計,以下為 Block Size 固定為 1024 時,需要向后查找 PageId 時的統計數據。

為什么我們之前 block size 采用了固定 1024 呢?主要是當時還未考慮索引壓縮,block size 太小的話,內存占用會變多(事實上這個考慮是多余的),而最終選用 1024,其實是因為 1024 是一個比較程序員的數字,一開始打算先用它試試,后面沒再花精力調整了。

1 Block Gap 統計

統計下一個目標 PageId 所在 Block 與當前 Block 的在倒排鏈上的距離:


表格中的結論為:1 100%的查找落在本 Block 和鄰接 1 Block 內,說明 k-way 求交算法下由于求交連續性,目標文檔幾乎都在近鄰 Block 內查找。2 解釋了火焰圖中塊間查找函數占比極低的原由。

2 目標 PageId 位置 Gap 統計

統計下一個目標 PageId 與當前游標指向的 PageId 在倒排鏈上的距離。

餅狀圖中的數字 2,4,8,16 等等是指統計區間的上限,如 2 指的是距離位于[0,2),4 指的是[2,4),8 指的是[4,8)

餅狀圖中的結論為:1 求交的連續性帶來了查找的局部性,離游標當前位置越接近的文檔,其作為下一個目標文檔 id 的可能性就越高。

2 解釋了二分查找性能最差的原因,由于二分查找的查找次數固定,其只適合目標文檔 id 均勻分布的情況,無法利用局部性優勢。

3 倒排鏈長度分布統計

我們對索引庫中倒排鏈長度的分布同樣進行過統計,結論為絕大多數倒排鏈都是短鏈,長鏈占比極低(但是與之相反的是,長鏈的累加長度遠高于短鏈,即倒排鏈的內存消耗反而主要是長鏈帶來的),這是最基礎的數據分布特征,我們認為這也是查找行為的局部性特征的重要原因之一,該統計數據對索引結構設計,索引壓縮方案同樣具備指導性價值。在 ZeroSearch 設計一文中,我們提到過索引數據會進行分片分庫,即數據是被稀疏過多次的,一般最終到一個索引庫內的文檔數已經降低到百萬級別了,這是造成倒排鏈長度的數據分布特征的一個原因。

不過這里還是得再強調一遍,本文中所有的統計數據都是基于我們選取的一個長文本業務(業務量較大)的數據統計得到,不同的數據源,是完全可能具有不同的數據結論的。

k-way 求交算法與倒排查找

通過上述的多個倒排查找算法的性能數據以及倒排查找中的 Gap 統計數據,可能會直接得出結論:順序遍歷在我們的評測體系中具有最佳的性能表現。但深入思考一下,我們會發現存在以下問題:

1 盡管 Gap 越大的位置,其占比越低,但是其要花費的查找代價也是成倍上漲的。

2 記第 i 條倒排鏈為 Pi,在倒排求交中一種常見的查詢優化手段是讓短鏈優先查找,即在初始階段,我們會對查詢語法樹進行處理,最終會存在這樣一個關系:

Len(?P(n+1)?)?>=?Len(?P(n)?)

由于短鏈節點查找消耗更低,單次查找更快,因此短鏈節點優先查找,可快速更新求交基準,有利于提前結束求交行為。在 k-way 求交算法下,第 n+1 條倒排鏈,其進行第 x 次查找時,其要查找的位置,是前 n 條倒排鏈已經查找到的第 x 個交集元素, 即:

P(n+1)x?=?(?P(1)??∩??P(2)??∩??P(3)??.....??P(n)?)x

即長鏈查找的次數一定是小于短鏈的(我們認為這也是局部性特征的重要原因之一)。如果數據分布均勻的話,那么毫無疑問,對長鏈而言,大概率前后要查找的兩個位置的 Gap 較大,這在一定程度上幫助我們分析了 Gap 統計數據中高 Gap 值的來源的問題。需要說明的是,這一點只是猜想,我們并沒有去進行精確測量。

動態調整

通過上面的分析,可以推測沒有最優的倒排查找算法,只有針對具體的場景最合適的倒排查找算法。因此在應對不同的語法樹時,我們會對語法樹中每一個 term 節點,通過該 term 節點在優化后的語法樹中的位置,該 term 節點對應的倒排鏈長度,該 term 節點的起始文檔和結束文檔的覆蓋范圍,以及其它 term 節點的相關信息等特征,我們可以從全局的角度進行考慮,來為每個 term 節點選取最佳的查找算法,以逼近理論最優值。

在我們的評測體系下,與其它的單一的查找算法相比,動態選取方式生效的查找行為比統一的查找算法速度提升了25%,但由于并不是所有的查詢語法樹都需要動態調整,因此其生效比例并不高,在評測集最終整體的平均查找耗時的優化效果上大打折扣。

在動態調整的應用過程中,我們曾一度預期 Galloping Search+循環查找的方式性能可能最好,因為我們做過 Gap 統計,k-way 求交算法下,查找是具有局部性特征的,那么 Galloping Search 會比二分搜索更適合。但通過大量的測試,在我們的測試集下,測試數據又一次證明預期是錯誤的,結論為二分搜索是比 Galloping Search 更合適的大 Gap 下的查找算法。我們曾試圖過去尋找一些原因,不過淺嘗輒止,一種簡單的數學上的印象是這樣的:在大 Gap 下,如果我們新打開了一個 Block,那么查找位置,落在該 Block 中的所有位置的概率是均勻 的(盡管局部性的存在導致并不是這樣的),那么通過計算查找消耗的數學期望可以知道,二分的數學期望是最小的。即在 BlockSize 為 1024 的倒排查找中,我們完全棄用了 Galloping Search。

多級倒排表設計

通過上面的數據分析已經知道,在一定的索引特征和 k-way 求交算法下,求交行為具有局部性特征。其實倒排鏈分塊(一級索引)本身就已經充分利用了局部性了(保證了我們能夠在近鄰塊內進行查找,而不是整條鏈查找),這里存在一個設計問題,即倒排表應該分多少級?例如一級索引,二級索引,三級索引等等。這個問題其實也顯而易見了,由局部性特征及其統計數據可以知道,一級索引已經足夠了,繼續增加只會徒增 IO 和計算邏輯,這點我們認為不論是對磁盤搜索引擎還是內存搜索引擎都沒有區別,不過這條結論是由我們的測試數據集和測試 Query 集得到,且只是單純的文本檢索,我們只能確保目前在搜一搜內該結論有效。

算力分配問題

正如之前在 ZeroSearch 設計一文中提到過的,我們認為內存搜索引擎要解決的核心問題是計算量的分配問題,即如何合理的分配計算量,能盡可能的讓優質結果展現給用戶。解決量與分配的關系關鍵在于對檢索流程進行標準化,而標準化的意圖在于量化算力。為此我們抽象出了求交任務,L1 打分任務,L2 打分任務,資源清理任務等四個邏輯任務,并設計了任務的流水線模式。在 ZeroSearch 里,每一個邏輯任務就是對于計算量的一個抽象,而量化的尺度為各任務的文檔篇數與超時時間。

我們會發現量化似乎是資源類應用設計的通用準則,例如從硬件層面看,其對于算力的量化標準為 CPU 頻率,功能單元容量,延遲,發射周期等性能指標,從機器運維的角度看,其量化標準為機器的 CPU 使用率,而我們要做的事情(CPU 密集型服務)其實就是將 CPU 使用率合理的轉化為我們的量化標準,我們希望每一分 CPU(在篇數與超時時間不變的情況下)都可以對應到具體的 QPS。

在我們最初的設計里,每個任務一旦被調度到,就會運行到結束或者超時。考慮到不同任務的計算量消耗是不一樣的,以及單庫單線程求交設計中,求交任務消耗最嚴重,為了避免餓死其它線程,我們進行了拆分多個線程池,即整體如下圖所示:

按照最初我們的預期,假設求交線程數為 x,打分線程數為 y,會存在一組參數(x,y),且 x + y = CPU 邏輯核數時,其性能最佳,引擎吞吐量最大。但是經過大量測試,出現了反預期的現象:

各線程池的線程數均較多時(超越核數),吞吐量反而更高。

為了找到線程數與吞吐量的關系,我們先固定了 x:y=1:1,通過調整引擎的線程總數**(線程總數=線程系數*CPU 邏輯核數量**),對多組參數進行測試和統計,得到了下圖:

說明:在達到最大吞吐時,各組測試參數下的服務 CPU 均已達到 90%多,快接近 100%,圖中的吞吐能力可以簡單理解為最大 QPS。

散點圖的縱軸表示吞吐能力,橫軸表示線程系數,可以看到在剔除了線程系數為 1 的數據后,整體的波動就比較明確了,大體上呈拋物線,先緩慢上升,后緩慢下降,整體上還是穩定的。我們通過對比測試過程中得到的統計數據對此進行了分析。

上升階段

線程系數由 1.5 遞增到 3.5 時,整體上升,上升趨勢逐步收斂。

分析:大多數請求召回篇數較低,甚至空召回,增加各線程池的線程數量,本質上是增加了各任務階段并發度。低(空)召回請求可以更快得到處理,請求平均等待耗時下降,最終檢索平均耗時下降

下降階段

繼續增大線程系數,當線程系數超過 3.5 后,吞吐開始下降,下降趨勢逐步收斂。

分析:通過統計數據我們觀測到 sys 部分 CPU 在上升,推測是內損消耗變大(如線程上下文切換,線程之間的競爭等),帶來的收益小于增加的成本

同時我們對性能最優的這組線程數據(線程系數 3.5),以遞增的壓力進行壓測,并統計不同壓力下的吞吐,得到了以下數據:

當壓測系數超過一定閾值時,其吞吐能力直接下降了一截,可以知道這種模式的穩定性較差,并且當我們繼續增大并發壓力時,其吞吐還在緩慢下降。

新的方案

多線程池任務粒度調度模式的設計存在以下兩方面的問題

1?業務很難配置出一個得到最佳性能的參數2?服務的穩定性較差,壓力過大時可能導致雪崩

因此新的方案中我們舍棄了多線程池的設計,因為我們認為這是導致服務穩定性較差的重要原因。

另一方面,任務為粒度的調度單位太大了,長尾請求容易持續占用 CPU,最終導致算力分配不夠均衡,因此我們重新實現了調度機制,不再以任務為粒度,而是以時間片為粒度,最終方案采用了單線程池設計 + 時間片粒度調度設計。程序被分配了多少個核,我們就創建多少個引擎工作線程,并分別綁定 CPU 核。

但需要強調的是,時間片粒度調度方案的設計初衷是為了保障在低線程數的情況下,依然保持較低的任務平均隊列等待耗時,而不是最大吞吐量和服務穩定性。但是該項收益在我們的測試集中并不明顯,因此在下文中我們依然是以最大吞吐和穩定性兩個維度進行對比和分析

關于任務平均隊列等待耗時假設我們有3個任務A,B,C, A 需要執行3個時間單位,B和C分別需要執行1個時間單位,現在我們有一個CPU核,在任務粒度調度里,假設我們按A,B,C的順序進行執行,各個任務從入隊到執行完畢所花的時間如下:A任務?3?時間單位 B任務?4?時間單位(隊列等待3時間單位) C任務?5?時間單位(隊列等待4時間單位)任務平均耗時(3?+?4?+?5)?/?3?=?4?時間單位假設我們按C,B,A的順序進行執行,則各個任務所花時間為:C任務?1?時間單位 B任務?2?時間單位(隊列等待1時間單位) A任務?5?時間單位(隊列等待2時間單位)任務平均耗時(1?+?2?+?5)?/?3?~=?2.67?時間單位即時間片調度的一個直觀收益在于,其可以減少平均隊列等待耗時。但這點如何驗證呢?以下兩種方式都可以驗證得到 1?通過固定QPS請求服務,統計平均耗時相關的指標 2?通過固定并發數請求服務,統計服務的QPS指標 不過在我們的測試數據集中,我們對測試集本身卡了空結果率,保證測試集的空結果率在1.5%以下,實際上線上業務的空結果率遠高于此值,而在空結果率高的情況下,時間片輪轉調度的收益才會更高

同樣的,在我們實現完該方案后,我們對多組參數進行了測試和統計,得到了以下數據。

通過多組測試,在最大吞吐量方面,時間片調度方案與任務粒度調度方案幾乎相等。在引入時間片調度后,會增加以下成本:

1?增加了各任務的入隊出隊次數2?由于業務相關性的一些需要,相關性庫在每個任務的開始函數和結束函數的調用會變為多次(任務粒度的調度則只有一次)

如果將上述第 2 點也改為一次的話,在測試數據集中,最大吞吐量的收益穩定在 1-2%,不顯著。

由于時間片調度會增加一些成本,因此我們最初預期是最大吞吐會有所下降,但測試結果是基本持平,甚至略有提高。

理論上,除非我們減少了長尾請求的算力占用,否則時間片調度方案不應該有最大吞吐量的收益。這是因為一個請求在沒有超時的情況下,其消耗的算力是固定的。而單位時間下,機器擁有的算力也是固定的,兩者相除即得到服務的最大吞吐量。我們通過統計數據觀察到,不論是在時間片調度還是任務粒度調度方案里,有任意環節超時的請求數均為0,即每個請求的算力消耗是一致的。時間片調度方案相比任務調度方案的最大吞吐收益來源其實分為兩部分,一部分來自sys部分(該部分占用恒定且非常低),另一部分是時間片調度是唯一一個可以完全榨干算力,CPU占用一直保持100%的方案。

雖然在最大吞吐量上的收益不明顯,但是服務的穩定性大大增強,當吞吐達到最大值后,即便我們繼續增加壓測壓力,服務也只是各階段的平均耗時在上升,但是吞吐保持了穩定。

同時,單線程池的設計也可以簡化引擎的參數配置,業務不再需要理解和配置各個線程池的線程數量,降低了使用門檻。

??當以時間片粒度調度時,如果時間片足夠大,將退化為任務粒度調度,我們同樣測試過這種情況,在我們的測試數據集中,其穩定性,以及最大吞吐量都比小粒度時間片要差。即小粒度時間片方案在輸入差異的情況下,還可以保證在一個周期內具備比較恒定的輸出。另一方面,我們還未對任務調度進行過多優化,目前整體為一個簡單的優先級隊列。改為時間片粒度調度后,由于任務重復入隊,如果服務的并發壓力過高的話,那么服務同樣會面臨雪崩的問題,這也是后續我們計劃優化的一個方向。不過某種程度上這其實是一個偽命題,由于組件化的設計,我們的在線檢索服務?=?在線檢索組件?+?任意支持線程模式的RPC框架,即檢索服務中存在兩個線程池,一個是RPC框架的工作線程池,一個是在線檢索組件的工作線程池,即最大并發壓力=RPC框架的工作線程數量。因此RPC框架的工作線程數量幫我們限制住了服務的最大并發壓力,在達到最大并發壓力之前,CPU早早就達到100%,觸發擴容機制了。另一方面通過優化任務調度的策略,我們也可以進一步減少平均任務隊列等待耗時。

對于算力分配問題,其實我們的完整解決思路是從分配高效和分配均衡兩點下手,對應的解決方案分別為任務流水線設計以及單線程池時間片調度,由于任務流水線設計已經在 ZeroSearch 設計一文中提過了,因此本文就不再重復了。

關于索引壓縮

索引壓縮部分主要由我們團隊的 agan 負責,后續將有獨立的分享,本文中只談一下我們對于索引壓縮的粗淺認識。

空間與性能的權衡

當談到索引壓縮時,按照思維的慣性,我們可能會想到倒排鏈的各種壓縮算法。依瓢畫葫蘆的確是一件比較輕松的事情,但如果深入思考的話,我們會發現倒排鏈的壓縮對內存搜索引擎來說,其收益是比較局限的。

壓縮的本質是時間換空間,但是在內存搜索引擎里,CPU 與內存都是緊缺資源,導致倒排鏈的壓縮變成了性能與空間的一項權衡,即我們會傾向于訪問頻率越高的數據,其壓縮的必要性越低,或者是解壓效率越重要(當然不壓縮的時候解壓效率是最高的),很遺憾倒排鏈恰恰是訪問頻率最高的。不過在磁盤搜索引擎里這點是毋庸置疑的,由于磁盤 IO 的存在,其不止換到了空間,還省了時間,一本萬利。(注:這里的磁盤 IO 特指 hdd,非 ssd)。

事實上,在我們開啟索引壓縮工作前,我們先選取了一個文檔量較大的核心業務的索引庫,對引擎內的各部分索引結構的空間占用進行了精確測量和統計,我們希望能夠對我們要做的事情先有一個全局的認識和掌控,并盡可能提前量化好工作收益,再以此為指導進行工作的展開。

在得出具體的統計數據之后,我們做的第一件事不是索引的壓縮,而是索引結構的重新設計,在我們的收益預估中,索引結構的重新設計,其性價比(空間優化幅度 / 性能降低幅度)比倒排壓縮更高。

另一方面,我們通過對已有業務進行統計,真正占用了內存消耗大頭的,反而是文檔的正排數據(含文檔的 Pos 數據)。因此對于倒排鏈的壓縮,我們只采用了一些非常輕量的壓縮方式,一方面倒排數據是檢索過程中訪問最頻繁的索引數據,另一方面倒排數據在索引數據中的占比并不高,沒有必要為了倒排的內存空間收益而放棄 CPU 和性能。

關于 weakand 的落地應用

長期以來,在文本檢索這塊,搜一搜使用的都是嚴格的布爾檢索形式。例如用戶輸入 Query:[廣州機場附近有啥玩的地方],我們通過分詞環節,可能會得到[廣州,機場,附近,有,啥,玩,的,地方]這樣一個 term 列表,一種理所當然的做法是將各個 term 對應的倒排鏈取出來,求其交集,得到我們的召回結果,即語法表達形式如下:

(廣州 and 機場 and 附近 and 有 and 啥 and 玩 and 的 and 地方)

在 Query 處理過程中,分詞之后,還有很關鍵的一步,就是對這個 term 列表中的 term 設置必留(必須命中)或者丟棄(可選命中)屬性。例如我們可能會對[有,啥]兩個 term 設置丟棄詞屬性,就算文檔沒命中這兩個 term 也可以進行召回,即語法表達形式如下:

(廣州 and 機場 and 附近 maybe 有 maybe 啥 and 玩 and 的 and 地方)

當然,在這個例子中我描述的很簡單,但實際上在長 Query 下,必留或者丟棄屬性的設置要做到比較精確是非常困難的,這里一部分原因是語言自身的復雜度,另一部分原因是搜一搜背后存在大量的垂直搜索引擎,各個垂類搜索引擎的必留/丟棄屬性的設置標準是不一樣的,Query 處理環節中,不可能滿足所有需求。

正如 ZeroSearch 設計一文中提到的,我們對 weakand 的認識在于這種求交方式可以緩解對于 Query 處理能力的依賴,這恰好是搜一搜所需要的。通過相關論文對 wand 有一定了解后,我們最終在引擎內采用了 block-max-weakand 的實現方式,并對其性能,召回效果方面有了一定的應用經驗。

block-max-weakand 實現的主要參考論文:[Efficient_query_evaluation_using_a_two-level_retrieval_process][7]

wand召回方式是以召回相關性得分TopK的文檔作為召回目標,假設我們存在一個Query:ABCD,其分詞結果為A,B,C,D,在布爾檢索中,其召回集的size為:A?∩?B?∩?C?∩?D在動態非必留中,其召回集的size為下面的區間:[?A?∩?B?∩?C?∩?D,????(A?∪?B?∪?C?∪?D?)?/?N?]?,?N?為要求的最低命中term數在weakand中,其召回集的size為:A?∪?B?∪?C?∪?D很明顯,weakand的召回集的size是最大的,為所有相關的倒排鏈的并集,我們記為S。weakand的召回方式為從S中選取出相關性評分TopK的文檔出來,然后進行召回,這種召回方式與布爾檢索或者動態非必留是完全不同的。在布爾檢索和動態非必留中,本質上召回的文檔是滿足命中關系的L0得分TopK的文檔。

量化單位

(我們認為)搜索引擎的設計標準之一:讓算力變得透明,可量化。因此引入 wand 第一個要考慮的問題是如何去量化 wand 召回行為,篇數與超時依然是我們的量化尺度。在超時上,wand 屬于召回環節里的不同召回方式,因此超時機制可以直接復用。在篇數上,wand 的召回方式為選取相關性評估得分 TopK 的文檔進行召回,不過這是在滿求交下才能得到的理想結果,為了與原有篇數配置兼容,我們新增了一個求交膨脹系數。即在 wand 召回中,其求交篇數為原有的求交篇數配置*求交膨脹系數,然后再從這些文檔中,選出相關性 TopK 的文檔進行召回。

在召回篇數未達到 K 時,文檔將按 did 從小到大順序依次入堆,當堆滿之后才開始裁剪邏輯,因此減小求交篇數配置值可以更快速的開始裁剪。而增加求交膨脹系數后引擎將求交出更多的文檔,即在更多的文檔中選出 bm25 得分 TopK 的文檔,從而得到一個更優質的召回結果集,但其代價為消耗更多的算力。

在固定求交篇數的條件下,假設引擎固定求交 10W 篇,即:

求交篇數配置?*?(?1?+?求交膨脹系數?)?=?10W

我們對多組參數進行過測試,求交膨脹系數越大,求交篇數越小,召回過程就越快,原因在于其能更快速的進入到裁剪過程,且裁剪過程將得到加速。

另一方面,理論上求交膨脹系數越大,求交篇數配置越小,最終召回結果將會越優質,原因在于其裁剪規模將越大(未滿求交的前提下)。使用者可以根據自身需求,綜合考慮召回篇數,召回效果以及性能損耗。

內存 or 算力

在我們的 wand 實現里,采用了各個字段的 bm25 得分加權求和來作為文檔的相關性評分。bm25 得分的計算項主要是兩部分,一部分是計算 Term 權重,另一部分是計算 Term 與文檔的相關性評分。

其中 Term 權重是固定的,一個索引庫內的每個 term 只需要計算一次,其空間占用較小,因此我們放在了離線索引階段來計算。還有一部分原因是搜一搜中大多數業務的倒排鏈目前不是按 field 粒度來建的,而是按文檔粒度建的,在線計算的話無法分 field 來計算。

但是 Term 與文檔的相關性評分,屬于 Term-Doc 維度的得分,如果在檢索階段,對每篇求交出來的文檔都計算一遍,這部分的 CPU 消耗不可忽略。因此其實現方式有兩種,分別為在線計算或者離線計算 Term 與文檔的相關性評分。采用離線計算時,依據業務的不同,內存大概增長 20-30%,適用于業務體量較小的業務,例如帳號搜索系統。而采用在線計算時,CPU 大概增長 10%,適用于業務體量較大的業務,例如長文本搜索系統。

初始閾值

在 wand 召回里,當召回篇數小于 K 篇時,文檔將直接入堆,原因在于我們需要先求交出 K 篇文檔,才能選舉出裁剪閾值,然后執行裁剪邏輯,并在隨后的過程中不斷更新閾值,而閾值越高時,裁剪規模也會越大,整個求交過程會處于不斷加速的過程中,類似于滾雪球,越滾越快。

根據統計得到,直接入堆的文檔得分一般都較低,在后續的求交過程中也會被丟掉,從而浪費了算力。因此我們提供了讓業務設置初始閾值的能力,提前開啟裁剪邏輯,確保初始入堆的文檔質量。另外一方面,業務也可以通過給與一個較高的初始閾值,從而加速整個求交過程,在固定求交篇數下,較高的初始閾值可以保證遍歷到更多的文檔(即滿求交率更高),進而提升最終的召回文檔的質量。但是閾值給的過高時,可能導致欠召回問題產生。

出于性能的考慮,我們也會根據文檔頻率,以及查詢 term 列表的特征信息,提供一個默認的保守計算初始閾值的選項。

計算規模裁剪

在布爾檢索中,檢索串越長其召回集越低(召回集為 term list 的交集),但是在 wand 求交方式里,檢索串越長,其召回集就越大(召回集為 term list 的并集),參與到 wand 計算的 term 就越多,其性能損耗也將越大。

但是 wand 召回方式本身就天然適用于解決長串的召回問題,為了加速 wand 召回方式里長串的檢索速度。我們支持布爾檢索與 wand 召回結合的檢索方式,即可以從長串中抽離出核心詞或丟棄詞,對于核心詞采用嚴格 and-or 語義求交,對于丟棄詞則直接不參與求交。最后剩下的 term 才參與到 weakand 的計算中來,最終達到減少 wand 計算規模的效果。

初始閾值是一種通過加速裁剪過程來完成加速召回的方式。而抽離核心詞做布爾檢索則是通過減小計算規模(召回集大小,wand 計算的 term 數量)來完成加速召回的方式。

適用場景與效果

wand 召回方式可緩解搜索系統對于 NLP 能力的依賴,因此其天然適用于長串的檢索召回。在搜索系統中,長串的檢索召回相比短串要困難很多,一方面是 Query 處理過程中很難精確設置必留/丟棄詞,即容易出現召回偏移和欠召回問題。另一方面,相關性計算方面也容易出現結果漂移。我們這邊有獨立的相關性計算流程,因此對于 wand 主要用于解決召回偏移和欠召回的問題。我們對長文本業務做過一個召回覆蓋率的評測,評測結論為:增加一路 wand 召回隊列,大約可以提升 12%絕對值的召回覆蓋率。

關于向量融合

向量檢索及其優化主要由我們團隊的 willen 和 jingwen 負責,后續將有獨立的分享。本文中主要介紹我們處理向量檢索結果和文本檢索結果的多隊列結果融合方案的實現。

問題背景

引擎進行文本召回時,本質上是對多個有序列表求其交集,同時整個過程是流式的,因此隨著求交不斷進行,彈出來的 did 是有序的,整體是 did 從小到大進行召回。由于 L0 得分越高,did 越小,因此文本召回的結果集一方面是 did 有序,另一方面它是質量分從高到低的一個結果列表。

注意:此處的 did 特指引擎內部給文檔賦予的 id,與業務層面的文檔 id 不一樣。引擎內部對文檔進行 id 賦值時,標準為 L0 得分(離線計算得到的文檔質量分)越高,則其 id 越小,保證在倒排鏈的前面,能被優先求交出來。

引擎進行向量召回時,將搜索與檢索條件中的向量距離最接近的文檔,即向量得分越高的文檔進行返回,其整個過程其實也是流式的。向量召回的結果集,為向量距離從小到大的結果列表,或者說是向量得分從高到低的結果列表。但 did 是無序的。

在相關性特征輸入信息方面,文本隊列的只有文本命中信息,而向量隊列的只有向量得分信息。由于我們希望將結果的融合放在引擎內部實現,因此不論文檔是從文本隊列召回還是向量隊列召回,我們在給到相關性庫打分時,其相關性特征輸入信息應該保持一致,否則相關性庫無法以一個統一的標準來對文檔進行相關性評分。

當文本召回和向量召回同時進行時會面臨一個問題,即在什么時候進行結果融合?一種方案是召回過程中進行融合,但是文本召回需要保證 did 有序,否則倒排求交就沒法進行下去了,而向量召回結果為 did 無序,因此我們需要將其轉化為有序。

另一種方案是召回階段結束后融合,首先兩個隊列出來的結果集幾乎可以肯定是不一致的,兩者的結果集沒法完美合并掉,那么我們還需要將其特征進行對齊。

引擎底層融合,比讓業務自己在上層融合具備更多優勢,其一是更低的開發成本,其二是融合排序會更加容易且自然。如果文本檢索和向量檢索是獨立系統的話,那么引擎底層融合與之相比,還可以減少維護成本,同時規避掉多套檢索系統帶來的數據冗余和一致性的問題。

召回隊列與召回比例

遵循算力可量化的標準,我們先對引擎的檢索輸入信息做了多隊列召回支持的改造,支持使用者設置多條隊列的檢索條件,并給每條隊列設置一個召回比例。各個隊列的召回篇數=求交篇數配置項 * 隊列召回比例的百分比。

融合召回方案

在 ZeroSearch 中,一次檢索行為,會經歷三個階段:

求交階段?--->?L1打分階段?--->?L2打分階段

對于融合召回,我們最初采取的解決方案是在求交階段通過控制各條召回隊列的召回比例來進行混合召回完成的。那么我們需要解決的是向量隊列 did 無序返回的問題,我們的思路也很簡單,直接讓向量隊列先完成召回,然后再 sort 一遍后與文本隊列融合。整體設計如下圖所示:

整體流程為:

1?求交任務先進行向量召回2?對向量召回結果進行sort,按did從小到大排列3?求交任務進行文本召回,并與向量召回結果融合4?求交結束,進入打分階段

該方案的優勢為:

1?結果融合時可保證文本隊列的召回結果與向量隊列的召回結果不重復由于求交任務中的向量召回隊列先進行,引擎給與了向量召回結果更高的召回優先級,因此可保證文本召回與向量召回結果不重復,但是向量召回隊列之間還是可能存在結果重復2?向量召回結果可獲取到文本命中特征倒排鏈的組織形式為按did從小到大排列,因此文本召回過程中,可通過將查詢串的各條倒排鏈的游標移動到向量召回結果的did位置處,來獲取向量召回結果的文本命中信息

該方案同時具備以下缺陷:

1?文本召回和向量召回實際上是在同一個求交任務下串行進行,導致最終耗時和召回耗時下限都比較高2 文本召回的結果獲取不到向量特征(向量得分),這是因為實際業務場景中,文本隊列的召回比例往往非常高,一方面我們需要尋址和讀取該文檔的向量信息,另一方面高維向量的一次歐拉距離或者內積計算的消耗同樣不可忽略,由于可能存在多條向量隊列同時召回,如果對每個文本隊列的結果單獨計算多次向量分,但進入L2打分階段卻只有L1得分TopK的結果,這里會存在較多的算力浪費的現象。

獨立召回方案

為了解決融合召回方案中的缺陷,我們重新思考了結果融合這個問題,總體思路為忽略非必要的缺陷,解決核心需求點。通過結合實際場景分析,向量召回的結果一般用于補充文本召回的結果,且其召回量相對較低,向量召回結果與文本召回結果存在適量重復是可以接受的。而召回耗時增加,以及多條隊列的召回結果,其文本/向量特征不完全統一的情況對于打分階段是難以接受的,基于此我們提出了新的多隊列獨立召回方案,新方案的整體設計如下圖所示:

其整體流程為:

1?文本召回由獨立的求交任務和L1打分任務進行2?向量召回由獨立的求交任務和L1打分任務進行3?兩條召回隊列的結果在L1打分結束后進行融合,統一文檔特征4?將特征統一后的最終L1打分結果送入L2打分結果

其核心設計點為:

1?特征統一放在了L2打分階段之前進入L2之前如果在L1打分階段進行特征統一,對一篇文檔的特征進行統一的消耗較大,而求交階段的召回結果較多,性能消耗較大,因此該方案被舍棄2?向量隊列結果可直接進入L2打分向量隊列召回的結果本身就是向量得分TopK的結果,沒有必要再進行L1打分篩選一遍TopK,從而規避掉了與文本隊列結果一起進入L1篩選TopK的問題

該方案其實依賴于雙打分流程(L1Score ---> L2Score)的設計。但在 ZeroSearch 設計之初,其實我們也沒有意識到雙打分流程在多隊列召回中也能起到關鍵性作用。

這里想說點題外話,雖然我們讓引擎支持了 wand 召回方式,也支持了引擎同時進行文本和向量檢索,且尋找到了一條至少看似合理的路徑實現了結果的融合。但是于個人來說,做這些事情的過程和結果并不是最重要的,重要的是做完這些事情后,它們本身給我們帶來了新的思考,即:作為一名成熟的搜索工程同學,其職業成長的方向會在哪里?一種顯而易見的想法當然是引擎平臺化,技術產品化,那么圍繞這兩點進行工作方向的展開即可。

盡管要做到這兩點已經非常困難,事實上能做到的公司鳳毛麟角,但這只是我們的次要目標,因為我們還有更重要的業務目標。長久以來我們對信息檢索的認識就是分詞,索引,倒排求交,打分,排序這樣一套模板,即便平臺化后,也不過是模板通用化了,可以批量生產了,但實際上我們并沒有在這個領域取得進步,搜索最終依然是 NLP 能力的體現,這有點類似于三體中基礎科學被智子鎖死后地球科技的發展。而 wand 和向量檢索與融合則不同,它們重構了信息檢索過程,并分別在一定程度上減輕了對 NLP 能力的依賴,最終卻能在一些 case 下達到一個更好的檢索效果,這也會是我們后續的一個思考方向。

關于性能優化

性能優化是一個非必須,但是又避不開的話題,一方面引擎性能不能太拉垮,但是比性能更值得去建設的事情又太多了,其重要性也就大打折扣了,另一方面,性能優化是一個長期持續的事情,從我們開始這部分工作以來,引擎的召回性能相比最初的版本已經提升了近 50%(最大吞吐能力)。由于搜索引擎是一個比較特殊的 CPU 密集型的服務,其性能優化的思路與一般的業務場景會有所差異,畢竟對大多數業務場景而言,再多的優化方法可能都沒有一次緩存命中的效果好,下面簡要介紹我們在搜索引擎上應用過的優化方法。

搜索引擎進行召回時,需要召回多篇文檔,因此本身就處在一個大的循環的場景中,存在部分代碼段調用時機極為頻繁,即自身存在優化基礎,另一方面,在短平快開發模式下,無法寫出具備較優性能的代碼,也因此引擎在代碼性能方面存在優化空間。

首先是優化位置的定位,引擎本身的代碼大概分為以下幾個場景:

1?程序生命周期級別 2?請求級別 3?請求-文檔級別 4?請求-文檔-字段級別 5?請求-文檔-語法節點級別

原則上我們只關注高頻調用的邏輯,即大循環體內,文檔級別以下的場景,另外火焰圖也可以幫助我們定位到熱點函數。

榨取算力

simd 應用的優化效果一般,建議參考。

simd 應用

simd 是通過擴寬單條指令處理的數據流來實現算力的榨取。目前公司的生產環境基本都支持 sse 和 avx256 指令集,倒排查找過程中,Galloping Search 及其變體實現(與 simd 結合后,我們的做法是通過一次 simd 比較就確定查找區間),以及順序遍歷的查找方式與 simd 的使用剛好是匹配的。通過對倒排查找函數進行 simd 改造,使得整體的查找效率得到了一定幅度的提升。關于 simd 在倒排查找算法上的應用,網上已經有非常多的資料,這里就不再展開講解了,附上在我們的引擎中以及對應的評測數據下,不同倒排查找算法,經 simd 改造后的耗時對比數據,該數據為 block size 為 1024,且索引未壓縮的數據,僅供參考:

  • 遍歷:指順序遍歷查找方式

  • SSE:指順序遍歷查找方式,使用128bit寄存器及相關的指令集實現版本

  • AVX:指順序遍歷查找方式,使用256bit寄存器及相關的指令集實現版本

  • GP: 標準的Galloping Search查找方式(非simd實現方式)

  • GP + xx:先通過GP確定查找區間,區間內使用xx查找方式

可以看到遍歷是 simd 應用前最佳的查找方式。另外 AVX 相比二分,倒排查找耗時降低了約 26%,由于對于召回模塊而言,倒排查找的消耗只占其中一部分,因此對最終的性能提升的貢獻一般。

不過值得一提的是,由于索引壓縮的需求,我們后續的索引結構里,block size 調整到了 128 附近浮動,這里出現過一個反預期的現象:

在索引不壓縮的情況下,SSE,AVX 等指令集反而是負優化,速度最快的是順序遍歷。

通過分析,我們認為整個倒排查找過程的性能消耗主要由以下兩方面決定:

1?CPU計算2?Memory?Load(L1Cache與寄存器)

我們推測,由于在局部性特征的存在,在我們的評測數據下:

1 block size在1024時,引入了太多無效的CPU計算,因此simd指令集應用可以加速整個過程。 2 block size在128附近浮動時,simd指令集引入了太多無效的Memory Load操作,從而導致在不壓縮情況下,反而成為了負優化。
指令并發

與 simd 不同,另一種算力榨取的方式為增加單個時間周期里 CPU 處理的指令條數,對應到我們評測體系中的 IPC 指標。深入理解計算機系統一書中對指令并發進行過介紹,其最常見的手段就是循環展開,以及解除指令流中的數據依賴。我們曾經試圖過對此進行應用,場景集中在索引數據的解析中,但最終基本沒什么效果,或者說處在誤差范圍之內。這里很大部分原因在于我們當時的索引結構還未進行過壓縮,沒有找到較合適的應用場景,在解壓操作中該優化方式的優化空間應該會比較大,不過對于新版的索引結構我們還沒有投入時間去針對性優化(目前索引層接口設計歸屬在離線工作中),因此這方面的最新數據暫時還欠缺。

引擎一直采用的 02 的優化等級,我們也用過 O3 的優化等級去編譯,例如循環展開,函數內聯優化等手段,在 O3 等級中編譯器就會開啟,但是經測試,02 和 03 優化的二進制在性能上沒有差異。原因可能是多方面的,例如引擎內部邏輯比較復雜,在代碼編寫過程中已經很注重使用 inline 了,編譯器的循環展開,內聯優化等手段可能影響很小,也可能是代碼段的膨脹抵銷了收益。

另外 inline 雖然是建議內聯,但是經實踐,O2 優化之下,編譯器會將相關函數都內聯掉。另外類的成員函數如果是 private 方法的話,即便聲明和實現分別在.h 和.cc 文件中,也可以通過 inline 實現內聯。這里強調 private 的原因是,非 private 方法一般會在別的 object 文件中被引用,如果聲明和實現分離,內聯后會導致找不到符號。

內存優化

內存優化的優化效果顯著,強烈建議參考。

內存引用優化

引擎檢索時會涉及到大量的索引數據操作,內部使用了較多的指針,所謂內存引用優化,指的是減少間接尋址的次數。其最簡單的應用為將需要多次訪問的地址(可能在不同函數中訪問),使用臨時變量將該地址下的值給保存起來,從而避免多次解指針。這一點經實踐確實有效,不過借鑒經驗不大,因為引擎這里還存在一些隱藏屬性,首先索引數據不是內存對齊的,另一點是索引數據比較大,例如我們的評測體系中機器的內存空間占用幾乎達到了 80%,在 NUMA 架構下,內存分為本地內存和非本地內存,如果索引數據處于非本地內存,其訪問速度要慢很多。

我們甚至做過一些測試,將一些索引數據的讀取直接改成了 memcpy,結果發現兩者性能差距可忽略不計,內存訪問對于性能的影響可見一斑。

內存分配優化

檢索過程中會涉及到大量的復雜數據結構的使用,最突出的一點就是文檔的相關性信息中命中信息的存儲。文檔相關性命中信息是一個非常復雜的結構,多層 struct 嵌套,且里面包含大量指針,涉及到堆內存的申請和釋放。所謂的分配優化,并不是單純指減少內存分配函數的調用次數(特別是程序在鏈接上 jemalloc 后,內存分配的開銷已經被弱化過一次),而是指我們試圖讓一次檢索行為涉及到的核心數據結構的內存都處于連續的內存空間。

注:由于 ZeroSearch 本身是多線程環境,且內部存在頻繁的小內存申請和釋放,因此我們目前先選用了 jemalloc 來負責內存管理

內存分配優化給引擎整體的性能帶來了肉眼可見的提升。一種顯而易見的優勢是連續內存分配可以充分利用局部性原理,例如提高程序的 cache 命中率,但經測試這一點的收益占比非常小,其真正的收益在于加速了引擎的資源清理,內存塊的釋放是一種更徹底的析構調用

不過我們目前在連續內存分配上還沒有做的非常徹底,當前索引層的接口設計里面還大量使用了智能指針來進行內存管理。即便合理運用智能指針和右值引用,當其使用量較大時,其性能損耗依然較高(主要消耗在析構),下一步我們計劃將在線的內存管理機制滲透進去,預期這里還將帶來可觀的收益。

由于用戶層使用的是虛擬內存空間,用戶層的連續內存分配是無法保證物理上連續的,因此我們并未采取預申請大內存的方案,而是采用鏈表來管理。整個內存管理方案也非常簡單,整體如下圖所示:

默認情況下,單個 Memory Block 的大小為一個(一倍)頁面大小,根據使用場景可自行調整倍數。如果單次申請超出了頁面大小的話,則使用傳入的參數值。釋放的時候,遍歷 Block 鏈表,逐塊釋放即可。但同樣的,內存分配時依然需要注意保持內存對齊的原則,我們的做法也很簡單,保證每次分配的內存塊均為 8 字節的倍數即可。

分支優化

分支優化的優化效果不明顯,略高于誤差范圍,不建議參考。

條件傳送

現代 CPU 多級流水線的實現,一旦分支預測失敗,將導致流水線沖刷,從而帶來性能上的損耗,將一些簡單的條件控制語句轉為條件傳送語句,可有效減少程序分支,從而規避掉該問題。與條件控制語句不同,條件傳送語句將會同時計算兩個分支的結果,最后根據控制條件的結果來選擇計算結果,其最常應用的場景就是賦值運算的代碼塊。例如引擎中存在一些循環代碼塊,形式如下圖所示的代碼:

val_1?=?x,?val_2?=?y; for?(auto?it?:?list) {loop_val?=?it->doSomeThing(args);if?(expr(loop_val)){val_1?=?expr(loop_val);val_2?=?expr(val_1);} }

其優化實現為:

val_1?=?x,?val_2?=?y; flag?=?false; for?(auto?it?:?list) {loop_val?=?it->doSomeThing(args);flag?=?expr(loop_val);val_1?=?flag???expr(loop_val)?:?val_1;val_2?=?flag???expr(val_1)?:?val_2; }

通過對這兩種形式的代碼塊的匯編代碼進行比較,我們可以發現其中蹊蹺,經 O2 優化之后,三元操作符下,使用的是 cmov 類型的指令,根據 cmp 的計算結果選擇傳值,不會破壞流水線,而 if 分支下使用的是 je 類型的指令,即需要跳轉,一旦預測失敗將導致流水線沖刷。

分支預測

使用 likely,unlikely 等標記也是 coding 級別優化中的常見手段,其作用為將開發者認為更可能被預測為成功的分支的代碼塊移動到前面來,從而提升指令的 cache 命中率,給程序帶來更高的性能。這點在程序的 cache-misses 和 L1-icache-load-misses 指標上會有明顯的體現。但是最終帶來的性能收益并不高。

談到分支預測優化,可能很多人還會想到如何提高分支預測率,但是在不改變程序邏輯的前提下,分支預測率是無法提高的,其基本是由 CPU 自身的分支預測器決定,不過現代 CPU 的分支預測器已經做的足夠好了,正常情況下其正確率都能達到 99%以上。

引擎的代碼在經過多輪優化之后,在分支預測率方面的確也有提升,與最初的版本相比,下降了約 50%(降幅,非絕對值),它的提升在于兩點,一是整體減少了分支語句,二是編寫了更符合場景規律的代碼。

索引設計

背景:索引設計被劃入在離線的工作中,原先對索引設計的認知是很粗淺的,停留在依葫蘆畫瓢階段,我們先規劃出了,索引數據分為哪些類型,然后針對每種類型的索引數據進行了結構的設計,并獨立存儲。

事實證明,當時的想法是稚嫩的,表面上看,索引設計似乎并不需要遵循什么準則。但是從在線的性能角度去看,把一次操作需要讀取的數據放在一片連續內存,一次性讀出,會比分成多片索引區域,分開讀取性能要好(這一點在磁盤檢索引擎中應該是共識,因為能減少磁盤 IO 次數。但是內存的隨機存取特性讓我們最初設計內存檢索引擎時忽略了這點)。

其收益來自于兩方面,一方面是連續內存讀取將帶來局部性優勢,另一方面是,在每片索引區域讀取一篇文檔的數據的時候,我們都需要一次索引讀取操作以及對應的索引解析操作(雖然大多數時候都是可以直接根據 did 直接內存尋址的),而分成多片索引區域時需要執行多次這樣的操作。

索引設計的另一準則為盡量保證定長數據的內存對齊,包括適當的內存 padding 的使用,正如內存優化小節提到的,非內存對齊數據的訪問其開銷比我們想像中要大很多。而根據我們的經驗,對于內存搜索引擎來說,其消耗就是由 CPU 消耗和 Memory Load 消耗構成的。

提高緩存命中率其實在絕大部分時候都是一句正確的廢話,其應用場景非常少,即便程序內存 IO 非常龐大時(內存檢索引擎恰恰就是內存 IO 頻繁且龐大的場景),這一點的收益經實踐也非常小。就像上面內存優化里提的一樣,連續內存最大的優勢在于能夠快速清理。

關于磁盤檢索

盡管我們當前做的是內存檢索引擎,但磁盤檢索引擎的實現其實并不困難。隨著硬件的升級,磁盤檢索引擎的實現難度已經大大降低,例如使用 nvme 通信接口的 ssd 盤,其吞吐速率已經能接近內存的 1/10,每秒吞吐量能達到 GB 級別。由于在線召回架構已經對檢索請求進行了任務粒度的拆分和調度,我們只需要給任務增加一個 IO 狀態便可以完美嵌入到當前的召回架構中。當然,索引結構也需要進行一些細微調整,以進一步減少磁盤 IO 次數。

最后

通過半年多來的追趕,ZeroSearch 完成了從田間燕雀到雛鷹的轉變,以前想過在公司內部開源,現在反而越覺得欠缺的還太多,半成品的東西沒法開源。以前在樂問里看到一句話十分認同:我們總是高估技術的短期效應,而低估它們的長期影響力。我們做的事情其實不如多加一些詞表,多寫一些 if-else 策略的收益來得快,它的價值會由時間來證明,萬丈高樓的搭建需要堅實的地基,在我看來我們做的就是這樣一件事情。

對于引擎設計,其實還有一些想寫的內容,例如 everything online 的設計理念,支持通過請求參數來控制引擎的全部檢索行為,不論是篇數,耗時,還是召回方式的選取上,這樣可以讓業務在召回策略上面進行靈活組織,例如組件化設計,將檢索內核與業務特性模塊隔離,管理好引擎的復雜度,例如召回架構的雙層語法樹設計,支持任意索引類型數據的求交求并,例如引擎內部的問題診斷能力的建設,例如多文本同時檢索等等,限于本文篇幅已經比較長了。

但話說回來,我們做的很多事情其實跟我們當前的索引規模也有很大的關系,由于相比網頁搜索的索引規模少了一個數量級,因此很多事情我們都還不需要考慮,或者側重點不一樣,例如數據量到達一定程度后,索引壓縮比,篇數截斷限制下的倒排求交設計,結果多樣性保障等等都需要提上議程。

本文的內容稍顯雜亂,其實近一年來的時間,所有的工作的展開,我們基于對搜索領域挑戰的認知,背后是有思考在里面的,整體分為 3 個階段:

1 基礎能力建設

搜索引擎首先是一個工程的問題,基礎能力的夯實,將為后續各種基礎設施和檢索能力的建設打下堅實的基礎.

1.1 迭代質量保障

建立了一套全面的評測體系來對引擎質量進行評估,確保持續迭代過程中的版本質量保障.

1.2 工程核心問題解決

算力分配是內存搜索引擎在工程方面的核心問題,我們采用了流水線設計(分配高效)+時間片調度(分配均衡)方案來解決.

1.3 復雜度管理

通過組件化設計,實現了清晰的軟件分層架構,同時保證了檢索內核的獨立性和開放性.

1.4 性能優化專項

從倒排查找算法優化,算力榨取,內存優化,分支優化多個角度進行召回性能優化.

2 進階能力建設

搜索系統的比拼最終會落在 NLP 能力的比拼上面,站在工程這個崗位上,我們的思路是對檢索引擎擴展出豐富的檢索特性,靈活的檢索控制能力,高效的運營/調試能力,最終給與業務同學更大更靈活,以及更高效的操作空間.

2.1 召回架構設計
  • 通過雙層級語法樹設計,兼容多索引類型檢索,支持不同類型索引任意組合的求交求并。

  • 通過原語法樹求交實現,拒絕二項式變換,保留原始檢索語義,進而實現多種召回方式。

2.2 診斷能力建設

衡量大型分布式系統的復雜度管理的標準之一:是否具備高效的運營效率。其最終影響的是整個團隊的迭代效率

2.3 索引實驗能力建設

提供靈活的數據評測手段,如召回實驗,正排實驗。

2.4 Everything Online 的設計理念

讓檢索引擎的一切行為都可以通過請求參數實時控制,讓業務同學可靈活組織其召回策略。

3 團隊效能建設

團隊越大,業務分工越細,每位開發同學對于業務目標達成的邊際效應將越明顯,站在工程這個崗位上,我們的思路是建立必要的公共技術體系,例如將業務目標抽煉為一些公共且必要的技術框架,重新組織和聚合每位開發同學的開發成果,讓其能發光至全部業務。

3.1 公共相關性庫的建設

搭建了一套相關性開發框架,定義了標準開發流程,可靈活組裝,應用范圍能覆蓋搜一搜內部的全部場景。我們希望能將各個小團隊的相關性開發成果組織起來,聚集為大團隊的開發成果,再轉而服務全部業務。

整體來看目前我們比較欠缺的是在接入優化,引擎易用性等方面,這兩塊的投入和建設非常少,不過主要也是人力所限了,歡迎對在線召回感興趣的同學加入我們一起建設。關于搜索引擎工程設計的分享文章就此為止,后續應該不會再寫了。非常感謝老大能給到機會和時間,能脫離業務摸魚一年,還好勉勉強強完成了預期目標,不然只能給擁堵的濱海大廈騰出工位了。最近一年,應該也是職業生涯里寫出最多 BUG 的一年,非常感謝 jacky,sigma, sings,change,jaye,lie,yixiang,leol,levi ... 等等搜索技術中心的同事,在引擎各方面建設還不足并且有坑的時候,就開始接入使用,嚴格來講,搜一搜的技術演進是他們在推動進行的。

后話

回過頭來看 ZeroSearch 第一版在線系統的設計還是比較稚嫩的,當時有幸在騰訊技術工程公眾號上發表過,小編同學還起了個很唬人的標題:新一代搜索引擎設計... 當時看到這個標題時,心情真的十分復雜。

從項目立項開始,這一年來的工程實踐,整個過程更像是一個不斷"破圈"的過程,當我們在圈 A 時,我們看到了圈 B,而當我們到達圈 B 時,我們看到了更廣大的圈 C。以前我們看山是山,認為檢索引擎只是一個工程問題,專注在引擎工程架構的建設上,現在我們看山才是山,專注在業務長遠價值的建設上。

但幫助我們快速實現破圈的其實是落地應用,當技術落地應用后,問題才會凸顯出來,從而彌補我們自身的認知缺陷,最終也反向推動技術應用變得更加成熟,這是一個互相成就的過程。

總結下來是兩句話:

1 做工程技術需要腳踏實地,心懷敬意,直面問題,解決問題。其實不需要什么高端理念指導,也沒有所謂方法論,或者說方法論就是找準問題,用心做事;

2 工程技術是很難實現自突破的,需要伴隨著相應的應用場景,與其一起成長進化。

本人自認為分享過的所有文章都還是比較純粹樸實的,不會有什么空洞的字眼,唬人的概念,力求干貨,正如我所在的團隊的做事風格,純粹務實。搜一搜正在招聘后臺開發和運營開發工程同學,我們致力于通過技術能力將微信生態內的海量精品內容和服務精準觸達到每一位用戶。這是一件極具挑戰但富有意義的事情,很多程序員都可能曾經拷問過自己當初來到互聯網世界的初衷是什么,我相信這件事情足夠我們在回首往事時用來取悅自己。

騰訊程序員視頻號最新視頻

歡迎點贊

總結

以上是生活随笔為你收集整理的微信搜一搜在线检索技术演进复盘的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品久久久久香蕉网 | 亚洲自偷自偷在线制服 | 特黄特色大片免费播放器图片 | 丰满少妇高潮惨叫视频 | 免费无码肉片在线观看 | 亚洲成av人影院在线观看 | 成 人 网 站国产免费观看 | 欧美日韩精品 | 中文字幕无码乱人伦 | 理论片87福利理论电影 | 国产av一区二区三区最新精品 | 久久国产精品萌白酱免费 | 国产亚洲精品久久久久久久 | 久久99精品国产麻豆 | 久久亚洲精品成人无码 | 麻豆人妻少妇精品无码专区 | 欧美丰满少妇xxxx性 | 人人澡人人妻人人爽人人蜜桃 | 人人妻人人澡人人爽欧美精品 | 国产精品久久久久9999小说 | 亚洲爆乳大丰满无码专区 | 国产美女极度色诱视频www | 无码av最新清无码专区吞精 | 正在播放东北夫妻内射 | 国产欧美熟妇另类久久久 | 亚洲自偷自偷在线制服 | 夜精品a片一区二区三区无码白浆 | 亚洲精品一区二区三区婷婷月 | 国内精品久久久久久中文字幕 | 麻豆国产丝袜白领秘书在线观看 | 色爱情人网站 | 亚洲s码欧洲m码国产av | 秋霞特色aa大片 | 亚洲精品一区二区三区四区五区 | 国内精品人妻无码久久久影院 | 婷婷五月综合缴情在线视频 | 亚洲色在线无码国产精品不卡 | 内射爽无广熟女亚洲 | 帮老师解开蕾丝奶罩吸乳网站 | 玩弄中年熟妇正在播放 | 亚洲色欲久久久综合网东京热 | 亚洲中文字幕在线观看 | 国产97在线 | 亚洲 | 国产精品久久久午夜夜伦鲁鲁 | 综合网日日天干夜夜久久 | 麻豆蜜桃av蜜臀av色欲av | 亚洲国产午夜精品理论片 | 成人性做爰aaa片免费看不忠 | 无码精品人妻一区二区三区av | 亚洲国产成人a精品不卡在线 | 少妇性l交大片欧洲热妇乱xxx | 色婷婷综合中文久久一本 | 国产婷婷色一区二区三区在线 | 丰满少妇高潮惨叫视频 | 久久国产36精品色熟妇 | 欧美性色19p | 亚洲中文字幕久久无码 | 性欧美牲交在线视频 | 日韩精品久久久肉伦网站 | 高清无码午夜福利视频 | 亚洲 激情 小说 另类 欧美 | 久久精品女人天堂av免费观看 | 蜜臀aⅴ国产精品久久久国产老师 | 精品无码一区二区三区爱欲 | 永久黄网站色视频免费直播 | 奇米影视888欧美在线观看 | 色偷偷人人澡人人爽人人模 | 欧美午夜特黄aaaaaa片 | 日本xxxx色视频在线观看免费 | 日日摸夜夜摸狠狠摸婷婷 | 波多野结衣av一区二区全免费观看 | 亚洲成色www久久网站 | 国产精品人人爽人人做我的可爱 | 97se亚洲精品一区 | 久久精品国产精品国产精品污 | 一本无码人妻在中文字幕免费 | 国产精品亚洲а∨无码播放麻豆 | 国产欧美亚洲精品a | 狂野欧美性猛交免费视频 | 国产精品美女久久久网av | 在线观看国产一区二区三区 | 97久久超碰中文字幕 | 学生妹亚洲一区二区 | 丰满少妇熟乱xxxxx视频 | 福利一区二区三区视频在线观看 | 无码人妻精品一区二区三区下载 | 国产成人无码一二三区视频 | 亚拍精品一区二区三区探花 | 亚洲色在线无码国产精品不卡 | 午夜精品久久久内射近拍高清 | 网友自拍区视频精品 | 少妇高潮喷潮久久久影院 | 18精品久久久无码午夜福利 | 欧美日本精品一区二区三区 | 免费国产黄网站在线观看 | 人人超人人超碰超国产 | 欧美亚洲国产一区二区三区 | 国产精品丝袜黑色高跟鞋 | 女人色极品影院 | 久久午夜夜伦鲁鲁片无码免费 | 无码任你躁久久久久久久 | 精品成人av一区二区三区 | 天下第一社区视频www日本 | 天天av天天av天天透 | 日韩欧美中文字幕公布 | 欧美老妇与禽交 | 成人免费视频一区二区 | 亚洲中文字幕在线观看 | 99精品国产综合久久久久五月天 | 成人无码精品1区2区3区免费看 | 中文无码伦av中文字幕 | 欧美日韩亚洲国产精品 | 国产精品办公室沙发 | 欧美乱妇无乱码大黄a片 | 久久久久免费精品国产 | 98国产精品综合一区二区三区 | av小次郎收藏 | 日日摸天天摸爽爽狠狠97 | 久久精品中文字幕大胸 | 亚洲欧美国产精品专区久久 | 波多野结衣乳巨码无在线观看 | 网友自拍区视频精品 | 亚洲热妇无码av在线播放 | аⅴ资源天堂资源库在线 | 国产精品丝袜黑色高跟鞋 | 国产在热线精品视频 | 天天躁日日躁狠狠躁免费麻豆 | 日韩欧美中文字幕公布 | 成 人 网 站国产免费观看 | 小sao货水好多真紧h无码视频 | 国内丰满熟女出轨videos | 亚洲一区av无码专区在线观看 | 亚洲精品成a人在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 成人免费视频视频在线观看 免费 | 久久久久亚洲精品中文字幕 | 国产精品多人p群无码 | 性欧美牲交xxxxx视频 | 亚洲色偷偷偷综合网 | 三上悠亚人妻中文字幕在线 | 国产成人精品三级麻豆 | 久久久久久久久888 | 亚洲精品www久久久 | 国产午夜亚洲精品不卡下载 | 亚无码乱人伦一区二区 | 国产午夜福利100集发布 | 精品aⅴ一区二区三区 | 日本护士xxxxhd少妇 | 亚洲aⅴ无码成人网站国产app | 国产精品爱久久久久久久 | аⅴ资源天堂资源库在线 | 国产凸凹视频一区二区 | 无码人妻久久一区二区三区不卡 | 国产农村妇女高潮大叫 | 国产成人一区二区三区在线观看 | 国产免费观看黄av片 | 国产精品无码mv在线观看 | 欧美 丝袜 自拍 制服 另类 | 免费乱码人妻系列无码专区 | 国产亚洲美女精品久久久2020 | 婷婷六月久久综合丁香 | 国产内射老熟女aaaa | 在线天堂新版最新版在线8 | 国产人妻人伦精品1国产丝袜 | 成在人线av无码免费 | 无人区乱码一区二区三区 | 色综合久久久无码中文字幕 | 精品久久久久久人妻无码中文字幕 | 97久久国产亚洲精品超碰热 | 色婷婷综合激情综在线播放 | 999久久久国产精品消防器材 | 牲欲强的熟妇农村老妇女视频 | 4hu四虎永久在线观看 | 婷婷六月久久综合丁香 | 55夜色66夜色国产精品视频 | 亚洲精品国产精品乱码不卡 | 学生妹亚洲一区二区 | 国产午夜视频在线观看 | 免费观看黄网站 | 亚洲成色在线综合网站 | 国产疯狂伦交大片 | 一区二区传媒有限公司 | 好爽又高潮了毛片免费下载 | 国产成人无码区免费内射一片色欲 | 久久久久se色偷偷亚洲精品av | 免费无码av一区二区 | 国产精品无码成人午夜电影 | 亚洲国产精品毛片av不卡在线 | 亚洲色无码一区二区三区 | 亚洲大尺度无码无码专区 | 国产无av码在线观看 | 久久人妻内射无码一区三区 | 欧美第一黄网免费网站 | 欧美人与禽猛交狂配 | 国产一区二区三区影院 | 成人女人看片免费视频放人 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲国产精品无码一区二区三区 | 伊人久久大香线焦av综合影院 | 国产精品无码一区二区三区不卡 | 鲁一鲁av2019在线 | 狂野欧美激情性xxxx | 久久久久亚洲精品中文字幕 | 久久精品人人做人人综合 | 国产成人综合在线女婷五月99播放 | 东京热无码av男人的天堂 | 国产一区二区三区影院 | 精品一区二区不卡无码av | 午夜嘿嘿嘿影院 | 婷婷六月久久综合丁香 | 人人妻人人澡人人爽欧美一区九九 | 2019午夜福利不卡片在线 | 亚洲经典千人经典日产 | 国产农村妇女高潮大叫 | 国精品人妻无码一区二区三区蜜柚 | 99久久婷婷国产综合精品青草免费 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久久熟妇人妻午夜寂寞影院 | 久久久久久久女国产乱让韩 | 成人免费无码大片a毛片 | 国产精华av午夜在线观看 | 天天拍夜夜添久久精品 | 人人妻人人澡人人爽欧美精品 | 国产成人无码a区在线观看视频app | 7777奇米四色成人眼影 | 国产农村妇女高潮大叫 | 97人妻精品一区二区三区 | 四十如虎的丰满熟妇啪啪 | 欧洲极品少妇 | 久久人人爽人人爽人人片av高清 | 国产精品久久久 | 欧美日韩一区二区免费视频 | 999久久久国产精品消防器材 | 亚洲日本va中文字幕 | 最新国产乱人伦偷精品免费网站 | av无码不卡在线观看免费 | 中文字幕乱妇无码av在线 | 成人三级无码视频在线观看 | 亚洲国产精品一区二区美利坚 | 大地资源中文第3页 | 久久综合给合久久狠狠狠97色 | 久久精品无码一区二区三区 | 99精品无人区乱码1区2区3区 | 一个人免费观看的www视频 | 国产成人综合色在线观看网站 | 成人三级无码视频在线观看 | 无码av免费一区二区三区试看 | 欧美黑人乱大交 | 精品成人av一区二区三区 | 狂野欧美性猛xxxx乱大交 | 九月婷婷人人澡人人添人人爽 | 亚洲中文字幕乱码av波多ji | 六十路熟妇乱子伦 | 日本免费一区二区三区最新 | 久久国内精品自在自线 | аⅴ资源天堂资源库在线 | 日本在线高清不卡免费播放 | 精品国产青草久久久久福利 | 国产亚洲精品久久久ai换 | 亚洲啪av永久无码精品放毛片 | 国产精品国产三级国产专播 | 国产超碰人人爽人人做人人添 | 亚洲精品一区三区三区在线观看 | 动漫av一区二区在线观看 | 亚洲精品成人福利网站 | 国产亚av手机在线观看 | 日本肉体xxxx裸交 | 澳门永久av免费网站 | 麻豆蜜桃av蜜臀av色欲av | 国产一区二区三区四区五区加勒比 | 亚洲中文字幕在线观看 | 中文字幕无码免费久久99 | а√天堂www在线天堂小说 | 久久精品中文闷骚内射 | 午夜精品久久久久久久久 | 中文字幕 人妻熟女 | 成人无码精品1区2区3区免费看 | 午夜男女很黄的视频 | 永久免费观看国产裸体美女 | 日韩精品a片一区二区三区妖精 | 麻豆人妻少妇精品无码专区 | 亚洲人成网站在线播放942 | 日本爽爽爽爽爽爽在线观看免 | 国产精品久久久久7777 | 日韩av激情在线观看 | 妺妺窝人体色www在线小说 | 亚洲精品一区二区三区大桥未久 | 黑人粗大猛烈进出高潮视频 | 在线看片无码永久免费视频 | 欧美老人巨大xxxx做受 | 人人爽人人澡人人人妻 | 中文字幕无码免费久久9一区9 | 国产一区二区三区四区五区加勒比 | 午夜福利一区二区三区在线观看 | 欧美变态另类xxxx | 国产午夜亚洲精品不卡下载 | aⅴ在线视频男人的天堂 | 国产电影无码午夜在线播放 | 国产人妻精品一区二区三区不卡 | 亚洲国产av精品一区二区蜜芽 | 色一情一乱一伦 | 日韩无码专区 | 18无码粉嫩小泬无套在线观看 | 香港三级日本三级妇三级 | 日韩成人一区二区三区在线观看 | 久9re热视频这里只有精品 | 国产综合久久久久鬼色 | 久久久久亚洲精品男人的天堂 | 亚洲无人区午夜福利码高清完整版 | 小sao货水好多真紧h无码视频 | 老熟女重囗味hdxx69 | 丰满诱人的人妻3 | 久久无码专区国产精品s | 国产精品久久久久久亚洲影视内衣 | 亚洲色大成网站www国产 | av人摸人人人澡人人超碰下载 | 欧美35页视频在线观看 | 国产xxx69麻豆国语对白 | 精品国偷自产在线视频 | 日本欧美一区二区三区乱码 | 特大黑人娇小亚洲女 | 日韩av无码中文无码电影 | 亚洲中文字幕乱码av波多ji | 日欧一片内射va在线影院 | 久久人妻内射无码一区三区 | 一本精品99久久精品77 | 国产精品va在线播放 | 一本久久a久久精品vr综合 | 无码国内精品人妻少妇 | 丝袜美腿亚洲一区二区 | 国产免费观看黄av片 | 国产精品成人av在线观看 | 亚洲精品一区二区三区四区五区 | 国产人妻人伦精品1国产丝袜 | 久久aⅴ免费观看 | 国产亚洲日韩欧美另类第八页 | 人妻少妇精品视频专区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产真实乱对白精彩久久 | 久久99国产综合精品 | 无码吃奶揉捏奶头高潮视频 | 国产在线一区二区三区四区五区 | 亚洲精品久久久久avwww潮水 | 色狠狠av一区二区三区 | 少妇太爽了在线观看 | 国产做国产爱免费视频 | 一本久久a久久精品亚洲 | 强开小婷嫩苞又嫩又紧视频 | 日本精品久久久久中文字幕 | 无码国内精品人妻少妇 | 久久久久99精品成人片 | 国产人妻人伦精品1国产丝袜 | 精品一二三区久久aaa片 | 欧美兽交xxxx×视频 | 欧美人与牲动交xxxx | 精品日本一区二区三区在线观看 | 国产偷国产偷精品高清尤物 | 亚洲日韩精品欧美一区二区 | 免费国产黄网站在线观看 | 无码人妻丰满熟妇区五十路百度 | 呦交小u女精品视频 | 人人妻人人澡人人爽人人精品 | aa片在线观看视频在线播放 | av在线亚洲欧洲日产一区二区 | 国产sm调教视频在线观看 | 亚洲欧美中文字幕5发布 | 亚洲第一无码av无码专区 | 九九久久精品国产免费看小说 | 最近的中文字幕在线看视频 | 高潮毛片无遮挡高清免费视频 | 欧美刺激性大交 | 2020最新国产自产精品 | 亚洲中文字幕av在天堂 | 久久无码中文字幕免费影院蜜桃 | 日韩精品无码一本二本三本色 | 人妻互换免费中文字幕 | 秋霞成人午夜鲁丝一区二区三区 | 色一情一乱一伦一视频免费看 | 性欧美大战久久久久久久 | 久久 国产 尿 小便 嘘嘘 | 亚洲熟妇色xxxxx亚洲 | 性生交片免费无码看人 | 国内精品一区二区三区不卡 | 国产卡一卡二卡三 | 少妇被黑人到高潮喷出白浆 | 领导边摸边吃奶边做爽在线观看 | 男女猛烈xx00免费视频试看 | 午夜免费福利小电影 | 精品无人区无码乱码毛片国产 | 国产亚洲精品久久久久久久 | 亚洲日韩乱码中文无码蜜桃臀网站 | 日本丰满护士爆乳xxxx | 久久久久久久久888 | 国产精品福利视频导航 | 色婷婷久久一区二区三区麻豆 | 野外少妇愉情中文字幕 | 99久久99久久免费精品蜜桃 | 日韩精品无码一区二区中文字幕 | 一二三四社区在线中文视频 | 国产香蕉97碰碰久久人人 | 少妇性俱乐部纵欲狂欢电影 | 亚洲啪av永久无码精品放毛片 | √天堂资源地址中文在线 | 国产精品无码永久免费888 | 狠狠亚洲超碰狼人久久 | 国产深夜福利视频在线 | 精品一区二区三区波多野结衣 | 日日夜夜撸啊撸 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 人妻少妇精品无码专区二区 | 在线精品国产一区二区三区 | 欧美丰满熟妇xxxx | 欧美日韩久久久精品a片 | 精品国偷自产在线视频 | 正在播放东北夫妻内射 | 国产香蕉尹人综合在线观看 | 最近中文2019字幕第二页 | 未满小14洗澡无码视频网站 | 色狠狠av一区二区三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲自偷自拍另类第1页 | 中文字幕精品av一区二区五区 | 全黄性性激高免费视频 | 亚洲va中文字幕无码久久不卡 | 波多野结衣乳巨码无在线观看 | 无码av中文字幕免费放 | 一本色道久久综合狠狠躁 | аⅴ资源天堂资源库在线 | 四虎影视成人永久免费观看视频 | 亚洲午夜久久久影院 | 色综合久久88色综合天天 | 一本色道久久综合亚洲精品不卡 | 久久精品国产大片免费观看 | 国产精品爱久久久久久久 | 中文字幕亚洲情99在线 | 红桃av一区二区三区在线无码av | 国产偷抇久久精品a片69 | 日韩精品无码一区二区中文字幕 | 国产欧美精品一区二区三区 | 最新版天堂资源中文官网 | 久久午夜无码鲁丝片午夜精品 | 国产精品高潮呻吟av久久 | 亚拍精品一区二区三区探花 | 成人aaa片一区国产精品 | 亚洲国产欧美日韩精品一区二区三区 | 性做久久久久久久久 | 国产福利视频一区二区 | 人人妻人人澡人人爽欧美精品 | 欧美日韩色另类综合 | av小次郎收藏 | 国产va免费精品观看 | 性做久久久久久久久 | 亚洲精品中文字幕乱码 | 久久午夜夜伦鲁鲁片无码免费 | 色婷婷欧美在线播放内射 | 亚洲国产精华液网站w | 最近的中文字幕在线看视频 | 亚洲色欲色欲欲www在线 | 精品无人国产偷自产在线 | 日本熟妇乱子伦xxxx | 人妻人人添人妻人人爱 | 黑人大群体交免费视频 | 又粗又大又硬毛片免费看 | 日韩视频 中文字幕 视频一区 | 国产香蕉尹人视频在线 | 欧美野外疯狂做受xxxx高潮 | 国产精品无码成人午夜电影 | 亚洲精品国产a久久久久久 | 亚洲国产欧美在线成人 | 国产成人精品无码播放 | 成人aaa片一区国产精品 | 亚洲天堂2017无码中文 | 4hu四虎永久在线观看 | 久久久中文久久久无码 | 亚洲男人av香蕉爽爽爽爽 | 亚洲精品www久久久 | 夜夜影院未满十八勿进 | 啦啦啦www在线观看免费视频 | 国产乱码精品一品二品 | 久久人人爽人人爽人人片ⅴ | 乌克兰少妇xxxx做受 | 久久婷婷五月综合色国产香蕉 | 小泽玛莉亚一区二区视频在线 | 亚洲人成网站免费播放 | 欧美日本免费一区二区三区 | 午夜时刻免费入口 | 亚洲熟妇自偷自拍另类 | 一本色道婷婷久久欧美 | 久久99精品国产麻豆 | 欧美黑人巨大xxxxx | 天堂在线观看www | 亚洲欧美日韩综合久久久 | 黑人粗大猛烈进出高潮视频 | 久久无码专区国产精品s | 国产精品99久久精品爆乳 | 日日麻批免费40分钟无码 | 国产精品沙发午睡系列 | 国产精品欧美成人 | 又色又爽又黄的美女裸体网站 | 久久亚洲a片com人成 | 老司机亚洲精品影院无码 | 精品人人妻人人澡人人爽人人 | 麻豆成人精品国产免费 | 在线欧美精品一区二区三区 | √天堂资源地址中文在线 | 成人性做爰aaa片免费看 | 人人妻人人澡人人爽人人精品 | 亚洲综合精品香蕉久久网 | 国产偷抇久久精品a片69 | 最近中文2019字幕第二页 | 精品国产aⅴ无码一区二区 | 无码成人精品区在线观看 | 夜夜高潮次次欢爽av女 | 一个人看的www免费视频在线观看 | 中文字幕中文有码在线 | 亚洲日韩一区二区三区 | 爆乳一区二区三区无码 | 麻豆国产97在线 | 欧洲 | 奇米影视888欧美在线观看 | 亚洲成av人在线观看网址 | 欧美人与禽猛交狂配 | 夜精品a片一区二区三区无码白浆 | 日本护士xxxxhd少妇 | 欧美午夜特黄aaaaaa片 | 荫蒂添的好舒服视频囗交 | 日日躁夜夜躁狠狠躁 | 国产一区二区三区日韩精品 | 97无码免费人妻超级碰碰夜夜 | 国产精品亚洲а∨无码播放麻豆 | 国产三级久久久精品麻豆三级 | 欧洲美熟女乱又伦 | 影音先锋中文字幕无码 | 澳门永久av免费网站 | 国产办公室秘书无码精品99 | 国产9 9在线 | 中文 | 国产三级精品三级男人的天堂 | 丰满妇女强制高潮18xxxx | 国产无遮挡又黄又爽又色 | 女人和拘做爰正片视频 | 国产亚洲美女精品久久久2020 | 亚洲精品无码国产 | 欧美自拍另类欧美综合图片区 | 牛和人交xxxx欧美 | 亚洲第一网站男人都懂 | 欧美人与善在线com | 国产两女互慰高潮视频在线观看 | 日本又色又爽又黄的a片18禁 | 日本丰满护士爆乳xxxx | 四虎影视成人永久免费观看视频 | 男人扒开女人内裤强吻桶进去 | 精品国偷自产在线 | 一区二区三区乱码在线 | 欧洲 | 日本精品久久久久中文字幕 | 成人毛片一区二区 | 99久久久无码国产精品免费 | 高清国产亚洲精品自在久久 | 国产9 9在线 | 中文 | 欧美日韩一区二区三区自拍 | 日韩人妻少妇一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 蜜桃视频插满18在线观看 | 熟妇人妻激情偷爽文 | 亚洲精品一区二区三区婷婷月 | 亚洲中文字幕无码中文字在线 | 国产人妻人伦精品1国产丝袜 | 特级做a爰片毛片免费69 | 欧美激情一区二区三区成人 | 精品国产精品久久一区免费式 | 成人欧美一区二区三区黑人免费 | 亚洲经典千人经典日产 | 国产亚洲精品久久久闺蜜 | 久久久无码中文字幕久... | 亚无码乱人伦一区二区 | 欧美肥老太牲交大战 | 国产黑色丝袜在线播放 | 国产va免费精品观看 | 福利一区二区三区视频在线观看 | 日日摸日日碰夜夜爽av | 成人免费视频一区二区 | 最新国产麻豆aⅴ精品无码 | 久久伊人色av天堂九九小黄鸭 | 久久综合九色综合欧美狠狠 | 美女张开腿让人桶 | 免费人成在线观看网站 | 亚洲精品国产精品乱码不卡 | 国产超级va在线观看视频 | 国产成人综合色在线观看网站 | 久久亚洲精品成人无码 | 东京热无码av男人的天堂 | 国产成人一区二区三区别 | 中文字幕 人妻熟女 | 亚洲综合色区中文字幕 | 亚洲天堂2017无码 | 少妇高潮一区二区三区99 | 久久97精品久久久久久久不卡 | 欧美猛少妇色xxxxx | 最近免费中文字幕中文高清百度 | 国产另类ts人妖一区二区 | 国产午夜手机精彩视频 | 97夜夜澡人人爽人人喊中国片 | 亚拍精品一区二区三区探花 | 国产精品久久福利网站 | 久久综合狠狠综合久久综合88 | 小鲜肉自慰网站xnxx | 久久天天躁夜夜躁狠狠 | 欧美日韩人成综合在线播放 | 真人与拘做受免费视频 | 午夜时刻免费入口 | 精品欧美一区二区三区久久久 | 一本久道高清无码视频 | 精品人妻人人做人人爽夜夜爽 | 天天摸天天透天天添 | 美女扒开屁股让男人桶 | 亚洲人成网站免费播放 | 日本一区二区三区免费播放 | 国产香蕉尹人视频在线 | 夜夜影院未满十八勿进 | 老子影院午夜精品无码 | 最新国产乱人伦偷精品免费网站 | 一本久道高清无码视频 | 日韩av无码一区二区三区 | 国内少妇偷人精品视频免费 | 日本一卡2卡3卡四卡精品网站 | 国产真人无遮挡作爱免费视频 | 欧美人与牲动交xxxx | 欧洲熟妇色 欧美 | 牲欲强的熟妇农村老妇女 | 99在线 | 亚洲 | 日本乱人伦片中文三区 | 少妇性俱乐部纵欲狂欢电影 | 国产激情无码一区二区app | 少妇高潮一区二区三区99 | 日本精品人妻无码77777 天堂一区人妻无码 | 久久亚洲日韩精品一区二区三区 | 久久久久成人片免费观看蜜芽 | 人人妻人人澡人人爽人人精品浪潮 | 久久成人a毛片免费观看网站 | 中文字幕乱码中文乱码51精品 | 国产午夜手机精彩视频 | 熟女少妇人妻中文字幕 | 欧美日韩视频无码一区二区三 | 亚洲色偷偷偷综合网 | 两性色午夜视频免费播放 | 十八禁视频网站在线观看 | 波多野结衣av在线观看 | 丰满少妇弄高潮了www | 奇米影视7777久久精品 | 国产免费观看黄av片 | 欧洲熟妇色 欧美 | 综合网日日天干夜夜久久 | 欧美喷潮久久久xxxxx | 日日天干夜夜狠狠爱 | 色 综合 欧美 亚洲 国产 | 一本一道久久综合久久 | 99久久亚洲精品无码毛片 | 午夜时刻免费入口 | 成人无码视频在线观看网站 | 永久免费观看美女裸体的网站 | 亚洲国产高清在线观看视频 | 亚洲精品久久久久中文第一幕 | 麻豆国产人妻欲求不满谁演的 | 亚洲乱亚洲乱妇50p | 久久99精品久久久久久动态图 | 无套内谢的新婚少妇国语播放 | 青春草在线视频免费观看 | 中文字幕无码免费久久99 | 久久97精品久久久久久久不卡 | 四虎4hu永久免费 | 午夜无码人妻av大片色欲 | 亚洲欧美中文字幕5发布 | 欧美zoozzooz性欧美 | 日韩精品无码一区二区中文字幕 | 5858s亚洲色大成网站www | 欧美 丝袜 自拍 制服 另类 | 国产va免费精品观看 | 久久综合网欧美色妞网 | 亚洲人成网站免费播放 | 久久久久久国产精品无码下载 | 亚洲男人av香蕉爽爽爽爽 | 无码吃奶揉捏奶头高潮视频 | 欧美日韩在线亚洲综合国产人 | 久久 国产 尿 小便 嘘嘘 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 无码av中文字幕免费放 | 乱码午夜-极国产极内射 | 精品国产一区二区三区四区 | 日本一区二区三区免费播放 | 老熟妇乱子伦牲交视频 | 精品一区二区不卡无码av | 麻豆蜜桃av蜜臀av色欲av | 亚洲一区二区三区四区 | 午夜性刺激在线视频免费 | 丰腴饱满的极品熟妇 | 国产成人综合在线女婷五月99播放 | 亚洲国产精品久久人人爱 | a片免费视频在线观看 | 亚洲精品国产a久久久久久 | 熟妇女人妻丰满少妇中文字幕 | 人人妻人人澡人人爽人人精品 | 中文字幕人成乱码熟女app | 水蜜桃亚洲一二三四在线 | 少妇无码av无码专区在线观看 | 牛和人交xxxx欧美 | 激情五月综合色婷婷一区二区 | 午夜免费福利小电影 | 久久无码人妻影院 | 国产卡一卡二卡三 | 玩弄少妇高潮ⅹxxxyw | 麻豆人妻少妇精品无码专区 | 欧美人与禽猛交狂配 | 久久久久成人精品免费播放动漫 | 亚洲熟妇色xxxxx亚洲 | 亚洲天堂2017无码 | 亚洲成熟女人毛毛耸耸多 | 内射老妇bbwx0c0ck | 久久99国产综合精品 | 成在人线av无码免费 | 性欧美videos高清精品 | 性啪啪chinese东北女人 | 日日干夜夜干 | 国产精品国产自线拍免费软件 | 国内丰满熟女出轨videos | 国产又爽又黄又刺激的视频 | 久久97精品久久久久久久不卡 | 亚洲国产精品毛片av不卡在线 | 巨爆乳无码视频在线观看 | 高潮毛片无遮挡高清免费 | 日韩人妻无码一区二区三区久久99 | 亚洲日本va午夜在线电影 | 国产av剧情md精品麻豆 | 国产成人无码av在线影院 | 久久97精品久久久久久久不卡 | 波多野结衣aⅴ在线 | 日韩亚洲欧美中文高清在线 | 99er热精品视频 | 国产热a欧美热a在线视频 | 性色av无码免费一区二区三区 | 亚洲午夜福利在线观看 | 激情五月综合色婷婷一区二区 | 久久成人a毛片免费观看网站 | 成人性做爰aaa片免费看 | 中文字幕乱码中文乱码51精品 | 欧美成人午夜精品久久久 | 狠狠色噜噜狠狠狠7777奇米 | 俄罗斯老熟妇色xxxx | 日韩av激情在线观看 | 精品欧美一区二区三区久久久 | 久久精品国产亚洲精品 | 天天av天天av天天透 | 日本高清一区免费中文视频 | 初尝人妻少妇中文字幕 | 中文字幕无码av波多野吉衣 | 久久精品中文字幕大胸 | 久久午夜无码鲁丝片 | 偷窥村妇洗澡毛毛多 | 天干天干啦夜天干天2017 | 激情人妻另类人妻伦 | 欧美 日韩 人妻 高清 中文 | 亚洲综合无码久久精品综合 | 亚洲国产精品成人久久蜜臀 | 欧美乱妇无乱码大黄a片 | 性色av无码免费一区二区三区 | 99久久精品国产一区二区蜜芽 | 国产成人人人97超碰超爽8 | 国产在线精品一区二区高清不卡 | 一本无码人妻在中文字幕免费 | 国产亚洲欧美日韩亚洲中文色 | 最近中文2019字幕第二页 | 熟妇人妻激情偷爽文 | 内射后入在线观看一区 | 国产精品第一国产精品 | 亚洲色大成网站www国产 | 曰韩少妇内射免费播放 | 亚洲a无码综合a国产av中文 | 中文字幕无码av激情不卡 | 18黄暴禁片在线观看 | 特大黑人娇小亚洲女 | 亚洲国产精品成人久久蜜臀 | 无码人妻久久一区二区三区不卡 | 国产亚洲精品久久久久久 | 久久精品女人的天堂av | 久久99精品国产麻豆 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 综合激情五月综合激情五月激情1 | 人妻尝试又大又粗久久 | 夜先锋av资源网站 | 人妻插b视频一区二区三区 | 99视频精品全部免费免费观看 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲精品国产第一综合99久久 | 无码av最新清无码专区吞精 | 久久久久久久女国产乱让韩 | 色五月五月丁香亚洲综合网 | 欧美日本免费一区二区三区 | 久精品国产欧美亚洲色aⅴ大片 | 久久国产自偷自偷免费一区调 | 久久久久成人片免费观看蜜芽 | 日韩精品乱码av一区二区 | 蜜桃臀无码内射一区二区三区 | 少妇性俱乐部纵欲狂欢电影 | 亚洲精品国产第一综合99久久 | 色欲人妻aaaaaaa无码 | 97资源共享在线视频 | 国产无遮挡又黄又爽免费视频 | 亚洲精品国产精品乱码视色 | 国产精品久久久久7777 | 国产肉丝袜在线观看 | 特大黑人娇小亚洲女 | 青春草在线视频免费观看 | 国产乱人伦av在线无码 | 桃花色综合影院 | 国产亚洲人成a在线v网站 | 中文无码伦av中文字幕 | 在线а√天堂中文官网 | www国产亚洲精品久久网站 | 免费人成在线视频无码 | 无码国模国产在线观看 | 又湿又紧又大又爽a视频国产 | 丰满少妇人妻久久久久久 | 欧美乱妇无乱码大黄a片 | 欧美人与动性行为视频 | 日韩av激情在线观看 | 无码成人精品区在线观看 | 日日鲁鲁鲁夜夜爽爽狠狠 | 欧美自拍另类欧美综合图片区 | 妺妺窝人体色www在线小说 | 亚洲精品国产品国语在线观看 | 好男人社区资源 | 日韩av激情在线观看 | 国产黑色丝袜在线播放 | 国语自产偷拍精品视频偷 | 久久精品视频在线看15 | 自拍偷自拍亚洲精品被多人伦好爽 | 少妇愉情理伦片bd | 77777熟女视频在线观看 а天堂中文在线官网 | 精品厕所偷拍各类美女tp嘘嘘 | 又大又硬又黄的免费视频 | 国产精品福利视频导航 | 久久久久av无码免费网 | 欧美亚洲国产一区二区三区 | 亚洲精品成人av在线 | 亚洲欧美国产精品专区久久 | 激情亚洲一区国产精品 | 婷婷色婷婷开心五月四房播播 | 亚洲国产成人av在线观看 | 在教室伦流澡到高潮hnp视频 | 国产精品久免费的黄网站 | 亚洲欧美日韩综合久久久 | 国产黄在线观看免费观看不卡 | 日韩av无码中文无码电影 | 特黄特色大片免费播放器图片 | 性欧美牲交xxxxx视频 | 国产乱人偷精品人妻a片 | 亚洲男人av香蕉爽爽爽爽 | 免费国产成人高清在线观看网站 | 欧美xxxxx精品 | 久久99精品久久久久久动态图 | 亚洲日本va午夜在线电影 | 亚洲一区二区三区在线观看网站 | 呦交小u女精品视频 | 国产国产精品人在线视 | 国产超级va在线观看视频 | 色欲人妻aaaaaaa无码 | 国产精品无套呻吟在线 | 欧美黑人性暴力猛交喷水 | 亚洲爆乳无码专区 | 久久国语露脸国产精品电影 | 国内丰满熟女出轨videos | 又大又紧又粉嫩18p少妇 | 成人欧美一区二区三区黑人 | 人人妻人人澡人人爽人人精品浪潮 | 无码国内精品人妻少妇 | 成人aaa片一区国产精品 | 久久久久久久女国产乱让韩 | 精品偷拍一区二区三区在线看 | 小泽玛莉亚一区二区视频在线 | 麻花豆传媒剧国产免费mv在线 | 少妇性l交大片欧洲热妇乱xxx | 国产性生交xxxxx无码 | 国产性生大片免费观看性 | 丰满人妻被黑人猛烈进入 | 国産精品久久久久久久 | av在线亚洲欧洲日产一区二区 | 亚洲成a人片在线观看无码3d | 波多野结衣av一区二区全免费观看 | 久久精品国产亚洲精品 | 熟妇女人妻丰满少妇中文字幕 | 亚洲人成网站色7799 | 中国女人内谢69xxxxxa片 | 亚洲色无码一区二区三区 | 男女下面进入的视频免费午夜 | 久久综合狠狠综合久久综合88 | 伊人久久婷婷五月综合97色 | 夜夜高潮次次欢爽av女 | 国产精品美女久久久久av爽李琼 | 无码人妻av免费一区二区三区 | 熟妇激情内射com | 色五月五月丁香亚洲综合网 | 2020久久香蕉国产线看观看 | 亚洲区小说区激情区图片区 | 国内精品九九久久久精品 | 天海翼激烈高潮到腰振不止 | 亚洲精品一区二区三区四区五区 | 亚洲熟妇色xxxxx欧美老妇 | 久久久久se色偷偷亚洲精品av | 久久精品国产日本波多野结衣 | 宝宝好涨水快流出来免费视频 | 国产无遮挡又黄又爽又色 | 日本熟妇乱子伦xxxx | 亚洲精品一区二区三区婷婷月 | 亚洲国产精品一区二区美利坚 | 在线 国产 欧美 亚洲 天堂 | 在线亚洲高清揄拍自拍一品区 | 精品国产一区av天美传媒 | 亚洲欧美中文字幕5发布 | 亚洲色www成人永久网址 | 荫蒂添的好舒服视频囗交 | 人妻体内射精一区二区三四 | 亚洲 日韩 欧美 成人 在线观看 | 一本大道伊人av久久综合 | 亚洲精品久久久久avwww潮水 | 亚洲精品一区二区三区在线观看 | 国产莉萝无码av在线播放 | 亚洲色偷偷偷综合网 | 四十如虎的丰满熟妇啪啪 | 99国产精品白浆在线观看免费 | 日韩精品a片一区二区三区妖精 | 国产sm调教视频在线观看 | 超碰97人人做人人爱少妇 | 天天综合网天天综合色 | 成在人线av无码免费 | 成人精品视频一区二区 | 一区二区三区乱码在线 | 欧洲 | 丰腴饱满的极品熟妇 | 在教室伦流澡到高潮hnp视频 | 亚洲中文字幕在线观看 | 国产精品国产自线拍免费软件 | 一本久道久久综合婷婷五月 | av无码不卡在线观看免费 | 无码人妻av免费一区二区三区 | 亚洲呦女专区 | 人妻aⅴ无码一区二区三区 | 东京热男人av天堂 | 色情久久久av熟女人妻网站 | 性欧美牲交在线视频 | 亚洲成在人网站无码天堂 | 蜜桃臀无码内射一区二区三区 | 日本精品久久久久中文字幕 | 国产卡一卡二卡三 | 夜先锋av资源网站 | 人妻人人添人妻人人爱 | 亚洲精品成人av在线 | 久久99国产综合精品 | 欧美黑人巨大xxxxx | 日本精品人妻无码77777 天堂一区人妻无码 | 成人欧美一区二区三区黑人免费 | 激情综合激情五月俺也去 | 图片区 小说区 区 亚洲五月 | 成人无码影片精品久久久 | 狠狠色噜噜狠狠狠狠7777米奇 | 日韩人妻无码中文字幕视频 | 精品人妻人人做人人爽 | 亚洲国产欧美国产综合一区 | 亚洲精品中文字幕久久久久 | 九九热爱视频精品 | 久久国产精品_国产精品 | 熟女俱乐部五十路六十路av | 粗大的内捧猛烈进出视频 | 丰满人妻精品国产99aⅴ | 青草青草久热国产精品 | 国产人妻精品午夜福利免费 | 中文毛片无遮挡高清免费 | 久久人人爽人人人人片 | 久久久亚洲欧洲日产国码αv | 2019nv天堂香蕉在线观看 | 中文字幕av日韩精品一区二区 | 国产亚洲精品久久久久久久久动漫 | 欧美三级a做爰在线观看 | 亚洲中文字幕无码中字 | 欧美老妇交乱视频在线观看 | 亚洲成熟女人毛毛耸耸多 | 亚洲国产精品一区二区美利坚 | 人人妻人人藻人人爽欧美一区 | 国产成人精品久久亚洲高清不卡 | 欧美兽交xxxx×视频 | 国产偷抇久久精品a片69 | 又大又紧又粉嫩18p少妇 | 国产精品永久免费视频 | 国产xxx69麻豆国语对白 | 欧美阿v高清资源不卡在线播放 | 日日摸夜夜摸狠狠摸婷婷 | 色老头在线一区二区三区 | 国产偷国产偷精品高清尤物 | 国产午夜无码视频在线观看 | 内射白嫩少妇超碰 | 国产午夜亚洲精品不卡下载 | 成年女人永久免费看片 | 精品国产一区二区三区四区在线看 | 欧美一区二区三区视频在线观看 | 88国产精品欧美一区二区三区 | 日产精品高潮呻吟av久久 | 青春草在线视频免费观看 | 国产av一区二区三区最新精品 | 亚洲色成人中文字幕网站 | 夜夜夜高潮夜夜爽夜夜爰爰 | 在线播放免费人成毛片乱码 | 久久99久久99精品中文字幕 | 日本熟妇大屁股人妻 | 国产成人午夜福利在线播放 | 久9re热视频这里只有精品 | 亚洲人交乣女bbw | 人妻少妇精品久久 | 狠狠色噜噜狠狠狠7777奇米 | 欧美人与动性行为视频 | 国产香蕉97碰碰久久人人 | 精品成人av一区二区三区 | 欧美老妇交乱视频在线观看 | 国产精品久久久午夜夜伦鲁鲁 | 久久婷婷五月综合色国产香蕉 | 成人无码视频在线观看网站 | 激情爆乳一区二区三区 | 久久99久久99精品中文字幕 | 亚洲 激情 小说 另类 欧美 | 高中生自慰www网站 | 欧美丰满熟妇xxxx | 精品国产一区二区三区四区在线看 | 国产亚洲精品久久久久久久 | 宝宝好涨水快流出来免费视频 | 中文毛片无遮挡高清免费 | 国产真人无遮挡作爱免费视频 | 欧美丰满老熟妇xxxxx性 | 鲁鲁鲁爽爽爽在线视频观看 | 国产精品理论片在线观看 | 国产精品高潮呻吟av久久4虎 | 一本色道久久综合亚洲精品不卡 | 在线观看国产午夜福利片 | 无码吃奶揉捏奶头高潮视频 | 少妇厨房愉情理9仑片视频 | 中文字幕+乱码+中文字幕一区 | 成人综合网亚洲伊人 | 国产精品a成v人在线播放 | 精品国产国产综合精品 | 少妇太爽了在线观看 | 国产精品第一国产精品 | 久久国产精品二国产精品 | 亚洲成av人片天堂网无码】 | 色婷婷av一区二区三区之红樱桃 | 久久久久免费看成人影片 | 免费人成网站视频在线观看 | 国产卡一卡二卡三 | 成人影院yy111111在线观看 | 中文亚洲成a人片在线观看 | 亚洲一区二区三区无码久久 | 国产精品对白交换视频 | 久久亚洲精品中文字幕无男同 | 亚洲精品久久久久中文第一幕 | 欧美 日韩 人妻 高清 中文 | 午夜福利不卡在线视频 | 精品国产国产综合精品 | 超碰97人人做人人爱少妇 | 亚洲精品成人福利网站 | 亚洲天堂2017无码中文 | 在线播放亚洲第一字幕 | 98国产精品综合一区二区三区 | 国产免费久久久久久无码 | 国产成人综合在线女婷五月99播放 | 国产97在线 | 亚洲 | 精品 日韩 国产 欧美 视频 | 亚洲一区二区三区在线观看网站 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲爆乳大丰满无码专区 | 日韩精品乱码av一区二区 | 亚洲热妇无码av在线播放 | 国产精品福利视频导航 | 国产成人无码专区 | av人摸人人人澡人人超碰下载 | 十八禁真人啪啪免费网站 | 激情内射亚州一区二区三区爱妻 | 三上悠亚人妻中文字幕在线 | 西西人体www44rt大胆高清 | 一区二区三区乱码在线 | 欧洲 | 国产极品美女高潮无套在线观看 | 动漫av一区二区在线观看 | 国产精品无码成人午夜电影 | 欧美一区二区三区 | 又黄又爽又色的视频 | 午夜福利电影 | 中文字幕日韩精品一区二区三区 | 野外少妇愉情中文字幕 | 伊人久久大香线蕉av一区二区 | 亚洲码国产精品高潮在线 | 色婷婷香蕉在线一区二区 | 亚洲成熟女人毛毛耸耸多 | 中国女人内谢69xxxxxa片 | 欧美性生交活xxxxxdddd | 亚洲 日韩 欧美 成人 在线观看 | 久久国内精品自在自线 | 亚洲人成网站在线播放942 | 亚洲狠狠色丁香婷婷综合 | 久久久久国色av免费观看性色 | 国内精品久久毛片一区二区 | 激情综合激情五月俺也去 | 国内老熟妇对白xxxxhd | 国产精品18久久久久久麻辣 | 国产欧美熟妇另类久久久 | 极品尤物被啪到呻吟喷水 | 国产猛烈高潮尖叫视频免费 | 国产精品99爱免费视频 | 久久久久av无码免费网 | 沈阳熟女露脸对白视频 | 日本精品人妻无码免费大全 | 97精品人妻一区二区三区香蕉 | 欧美性黑人极品hd | 亚洲精品成人福利网站 | 领导边摸边吃奶边做爽在线观看 | 国产精品无码一区二区桃花视频 | 欧美xxxxx精品 | 亚洲人成影院在线观看 | 99精品国产综合久久久久五月天 | aa片在线观看视频在线播放 | 国产精品视频免费播放 | 精品 日韩 国产 欧美 视频 | 国产精品第一国产精品 | 熟妇人妻激情偷爽文 | 国产av一区二区三区最新精品 | 日韩无套无码精品 | 人妻插b视频一区二区三区 | 亚洲国产精品久久人人爱 | 乱码午夜-极国产极内射 | 亚洲精品一区二区三区四区五区 | 精品一二三区久久aaa片 | 色综合久久88色综合天天 | 国产人妻人伦精品1国产丝袜 | 男女超爽视频免费播放 | 少妇性俱乐部纵欲狂欢电影 | 夜精品a片一区二区三区无码白浆 | 婷婷五月综合缴情在线视频 | 日本乱偷人妻中文字幕 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品久久久久久亚洲毛片 | 精品无码一区二区三区爱欲 | 午夜男女很黄的视频 | 日韩人妻无码一区二区三区久久99 | 男女猛烈xx00免费视频试看 | 我要看www免费看插插视频 | 精品成在人线av无码免费看 | 国产偷国产偷精品高清尤物 | 67194成是人免费无码 | 国产乱子伦视频在线播放 | 国产在线精品一区二区高清不卡 | 亚洲综合无码久久精品综合 | 国产农村妇女高潮大叫 | 日本xxxx色视频在线观看免费 | 国产无遮挡又黄又爽免费视频 | 亚洲一区二区三区无码久久 | 99久久精品日本一区二区免费 | a片免费视频在线观看 | 中文亚洲成a人片在线观看 | 欧美人与善在线com | 麻豆国产丝袜白领秘书在线观看 | 久久精品人人做人人综合试看 | 中文字幕 人妻熟女 | 国产免费观看黄av片 | 香港三级日本三级妇三级 | 成人无码精品1区2区3区免费看 | 国内精品人妻无码久久久影院蜜桃 | 夜夜夜高潮夜夜爽夜夜爰爰 | 久久国产精品萌白酱免费 | 老子影院午夜精品无码 | 高清无码午夜福利视频 | aa片在线观看视频在线播放 | 日日噜噜噜噜夜夜爽亚洲精品 | 曰韩无码二三区中文字幕 | 麻豆国产人妻欲求不满谁演的 | 国产精品无码一区二区三区不卡 | 丁香啪啪综合成人亚洲 | 精品 日韩 国产 欧美 视频 | 亚洲中文无码av永久不收费 | а√资源新版在线天堂 | 中国女人内谢69xxxxxa片 | 在线播放无码字幕亚洲 | 久久综合激激的五月天 | 亚洲精品成人福利网站 | 国产精品怡红院永久免费 | 亚洲精品国偷拍自产在线麻豆 | 男人和女人高潮免费网站 | 鲁一鲁av2019在线 | 精品国产成人一区二区三区 | 男女爱爱好爽视频免费看 | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲精品午夜无码电影网 | 欧美日韩一区二区综合 | 亚洲人成网站在线播放942 | 国产片av国语在线观看 | 夜夜影院未满十八勿进 | www一区二区www免费 | 免费看男女做好爽好硬视频 | 色诱久久久久综合网ywww | 亚洲区小说区激情区图片区 | 久久99精品国产麻豆 | 国模大胆一区二区三区 | 欧洲极品少妇 | 人妻体内射精一区二区三四 | 久久久久久久久888 | 性色av无码免费一区二区三区 | 亚洲欧美日韩综合久久久 | 亚洲一区二区三区在线观看网站 | 国产午夜亚洲精品不卡下载 | 国产av一区二区精品久久凹凸 | 人妻插b视频一区二区三区 | 成人一在线视频日韩国产 | 欧美精品一区二区精品久久 | 久久久www成人免费毛片 | 欧美日韩视频无码一区二区三 | 欧美老妇交乱视频在线观看 | 久久视频在线观看精品 | 乱人伦人妻中文字幕无码久久网 | 国产在线精品一区二区高清不卡 | 欧美性生交xxxxx久久久 | 国产乱人伦偷精品视频 | 波多野结衣一区二区三区av免费 | www一区二区www免费 | 国产成人精品一区二区在线小狼 | 亚洲啪av永久无码精品放毛片 | 疯狂三人交性欧美 | 亚洲爆乳大丰满无码专区 | 西西人体www44rt大胆高清 | 少妇无码吹潮 | 人妻少妇精品无码专区二区 | 久久99精品久久久久久 | 狠狠躁日日躁夜夜躁2020 | 永久免费观看美女裸体的网站 | 丰腴饱满的极品熟妇 | 精品无码国产一区二区三区av | 丰满人妻翻云覆雨呻吟视频 | 久久综合香蕉国产蜜臀av | 亚洲乱码中文字幕在线 | 国产无遮挡又黄又爽又色 | 天堂亚洲2017在线观看 | 无码精品国产va在线观看dvd | 中文字幕日韩精品一区二区三区 | 性生交片免费无码看人 | 欧美日韩亚洲国产精品 | 国产va免费精品观看 | 天堂久久天堂av色综合 | 麻豆md0077饥渴少妇 | 曰本女人与公拘交酡免费视频 | 国产人妻精品一区二区三区不卡 | 色综合久久久久综合一本到桃花网 | 久久精品国产99久久6动漫 | 强伦人妻一区二区三区视频18 | 18无码粉嫩小泬无套在线观看 | 无码吃奶揉捏奶头高潮视频 | 永久免费精品精品永久-夜色 | 无码一区二区三区在线观看 | 永久黄网站色视频免费直播 | 永久免费观看国产裸体美女 | 色欲久久久天天天综合网精品 | 亚洲国精产品一二二线 | 中文字幕日产无线码一区 | 日本精品高清一区二区 | 中文字幕无码乱人伦 | 国产超级va在线观看视频 | 国产明星裸体无码xxxx视频 | 天堂а√在线地址中文在线 | 四虎永久在线精品免费网址 | 亚洲综合色区中文字幕 | 亚洲成a人片在线观看日本 | 青春草在线视频免费观看 | 女人和拘做爰正片视频 | 日日夜夜撸啊撸 | 日本一区二区三区免费播放 | 蜜臀av无码人妻精品 | 亚洲精品无码人妻无码 | 亚洲欧洲日本无在线码 | 日产精品99久久久久久 | 激情五月综合色婷婷一区二区 | 日韩欧美中文字幕公布 | 特级做a爰片毛片免费69 | 国产精品久久久久无码av色戒 | 欧美激情一区二区三区成人 | 99re在线播放 | 无码成人精品区在线观看 | 高清不卡一区二区三区 | 色诱久久久久综合网ywww | 亚洲の无码国产の无码步美 | 日韩成人一区二区三区在线观看 | 中文字幕av无码一区二区三区电影 | 老熟女重囗味hdxx69 | 又大又黄又粗又爽的免费视频 | 亚洲欧美日韩成人高清在线一区 | 欧美日韩综合一区二区三区 | 国内精品久久久久久中文字幕 | 99在线 | 亚洲 | 成 人 免费观看网站 | 国产乱人伦av在线无码 | 欧美精品无码一区二区三区 | 女人被男人爽到呻吟的视频 | 老司机亚洲精品影院无码 | 丰满少妇弄高潮了www | 国产suv精品一区二区五 | 中国女人内谢69xxxxxa片 | 成 人影片 免费观看 | 亚洲成av人片天堂网无码】 | 97人妻精品一区二区三区 | 天干天干啦夜天干天2017 | 女人被男人躁得好爽免费视频 | 中文字幕无码人妻少妇免费 | 1000部啪啪未满十八勿入下载 | 装睡被陌生人摸出水好爽 | 国产精品99久久精品爆乳 | 亚洲自偷精品视频自拍 | 动漫av一区二区在线观看 | 久久久久久久久888 | 97精品人妻一区二区三区香蕉 | 久久精品国产精品国产精品污 | 欧美成人免费全部网站 | а√资源新版在线天堂 | 欧美人与牲动交xxxx | 麻豆国产97在线 | 欧洲 | 国产人妻人伦精品 | 夜夜影院未满十八勿进 | 牲欲强的熟妇农村老妇女 | 国产精品嫩草久久久久 | 亚洲色无码一区二区三区 | 精品无人区无码乱码毛片国产 | 亚洲中文字幕成人无码 | 亚洲小说春色综合另类 | 中文字幕人妻无码一夲道 | 国内精品一区二区三区不卡 | 蜜桃av抽搐高潮一区二区 | 免费网站看v片在线18禁无码 | 亚洲日本va午夜在线电影 | 中文字幕无码av波多野吉衣 | 装睡被陌生人摸出水好爽 | 麻豆蜜桃av蜜臀av色欲av | 荡女精品导航 | 国产深夜福利视频在线 | 小鲜肉自慰网站xnxx | 宝宝好涨水快流出来免费视频 | 免费无码午夜福利片69 | 欧美丰满熟妇xxxx性ppx人交 | 色综合久久久无码中文字幕 | 国产麻豆精品一区二区三区v视界 | 亚洲日韩av片在线观看 | а天堂中文在线官网 | 精品午夜福利在线观看 | 日本丰满护士爆乳xxxx | 国产精品久久久一区二区三区 | 久久成人a毛片免费观看网站 | 好男人www社区 | 日日麻批免费40分钟无码 | 国产麻豆精品精东影业av网站 | а天堂中文在线官网 | 男女猛烈xx00免费视频试看 | 亚洲中文字幕久久无码 | 中文字幕无码视频专区 | 亚洲中文字幕av在天堂 | 国内精品一区二区三区不卡 | 真人与拘做受免费视频 | 午夜福利不卡在线视频 | 丰满少妇弄高潮了www | 国产小呦泬泬99精品 | 国产真实夫妇视频 | 亚洲欧美精品aaaaaa片 | 精品无码一区二区三区爱欲 | 小sao货水好多真紧h无码视频 | 超碰97人人射妻 | 成熟人妻av无码专区 | 国产在线aaa片一区二区99 | 强辱丰满人妻hd中文字幕 | 奇米影视7777久久精品 | 无码国模国产在线观看 | 天天爽夜夜爽夜夜爽 | 色综合久久久无码中文字幕 | 国产精品久久久av久久久 | 亚洲а∨天堂久久精品2021 | 亚洲日本va午夜在线电影 | 日本精品人妻无码免费大全 | 久久国产精品二国产精品 | 亚洲a无码综合a国产av中文 | 无遮无挡爽爽免费视频 | 国产精品a成v人在线播放 | 国产精品-区区久久久狼 | 特大黑人娇小亚洲女 | 久久人人97超碰a片精品 | 午夜成人1000部免费视频 | 日韩人妻无码一区二区三区久久99 | 精品水蜜桃久久久久久久 | 三级4级全黄60分钟 | 国产小呦泬泬99精品 | 久久精品女人的天堂av | 国产小呦泬泬99精品 | 国产麻豆精品一区二区三区v视界 | 性欧美牲交在线视频 | 亚洲色www成人永久网址 | 免费无码的av片在线观看 | 水蜜桃亚洲一二三四在线 | 玩弄中年熟妇正在播放 | 成人无码视频在线观看网站 | 欧美 丝袜 自拍 制服 另类 | 亚洲中文字幕无码中文字在线 | 中文字幕av日韩精品一区二区 | 亚洲欧美日韩综合久久久 | 国产sm调教视频在线观看 | 亚洲成在人网站无码天堂 | 成 人 免费观看网站 | 老司机亚洲精品影院无码 | 国产三级久久久精品麻豆三级 | 天天爽夜夜爽夜夜爽 | 99久久精品午夜一区二区 | 日韩精品无码一区二区中文字幕 | 麻豆蜜桃av蜜臀av色欲av | 日本精品人妻无码免费大全 | 中文字幕无码免费久久9一区9 | 国产亚洲欧美在线专区 | 亚洲一区二区三区播放 | 国产精品久久久久无码av色戒 | 亚洲午夜福利在线观看 | 综合人妻久久一区二区精品 | 99久久精品午夜一区二区 | 一本大道久久东京热无码av | 亚洲爆乳无码专区 | 成人免费无码大片a毛片 | 国产精品福利视频导航 | 人妻互换免费中文字幕 | 国产乱人伦偷精品视频 | 国产熟妇另类久久久久 | 无码人妻少妇伦在线电影 | 学生妹亚洲一区二区 | 人人妻人人藻人人爽欧美一区 | 国产成人无码a区在线观看视频app | 99er热精品视频 | 十八禁视频网站在线观看 | 国产成人无码专区 | 亚洲中文无码av永久不收费 | 午夜免费福利小电影 | 女人和拘做爰正片视频 | 东京热无码av男人的天堂 | 欧美性生交xxxxx久久久 | 中文字幕人妻丝袜二区 | 女人被男人爽到呻吟的视频 | 双乳奶水饱满少妇呻吟 | 人人妻人人澡人人爽欧美一区 | 性做久久久久久久免费看 | 精品一区二区三区无码免费视频 | 丰满少妇女裸体bbw | 18禁黄网站男男禁片免费观看 | 无码帝国www无码专区色综合 | 国产精华av午夜在线观看 | 欧美激情内射喷水高潮 | 四虎国产精品一区二区 | 亚洲狠狠色丁香婷婷综合 | 亚洲成色在线综合网站 | 99久久亚洲精品无码毛片 | 伊在人天堂亚洲香蕉精品区 | 亚洲无人区午夜福利码高清完整版 | 国产又爽又黄又刺激的视频 | 亚洲国产精华液网站w | 国产精品高潮呻吟av久久4虎 | 国产在线无码精品电影网 | 亚洲一区二区三区含羞草 | 国产精品对白交换视频 | 无码中文字幕色专区 | 玩弄少妇高潮ⅹxxxyw | 4hu四虎永久在线观看 | 亚洲中文字幕在线无码一区二区 | 亚洲の无码国产の无码影院 | 欧美激情内射喷水高潮 | 2019午夜福利不卡片在线 | 久久久国产精品无码免费专区 | 亚洲成熟女人毛毛耸耸多 | 国产无遮挡吃胸膜奶免费看 | 丰满少妇人妻久久久久久 | 国产精品二区一区二区aⅴ污介绍 | 亚洲精品久久久久中文第一幕 | 精品国产一区二区三区四区 | 一本久道久久综合狠狠爱 | 性啪啪chinese东北女人 | 国产亚洲精品久久久久久久 | 麻豆md0077饥渴少妇 | 国产亚洲日韩欧美另类第八页 | 亚洲精品久久久久avwww潮水 | 中文字幕乱码人妻无码久久 | 无码精品国产va在线观看dvd | 4hu四虎永久在线观看 | 2019午夜福利不卡片在线 | 成人动漫在线观看 | 久久久久亚洲精品中文字幕 | 欧美丰满熟妇xxxx | 国产精品久久久久久久9999 | 性欧美疯狂xxxxbbbb | 精品无码国产自产拍在线观看蜜 | 日韩av无码一区二区三区不卡 | 性啪啪chinese东北女人 | 大地资源中文第3页 | 一个人免费观看的www视频 | 天天躁日日躁狠狠躁免费麻豆 | 欧美性色19p | a国产一区二区免费入口 | 国产人妻精品一区二区三区 | 免费视频欧美无人区码 | 国产精品亚洲五月天高清 | 熟女俱乐部五十路六十路av | 午夜无码人妻av大片色欲 | 亚洲精品久久久久avwww潮水 | 中文字幕无码av波多野吉衣 | 国产精品视频免费播放 | 人人妻人人澡人人爽欧美精品 | 偷窥村妇洗澡毛毛多 | 国产成人无码区免费内射一片色欲 | 亚洲欧美色中文字幕在线 | 成人性做爰aaa片免费看 | 成人精品视频一区二区三区尤物 | 中文字幕乱妇无码av在线 | 国产精品无码一区二区三区不卡 | 中文字幕精品av一区二区五区 | 日本护士xxxxhd少妇 | 亚洲中文字幕成人无码 | 熟女少妇在线视频播放 | 日韩无码专区 | 亚洲国产精华液网站w | 亚洲国产欧美在线成人 | 麻豆国产人妻欲求不满 | 东京热男人av天堂 | 亚洲 激情 小说 另类 欧美 | 亚洲理论电影在线观看 | 成年美女黄网站色大免费全看 | 亚洲欧美精品伊人久久 | 欧美亚洲日韩国产人成在线播放 | 久久久久成人精品免费播放动漫 | 综合激情五月综合激情五月激情1 | 国产综合色产在线精品 | 欧美人与禽猛交狂配 | 亚洲一区二区三区无码久久 | 欧美 日韩 亚洲 在线 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲第一无码av无码专区 | 天天躁日日躁狠狠躁免费麻豆 | 自拍偷自拍亚洲精品10p | 人人超人人超碰超国产 | 国产精品久久久久久久9999 | 男人扒开女人内裤强吻桶进去 | 国内揄拍国内精品少妇国语 | 色婷婷欧美在线播放内射 | 无码午夜成人1000部免费视频 | 国产精品无码mv在线观看 | 免费观看激色视频网站 | 一本大道久久东京热无码av | 午夜肉伦伦影院 | 国产免费久久久久久无码 | 我要看www免费看插插视频 | 欧美日韩一区二区三区自拍 | 欧美老人巨大xxxx做受 | 日本在线高清不卡免费播放 | 国产农村妇女高潮大叫 | 亚洲国产精品无码一区二区三区 | 又大又硬又爽免费视频 | 少妇人妻av毛片在线看 | 国产高清不卡无码视频 | 国产偷国产偷精品高清尤物 | 在教室伦流澡到高潮hnp视频 | 久久精品丝袜高跟鞋 | 欧洲欧美人成视频在线 | 色欲久久久天天天综合网精品 | 国产猛烈高潮尖叫视频免费 | 无遮挡啪啪摇乳动态图 | 色一情一乱一伦 | 无码人妻丰满熟妇区五十路百度 | 久久综合狠狠综合久久综合88 | 亚洲日韩乱码中文无码蜜桃臀网站 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 2019午夜福利不卡片在线 | 久久午夜无码鲁丝片 | 久久精品国产大片免费观看 | 国产高清av在线播放 | 最新国产乱人伦偷精品免费网站 | 人妻体内射精一区二区三四 | 亚洲爆乳大丰满无码专区 | 国产成人亚洲综合无码 | 98国产精品综合一区二区三区 | 久久久久久av无码免费看大片 | 久久综合给合久久狠狠狠97色 | 天干天干啦夜天干天2017 | 精品国产国产综合精品 | 偷窥村妇洗澡毛毛多 | 国产真人无遮挡作爱免费视频 | 成年美女黄网站色大免费全看 | 男人扒开女人内裤强吻桶进去 | 亚洲一区二区三区偷拍女厕 | 色欲人妻aaaaaaa无码 | 成人三级无码视频在线观看 | 国产成人精品优优av | 亚洲国产精华液网站w | 激情五月综合色婷婷一区二区 | 高潮毛片无遮挡高清免费视频 | 亚洲精品美女久久久久久久 | 老司机亚洲精品影院无码 | 国产超碰人人爽人人做人人添 | 国产极品美女高潮无套在线观看 | 色综合久久网 | 真人与拘做受免费视频 | 亚洲成a人片在线观看无码 | 亚洲人成无码网www | 欧美兽交xxxx×视频 | 国内少妇偷人精品视频 | 免费视频欧美无人区码 | 精品熟女少妇av免费观看 | 无码人妻出轨黑人中文字幕 | 99久久久无码国产精品免费 | 国产av一区二区三区最新精品 | 国产精品爱久久久久久久 | 日本一区二区三区免费高清 | 午夜不卡av免费 一本久久a久久精品vr综合 | 日韩在线不卡免费视频一区 | 亚洲va中文字幕无码久久不卡 | 国产一区二区不卡老阿姨 | 中文字幕乱码人妻二区三区 | 久久精品国产一区二区三区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产精品久久精品三级 | 一本久久伊人热热精品中文字幕 | 青春草在线视频免费观看 | 欧美三级不卡在线观看 | 夜精品a片一区二区三区无码白浆 | 精品无人区无码乱码毛片国产 | 亚洲精品欧美二区三区中文字幕 | 成人无码精品1区2区3区免费看 | 少妇一晚三次一区二区三区 | 在线观看国产一区二区三区 | 小sao货水好多真紧h无码视频 | 久久婷婷五月综合色国产香蕉 | 永久免费观看美女裸体的网站 | 久久www免费人成人片 | 亚洲乱亚洲乱妇50p | 欧美国产日韩久久mv | 丰腴饱满的极品熟妇 | 亚洲国产欧美日韩精品一区二区三区 | 中文无码精品a∨在线观看不卡 | 欧美野外疯狂做受xxxx高潮 | 动漫av一区二区在线观看 | 国产精品成人av在线观看 | 久久无码中文字幕免费影院蜜桃 | 少妇人妻偷人精品无码视频 | 高潮喷水的毛片 | 免费无码一区二区三区蜜桃大 | 亚洲呦女专区 | 好爽又高潮了毛片免费下载 | 国产精品视频免费播放 | 亚洲欧美色中文字幕在线 | 欧美一区二区三区视频在线观看 | 成人无码精品一区二区三区 | 在线精品国产一区二区三区 | 牲欲强的熟妇农村老妇女 | 性色欲网站人妻丰满中文久久不卡 | 国产97人人超碰caoprom | 亚洲欧美国产精品专区久久 | 成人三级无码视频在线观看 | 夜夜影院未满十八勿进 | 日本大香伊一区二区三区 | 亚洲精品国产第一综合99久久 | 玩弄中年熟妇正在播放 | 欧洲极品少妇 | 麻豆md0077饥渴少妇 | 狂野欧美激情性xxxx | 一本加勒比波多野结衣 | 色一情一乱一伦 | 在线精品国产一区二区三区 | 国产精品鲁鲁鲁 | 久热国产vs视频在线观看 | 亚洲国产av精品一区二区蜜芽 | 日韩少妇内射免费播放 | 精品国精品国产自在久国产87 | 国产亚洲精品久久久久久久久动漫 | 99久久人妻精品免费一区 | 欧美国产日产一区二区 |