999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ElasticSearch的科技資源檢索系統(tǒng)的研究與實(shí)現(xiàn)

2021-11-01 08:53:26柳帆
現(xiàn)代計(jì)算機(jī) 2021年26期
關(guān)鍵詞:搜索引擎數(shù)據(jù)庫用戶

柳帆

(西南交通大學(xué)制造業(yè)產(chǎn)業(yè)鏈協(xié)同與信息化支撐技術(shù)四川省重點(diǎn)實(shí)驗(yàn)室,成都 611756)

0 引言

近年來,隨著科技行業(yè)的不斷發(fā)展與進(jìn)步,科技資源數(shù)據(jù)信息量急劇增加,從浩如煙海的、不同結(jié)構(gòu)的科技資源中快速精確地找到用戶所需要的信息,傳統(tǒng)的數(shù)據(jù)庫檢索顯得力不從心[1]。ElasticSearch已解決多個(gè)行業(yè)的海量數(shù)據(jù)分布式搜索引擎建設(shè)方案,但科技資源領(lǐng)域在ElasticSearch分布式搜索方面未涉及到公開的報(bào)道。

文獻(xiàn)《基于ElasticSearch的氣象數(shù)據(jù)檢索技術(shù)研究》給出了對(duì)氣象行業(yè)的ElasticSearch分布式搜索引擎建設(shè)方案[2],文獻(xiàn)《基于ElasticSearch的元數(shù)據(jù)搜索與共享平臺(tái)》使用ElasticSearch建立了水利行業(yè)的數(shù)據(jù)搜索與共享平臺(tái)[3],文獻(xiàn)《ElasticSearch分布式搜索引擎在天文大數(shù)據(jù)檢索中的應(yīng)用研究》對(duì)天文大數(shù)據(jù)的檢索進(jìn)行了應(yīng)用研究[4]。由此可見,ElasticSearch分布式搜索技術(shù)在海量數(shù)據(jù)的管理與搜索中具有可行性和實(shí)踐性。因此,為了改善用戶搜索體驗(yàn),提高檢索的效率和質(zhì)量,本文提出了基于ElasticSearch的科技資源分布式搜索引擎的構(gòu)建方案并對(duì)檢索系統(tǒng)進(jìn)行了實(shí)現(xiàn),最終通過實(shí)驗(yàn)數(shù)據(jù)檢測(cè),能較好地解決不斷增長的科技資源數(shù)據(jù)檢索的需求。

1 相關(guān)技術(shù)

1.1 Lucene

Lucene[5]是一個(gè)開源、穩(wěn)定、高性能、基于Java開發(fā)的全文檢索引擎架構(gòu),相比較于關(guān)系型數(shù)據(jù)庫,Lucene采用倒排索引實(shí)現(xiàn)了更加高效的搜索性能。Lucene不是一個(gè)完整的搜索引擎,不具備具體的搜索功能模塊,開發(fā)者需要對(duì)Lucene進(jìn)行二次開發(fā)以實(shí)現(xiàn)搜索功能和擴(kuò)展其他各種功能。Lucene是一個(gè)出色的全文檢索工具庫,基本能滿足所有場(chǎng)景下的全文檢索需求。許多著名的項(xiàng)目都采用Lucene作為搜索工具,例如IBM的WebSphere和Eclipse都利用Lucene作為全文搜索引擎。

1.2 ElasticSearch

ElasticSearch[6-8]是基于Lucene構(gòu)建的分布式全文檢索和分析引擎,具備高性能、高可擴(kuò)展、實(shí)時(shí)性等優(yōu)點(diǎn)。ElasticSearch對(duì)Lucene進(jìn)行了封裝,屏蔽了Lucene框架的復(fù)雜性,開發(fā)者使用簡單RESTful API就可以操作全文檢索。和傳統(tǒng)的數(shù)據(jù)庫相比,ElasticSearch還有如下特點(diǎn):

(1)使用倒排索引存儲(chǔ)結(jié)構(gòu)。把文件ID到關(guān)鍵詞的映射轉(zhuǎn)為關(guān)鍵詞到文件ID的映射,根據(jù)單詞出現(xiàn)頻率,結(jié)合TF-IDF算法計(jì)算相關(guān)度評(píng)分,將評(píng)分高的搜索結(jié)果優(yōu)先展示給用戶。

(2)分片存儲(chǔ)。存儲(chǔ)文檔時(shí),利用哈希算法計(jì)算文檔的ID值,接著按照文檔的ID值存到對(duì)應(yīng)的主分片上,然后復(fù)制主分片的數(shù)據(jù)到多個(gè)復(fù)制分片。因此,當(dāng)有某臺(tái)服務(wù)器宕機(jī)時(shí)數(shù)據(jù)不會(huì)丟失,保證了ElasticSearch的高可用與高吞吐。

(3)橫向可擴(kuò)展。可以輕松的擴(kuò)容至數(shù)以百計(jì)的服務(wù)器,支持PB級(jí)別的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)處理,用于海量數(shù)據(jù)的分布式存儲(chǔ)、搜索和實(shí)時(shí)分析,能滿足大數(shù)據(jù)時(shí)代下的分布式搜索需求。

目前,ElasticSearch是企業(yè)級(jí)大數(shù)據(jù)解決方案的首選工具之一,并且已經(jīng)有許多成功的使用案例,Github、維基百科、百度、阿里巴巴等企業(yè)都已大規(guī)模部署及應(yīng)用,如圖1展示了ElasticSearch總體架構(gòu)。

圖1 ElasticSearch的總體架構(gòu)

(1)GateWay是ElasticSearch的文件系統(tǒng),用于存儲(chǔ)索引。它支持不同的存儲(chǔ)方式,本地文件系統(tǒng)、分布式文件系統(tǒng)以及AmazonS3云平臺(tái)等都可以用于索引的存儲(chǔ)。

(2)Distributed Lucene Directory是分布式的Lucene框架,它在GateWay的上一層,是ElasticSearch的核心實(shí)現(xiàn)層,ElasticSearch集群的每個(gè)節(jié)點(diǎn)都有一個(gè)Lucene-core的支持。

(3)Function layer是ElasticSearch的功能層,提供了索引創(chuàng)建、數(shù)據(jù)搜索和映射三大核心功能。

(4)Discovery是ElasticSearch的發(fā)現(xiàn)模塊,主要用于在集群內(nèi)選取主節(jié)點(diǎn),然后完成節(jié)點(diǎn)間的信息傳輸。Scripting用于支持JavaScript、Python等語言對(duì)ElasticSearch的操作;同時(shí)ElasticSearch也支持第三方插件3rdPlugins,比如中文分詞插件以及可視化操作插件。

(5)Transport是傳輸層,借助HTTP進(jìn)行傳輸;JVM主要用于管理ElasticSearch集群的應(yīng)用。

(6)RESTful Style API是用戶接口層,主要用于支持用戶與ElasticSearch集群的交互。

1.3 中文分詞

在自然語言中,詞是最小的、不可分割的數(shù)據(jù),中文繼承自古代漢語的傳統(tǒng),詞語之間沒有明顯區(qū)分標(biāo)記,不能以單個(gè)漢字分詞,不像英文以空格作為天然的分隔,因此必須引入中文分詞。中文分詞是中文信息處理的首要前提,是搜索引擎的精確性的根本保障,中文分詞的精確與否,將對(duì)搜索結(jié)果的相關(guān)性排序產(chǎn)生直接影響。目前在中文分詞領(lǐng)域,主要采用三種分詞方法:字符串匹配分詞法、理解分詞法和統(tǒng)計(jì)分詞法[9]。

(1)字符串匹配分詞法。根據(jù)特定的策略將要分詞的字符串與詞典中的詞匹配,如果能在詞典找到說明匹配成功。匹配方式分為正向匹配、逆向匹配、最長匹配、最短匹配、單純分詞、分詞與標(biāo)注相結(jié)合這六種,前兩種是通過掃描方向劃分,中間兩種是通過長度劃分,后兩種是通過是否與詞性標(biāo)注相結(jié)合劃分。

(2)理解分詞法。模擬人對(duì)句子的理解過程,在分詞的過程中實(shí)現(xiàn)對(duì)句法以及語義的分析,再通過句法信息以及語義信息對(duì)分詞定界。

(3)統(tǒng)計(jì)分詞法。計(jì)算相連的字在不同的文本中出現(xiàn)的頻率,按照頻率判斷是不是一個(gè)詞。目前,研究分詞技術(shù)的前沿團(tuán)隊(duì)在技術(shù)實(shí)現(xiàn)細(xì)節(jié)方面都非常保密。要開發(fā)一個(gè)分詞準(zhǔn)確率高、分詞速度快的中文分詞系統(tǒng),依靠個(gè)體是一個(gè)漫長的過程。因此,在具體的實(shí)現(xiàn)過程中,一般采用開源的中文分詞器來完成分詞工作。

1.4 Logstash

Logstash[10]作為一個(gè)開源的數(shù)據(jù)搜索引擎,擁有實(shí)時(shí)管道功能和強(qiáng)大的數(shù)據(jù)處理能力。Logstash可以動(dòng)態(tài)整合分散的數(shù)據(jù)源,并根據(jù)選擇標(biāo)準(zhǔn)化數(shù)據(jù)到指定位置,實(shí)現(xiàn)數(shù)據(jù)的收集、轉(zhuǎn)換與輸出,其數(shù)據(jù)處理流程分為三個(gè)模塊。

(1)Input輸入模塊。從數(shù)據(jù)源獲取數(shù)據(jù);

(2)Filter過濾模塊。對(duì)數(shù)據(jù)進(jìn)行處理,比如格式轉(zhuǎn)換、數(shù)據(jù)派生以及增強(qiáng)等;

(3)Output輸出模塊。將數(shù)據(jù)輸出到指定到位置進(jìn)行存儲(chǔ)。

2 設(shè)計(jì)與實(shí)現(xiàn)

2.1 分詞器的選擇與比較

目前主要的中文分詞器包括:Standard-Analyzer、CJKAnalyzer、MMSeg4j、Smartcn、IKAnalyzer[11-12],下面從分詞準(zhǔn)確性和分詞速率兩個(gè)方面對(duì)上述中文分詞器進(jìn)行分析。

(1)使用測(cè)試用例“2017年7月1日,慶祝香港回歸祖國20周年大會(huì)暨香港特別行政區(qū)第五屆政府就職典禮在香港會(huì)展中心隆重舉行”來測(cè)試分詞的準(zhǔn)確性,并進(jìn)行分析和比較,如表1所示。

表1 中文分詞比較

從表1可以看出,采用一元分詞的StandardAnalyzer和采用二元分詞的CJKAnalyzer,其分詞結(jié)果都不夠準(zhǔn)確,并且會(huì)產(chǎn)生過多索引碎片,從而降低檢索的準(zhǔn)確率。Smartcn分詞器、MMSeg4j分詞器和IKAnalyzer分詞器采用詞庫分詞,分詞準(zhǔn)確率更高,其中IKAnalyzer分詞效果最為理想。

(2)利用分詞速率比較中文分詞器的性能。為了避免開發(fā)環(huán)境對(duì)實(shí)驗(yàn)結(jié)果的影響,本文在相同的實(shí)驗(yàn)環(huán)境比較相對(duì)值,使用上述中文分詞器對(duì)SIGHANBakeoff 2005 PKU數(shù)據(jù)集(510KB),以及10M文本數(shù)據(jù)進(jìn)行分詞,評(píng)測(cè)結(jié)果如表2所示。

表2 中文分詞時(shí)間比較

盡管StandardAnalyzer、CJKAnalyzer、Smartcn的分詞速率比較快,但是分詞可靠性不高,而IKAnalyzer的分詞速率比MMSeg4j快。結(jié)合多種因素,可以得出:IKAnalyzer是本文首選的中文分詞器。

2.2 系統(tǒng)總體架構(gòu)

結(jié)合數(shù)據(jù)規(guī)模、性能和功能需求,基于ElasticSearch的科技資源檢索系統(tǒng)分為數(shù)據(jù)導(dǎo)入、數(shù)據(jù)索引、數(shù)據(jù)檢索、緩存四個(gè)模塊。首先用Logstash將MySQL中的標(biāo)準(zhǔn)化數(shù)據(jù)導(dǎo)入到ElasticSearch,當(dāng)用戶發(fā)送搜索請(qǐng)求時(shí),SpringBoot通過ElasticSearch官方提供的JavaAPI調(diào)用Elasticsearch實(shí)現(xiàn)數(shù)據(jù)的檢索,最后用VUE框架對(duì)搜索結(jié)果進(jìn)行前端展示。此外,對(duì)于用戶信息、用戶熱搜資源和平臺(tái)熱搜資源等信息通過SpringBoot存放到Redis數(shù)據(jù)庫中,以便進(jìn)一步提高系統(tǒng)的性能,系統(tǒng)的總體架構(gòu)如圖2所示。

圖2 系統(tǒng)總體架構(gòu)

2.3 數(shù)據(jù)導(dǎo)入

本系統(tǒng)中科技資源數(shù)據(jù)經(jīng)過匯聚、清洗、篩選和標(biāo)準(zhǔn)化之后,會(huì)存入MySQL數(shù)據(jù)庫中,然后利用Logstash工具將資源數(shù)據(jù)從MySQL數(shù)據(jù)庫同步到ElasticSearch中,Logstash詳細(xì)配置如下:

input{

stdin{}

jdbc{

jdbc_connection_string => “jdbc: mysql://192.168.2.116.3306/gl3?serverTimezone=CTT”

jdbc_user=>“root”

jdbc_password=>“root”

jdbc_driver_library => “/es/logstash/mysqlconnet/mysql-connector-java-8.0.11.jar”

jdbc_driver_class=>“cool.mysql.cj.jdbc.Driver”

jdbc_paging_enabled=>“true”

jdbc_page_size=>“5000”

schedule=>”1”

type=>“synthetical”

}

}

filter{

json{

source=>“message”

target=>“msg_json”

}

grok{

match=>{"message"=>"%{COMBINEDAPACHE-LOG}"}

}

}

output{

if[type]==“synthetical”{

elasticsearch{

hosts=>“192.168.2.247:9201”

index=>”synthetical”

document_id=>“%{id}”

template_overwrite=>true

manage_template=>true

template=>“/es/logstash/template/logstah

ik.json”

template_name=>“synthetical-ik”

}

}s

tdout{

codec=>json_lines

}

}

2.4 分布式索引子系統(tǒng)

2.4.1 中文分詞的實(shí)現(xiàn)

IKAnalyzer是一個(gè)開源、基于Java實(shí)現(xiàn)的輕量級(jí)中文分詞工具包,支持多種分析處理模式,采用了“正向迭代最細(xì)粒度切分”算法[13],具有高速的數(shù)據(jù)處理能力。本文采用IKAnalyzer中文分詞系統(tǒng)作為中文分詞模塊的主要組件,在ElasticSearch中配置IKAnalyzer中文分詞插件的過程如下:

(1)下載IKAnalyzer源碼,接著執(zhí)行命令mvncleanpackage,打包得到j(luò)ar包文件。

(2)將IKAnalyzer依賴包復(fù)制到elasticsearch/plugin/analysis-ik目錄下。

(3)在Elasticsearch的config目 錄 下 對(duì)IKAnalyzer進(jìn)行相關(guān)配置,配置文件elasticsearch.yml添加的內(nèi)容如下:

index:

a

nalysis:

analyzer:

ik_syno:

alias:[ik_max_word]

type:custom

tokenizer:ik

use_smart:false

filter:[synonym]

ik_smart_syno:

type:custom

tokenizer:ik_smart_tok

user_smart:true

filter:[synonym]

ik:

type:ik

use_smart:true

ik_smart:

type:ik

use_smart:true

filter:

synonym:

type:synonym

ignore_case:true

synonyms_path:ik/custom/synon-ym.

dic

index.analysis.analyzer.default.type:ik

2.4.2 索引的實(shí)現(xiàn)

Elasticsearch是基于Lucene實(shí)現(xiàn)的,采用倒排索引的方式存儲(chǔ)數(shù)據(jù)[14]。首先從存放標(biāo)準(zhǔn)數(shù)據(jù)的MySQL數(shù)據(jù)庫中獲取數(shù)據(jù),然后通過分詞器解析生成多個(gè)字段(field),接著構(gòu)建文檔(document),最后用IndexWrite建立索引并將信息放入索引庫中。索引庫包含文檔號(hào)、詞頻、位置和偏移量等信息,其實(shí)現(xiàn)流程如圖3所示。

圖3 索引的實(shí)現(xiàn)流程圖

2.5 分布式檢索子系統(tǒng)

2.5.1 檢索的實(shí)現(xiàn)

用戶輸入查詢關(guān)鍵字,系統(tǒng)將關(guān)鍵字與ElasticSearch索引庫中的索引進(jìn)行匹配,經(jīng)過基于TF-IDF算法的相關(guān)性計(jì)算之后,得到搜索排序結(jié)果,提供接口給檢索模塊調(diào)用,最終返回給用戶使用,檢索模塊的詳細(xì)實(shí)現(xiàn)流程如圖4所示。

圖4 檢索的實(shí)現(xiàn)流程圖

(1)分詞器對(duì)查詢關(guān)鍵字進(jìn)行分詞。

(2)通過MultiFiledQueryParse生成Query對(duì)象,然后在不同的索引列上進(jìn)行多個(gè)關(guān)鍵詞的搜索。

(3)創(chuàng)建IndexSearcher對(duì)象實(shí)例,對(duì)ElasticSearch集群各節(jié)點(diǎn)進(jìn)行索引檢索,將符合條件的搜索結(jié)果合并,然后經(jīng)過相關(guān)性排序之后,放到結(jié)果集中并返回給用戶。

2.5.2 聯(lián)想搜索的實(shí)現(xiàn)

搜索聯(lián)想是指用戶在搜索框輸入檢索詞的過程中對(duì)每一個(gè)字進(jìn)行響應(yīng)提示,幫助用戶更快地得到自己先要檢索的內(nèi)容。這個(gè)過程主要通過客戶端的動(dòng)態(tài)網(wǎng)頁技術(shù)Ajax來完成,服務(wù)端需要統(tǒng)計(jì)用戶歷史檢索詞的頻率,將頻率較高的檢索詞按照前綴匹配結(jié)果返回給前端頁面,搜索聯(lián)想的實(shí)現(xiàn)流程如圖5所示。

圖5 搜索聯(lián)想的實(shí)現(xiàn)流程圖

(1)用戶輸入檢索詞,前端會(huì)實(shí)時(shí)獲取輸入的內(nèi)容,然后利用Ajax異步地向服務(wù)端發(fā)送聯(lián)想詞搜索的請(qǐng)求;

(2)服務(wù)端將請(qǐng)求到的數(shù)據(jù)在ElasticSearch中進(jìn)行前綴匹配,利用ElasticSearch搜索對(duì)應(yīng)前綴的索引,然后通過ElasticSearch的bool quer將多個(gè)前綴查詢結(jié)果組合起來返回給前端;

(3)前端利用Ajax組件庫中的jQuery完成提示詞顯示,搜索聯(lián)想功能的實(shí)現(xiàn)結(jié)果如圖6所示。

圖6 搜索聯(lián)想的效果圖

2.6 Redis緩存

Redis[15]是一個(gè)開源的高性能數(shù)據(jù)庫,數(shù)據(jù)保存在內(nèi)存中,數(shù)據(jù)讀寫效率比傳統(tǒng)數(shù)據(jù)庫高一個(gè)量級(jí),能夠顯著提升系統(tǒng)的性能。

在本系統(tǒng)中,為了減少數(shù)據(jù)庫運(yùn)行壓力,提高系統(tǒng)響應(yīng)速度和并發(fā)量,需要引入Redis數(shù)據(jù)庫,把經(jīng)常被訪問的數(shù)據(jù)放入Redis數(shù)據(jù)庫中,對(duì)用戶信息、用戶熱搜資源和平臺(tái)熱搜資源進(jìn)行緩存。同時(shí),為了提升搜索聯(lián)想詞的性能,也要借助緩存機(jī)制將高頻的前綴匹配結(jié)果存放在內(nèi)存,從而不用每一次都訪問數(shù)據(jù)庫。

3 實(shí)驗(yàn)結(jié)果與分析

對(duì)搜索引擎而言,衡量系統(tǒng)性能的關(guān)鍵指標(biāo)是系統(tǒng)的響應(yīng)時(shí)間。本實(shí)驗(yàn)采用某機(jī)構(gòu)約5萬份科技資源文本數(shù)據(jù)作為實(shí)驗(yàn)對(duì)象,測(cè)試檢索詞選擇生物醫(yī)療、機(jī)器學(xué)習(xí)、物聯(lián)網(wǎng)、發(fā)明4個(gè)詞,分別記錄在本搜索引擎和關(guān)系型數(shù)據(jù)庫MySQL中進(jìn)行搜索時(shí)第1次查詢與第n次(n=10)查詢的平均速度。實(shí)驗(yàn)結(jié)果如表3所示。通過實(shí)驗(yàn)結(jié)果表可以得出:基于ElasticSearch的科技資源檢索系統(tǒng)的檢索效率遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的基于數(shù)據(jù)庫的檢索系統(tǒng)。

表3 檢索時(shí)間對(duì)比

4 結(jié)語

本文在深入研究分布式檢索原理、ElasticSearch相關(guān)技術(shù)的基礎(chǔ)上,實(shí)現(xiàn)了基于ElasticSearch的科技資源檢索系統(tǒng),進(jìn)行了檢索速率的測(cè)試,而且和傳統(tǒng)的MySQL數(shù)據(jù)庫檢索速率進(jìn)行比較,獲得了較好的測(cè)試效果。本系統(tǒng)可以實(shí)現(xiàn)對(duì)檢索內(nèi)容的分詞,提高了檢索的準(zhǔn)確率,系統(tǒng)通過Redis數(shù)據(jù)庫來緩存熱搜信息以及用戶信息,提高了系統(tǒng)響應(yīng)速度。系統(tǒng)使用Ajax技術(shù),實(shí)現(xiàn)了服務(wù)器端和客戶端的異步通信,達(dá)到了搜索提示和相關(guān)搜索的功能,使用戶界面更加友好。但系統(tǒng)也有一些不足之處:

(1)在比較了多種分詞器的基礎(chǔ)上,本系統(tǒng)采用了IKAnalyzer進(jìn)行中文分詞。但由于科技資源領(lǐng)域的專業(yè)詞匯較多,導(dǎo)致ElasticSearch中未記錄的詞匯增多,會(huì)在一定程度上降低查詢的準(zhǔn)確性。因此,在后續(xù)的研究中可以針對(duì)科技資源領(lǐng)域建立專業(yè)詞匯表,提高中文分詞的準(zhǔn)確性。

(2)本系統(tǒng)使用了相對(duì)比較簡單的相關(guān)性排序算法對(duì)搜索結(jié)果排序。在后續(xù)的研究中,將通過改進(jìn)評(píng)分策略和排序算法,構(gòu)造出性能更完美且檢索效率更高的分布式搜索引擎。

猜你喜歡
搜索引擎數(shù)據(jù)庫用戶
數(shù)據(jù)庫
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
數(shù)據(jù)庫
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
如何獲取一億海外用戶
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
主站蜘蛛池模板: 欧美区一区二区三| 久久99精品久久久久久不卡| 性激烈欧美三级在线播放| 国产丝袜91| 免费a级毛片视频| 久久香蕉国产线看观看式| 日韩精品毛片人妻AV不卡| 日本一区二区三区精品AⅤ| 国产第一页亚洲| 亚洲天堂免费在线视频| 99久久无色码中文字幕| 试看120秒男女啪啪免费| 精品亚洲国产成人AV| 免费毛片全部不收费的| 成年免费在线观看| 亚洲av日韩av制服丝袜| 亚洲乱亚洲乱妇24p| 国产va视频| 视频二区国产精品职场同事| 精品无码日韩国产不卡av| 91视频区| 无码AV日韩一二三区| 制服丝袜 91视频| 四虎精品黑人视频| 国产成人毛片| 国产三级韩国三级理| 久草视频福利在线观看| 日本精品视频| 成人福利在线观看| 中文字幕欧美日韩| a毛片免费观看| 婷婷色狠狠干| 色综合久久久久8天国| 国产微拍精品| 狠狠色丁香婷婷| 天堂网亚洲系列亚洲系列| 国产91无码福利在线| 美女被狂躁www在线观看| 亚洲男人天堂久久| 午夜国产理论| 国产二级毛片| 国产激情无码一区二区APP| 国产人成在线视频| 国产一级视频久久| 久久香蕉国产线看观看精品蕉| 欧美国产日产一区二区| 性欧美久久| 国产亚洲一区二区三区在线| 青青热久麻豆精品视频在线观看| …亚洲 欧洲 另类 春色| 国产迷奸在线看| 99久久精品久久久久久婷婷| 色国产视频| 在线观看免费黄色网址| Jizz国产色系免费| 亚洲永久免费网站| 亚洲日本中文字幕乱码中文| 巨熟乳波霸若妻中文观看免费| 欧美精品亚洲精品日韩专区va| 在线观看国产网址你懂的| 狠狠色综合久久狠狠色综合| 中文字幕日韩视频欧美一区| 免费观看无遮挡www的小视频| 2022国产91精品久久久久久| 久操中文在线| 国产99免费视频| 午夜福利在线观看成人| 国产91丝袜在线观看| 亚洲欧美人成人让影院| 免费观看男人免费桶女人视频| 亚洲综合极品香蕉久久网| 欧美日本中文| 国产日韩久久久久无码精品| 国产18在线播放| 人人爱天天做夜夜爽| 最新日韩AV网址在线观看| 亚洲国产精品一区二区第一页免 | 欧美激情一区二区三区成人| 一区二区理伦视频| 日本午夜三级| 成人夜夜嗨| 国产区免费精品视频|