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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

万字长文,学会ElasticSearch,这一篇就够了!

發(fā)布時間:2024/5/14 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 万字长文,学会ElasticSearch,这一篇就够了! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ElasticSearch:介紹

先放官方中文網(wǎng)站鎮(zhèn)樓:
https://www.elastic.co/cn/

按照本文的流程去學(xué)習(xí),保證一定有收獲。如果暫時沒時間學(xué),不妨點個收藏點個贊,找個時間慢慢學(xué)。那么我們接下來就開始ES的旅程吧!

首先,ElasticSearch是什么?

ElasticSearch是基于RESTful web接口的全文搜索引擎 ,簡單說就是可以對存儲的數(shù)據(jù)進行快速搜索的強大引擎。

MySQL同樣可以存儲數(shù)據(jù),為什么一定要用ES?

mysql存儲用作持久化存儲,而ES的存儲用作檢索分析

ElasticSearch中的各種名詞

1. index索引 動詞:相當(dāng)于mysql的insert 名詞:相當(dāng)于mysql的db2. Type類型 在index中,可以定義一個或多個類型 類似于mysql的table,每一種類型的數(shù)據(jù)放在一起3. Document文檔 保存在某個index下,某種type的一個數(shù)據(jù)document,文檔是json格式的, document就像是mysql中的某個table里面的內(nèi)容。每一行對應(yīng)的列叫屬性其中index庫 > type表 > document文檔

為什么ES搜索快?

因為ES使用了倒排索引。

什么是倒排索引?

舉個例子:ES對存入數(shù)據(jù)進行分詞存儲,比如紅海行動,存儲為紅海、行動。探索紅海行動存儲為探索、紅海、行動。用戶搜索紅海,則對紅海進行索引搜索,搜索出紅海行動,探索紅海行動。

ElasticSearch:安裝

基本介紹完畢,接下來我們來學(xué)學(xué)如何安裝ES和Kibana,ES和kibana的關(guān)系可以看成是好基友的關(guān)系,kibana可以更方便地操作ES。

這里使用的是docker進行安裝,方便,快捷,好使。

使用docker進行安裝:

1、下載ElasticSearch(存儲檢索)和Kibana(可視化檢索),兩個版本要一致

docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2

2、配置

#docker里的目錄掛載到linux的/mydata目錄中 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data#es可以被遠(yuǎn)程任何機器訪問 echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml#更改權(quán)限 chmod -R 777 /mydata/elasticsearch/

3、啟動ElasticSearch

#9200是用戶交互端口 9300是集群心跳端口 #-e指定是單階段運行 #-e指定占用的內(nèi)存大小,生產(chǎn)時可以設(shè)置32G docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.4.2 #設(shè)置開機啟動elasticsearch docker update elasticsearch --restart=always

訪問:

http://xxxx:9200/

4、啟動kibana

#kibana指定了了ES交互端口9200 # 5600位kibana主頁端口 docker run --name kibana -e ELASTICSEARCH_HOSTS=http://47.97.26.154:9200 -p 5601:5601 -d kibana:7.4.2#設(shè)置開機啟動kibana docker update kibana --restart=always#查看kibana運行日志 docker logs 實例ID

訪問5601,出現(xiàn)以下則表示成功:

ElasticSearch:入門使用

安裝完成了,那我們來試試ES好不好使。

我們對ES的所有操作,都被封裝成了RestAPI,所以我們只要發(fā)送請求就行了。

入門:

1、_cat

功能:查看ES的基本信息
使用postman或者瀏覽器加上地址查詢,或者直接Kibana操作。

GET _cat/nodes:查看所有結(jié)點 GET _cat/health:查看es健康狀況 GET _cat/master:查看主節(jié)點 GET _cat/indices:查看所有索引[類似于show databases]

2、索引一個文檔(保存)

用mysql的話來說,就是保存一條記錄
索引到哪個類型下 == 保存到哪張表中
如:

PUT http://xxxx:9200/customer/external/1 JSON:{"name":"john" }

結(jié)果:

{"_index": "customer","_type": "external","_id": "1","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1 }

我們分析下都返回了些什么:

返回結(jié)果中,所有帶有_的都被稱為元數(shù)據(jù),用來攜帶一些基本信息 "_index":"customer":數(shù)據(jù)存在索引customer下[mysql即哪個數(shù)據(jù)庫下] "_type": "external":數(shù)據(jù)存在類型external下[mysql即哪張表下] "_id": "1":數(shù)據(jù)ID "_version": 1:數(shù)據(jù)版本 "result": "created":執(zhí)行結(jié)果[若執(zhí)行兩遍PUT,則此處變?yōu)閡pdate]

細(xì)節(jié):
保存操作可以使用PUT或者POST,但是經(jīng)過多次操作可以發(fā)現(xiàn):
使用PUT進行保存數(shù)據(jù)時,攜帶ID會創(chuàng)建或者修改數(shù)據(jù),不攜帶ID則報錯。
使用POST保存數(shù)據(jù)時,攜帶ID會創(chuàng)建或者修改數(shù)據(jù),不攜帶ID則會自動生成一個唯一ID,因此對于保存操作。
雖然PUT和POST請求都可,但是我們一般還是使用POST,可以減少容錯,顯得更專業(yè)。

3、查詢文檔

拿剛剛的操作舉個栗子:

GET http://xxxx:9200/customer/external/1

語句解讀:不帶任何參數(shù),使用GET對customer索引下的external類型下的id為1的數(shù)據(jù)進行查詢
結(jié)果:

{"_index": "customer","_type": "external","_id": "1","_version": 2,"_seq_no": 2,"_primary_term": 1,"found": true,"_source": {"name": "john"} }

結(jié)果分析:

"_index": "customer",索引 "_type": "external",類型 "_id": "1",查詢ID "_version": 2,版本[被更新過幾次,下標(biāo)從1開始] "_seq_no": 2,樂觀鎖[稍后說] "_primary_term": 1,分片,用作樂觀鎖 "found": true,是否查詢成功 "_source":數(shù)據(jù)查詢的信息

我們模擬以下樂觀鎖操作,可以更有助于理解:
情境:A和B同時需要對同一條數(shù)據(jù)進行修改,于是兩人各自開始操作:
A先查出數(shù)據(jù)如下:

{"_index": "customer","_type": "external","_id": "1","_version": 2,"_seq_no": 2,"_primary_term": 1,"found": true,"_source": {"name": "john"} }

A開始修改數(shù)據(jù),B來到工位,一查,seq_no也為2,剛準(zhǔn)備開始修改數(shù)據(jù),突然接到個電話,于是暫停手上工作。
A修改如下:

PUT http://XXXX:9200/customer/external/1?if_seq_no=2&if_primary_term=1 {"name":"yellow" }

解讀:加上了判斷條件進行修改
修改結(jié)果:

{"_index": "customer","_type": "external","_id": "1","_version": 3,"result": "updated","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 3,"_primary_term": 1 }

B打完電話,繼續(xù)工作,由于原先已經(jīng)查詢了,只是還未來得及提交,于是B省得麻煩,直接提交。

PUT http://XXXX:9200/customer/external/1?if_seq_no=2&if_primary_term=1 {"name":"red" }

結(jié)果:

{"error": {"root_cause": [{"type": "version_conflict_engine_exception","reason": "[1]: version conflict, required seqNo [2], primary term [1]. current document has seqNo [3] and primary term [1]","index_uuid": "kIKj5ZSlT32aH-ziXyQN2Q","shard": "0","index": "customer"}],"type": "version_conflict_engine_exception","reason": "[1]: version conflict, required seqNo [2], primary term [1]. current document has seqNo [3] and primary term [1]","index_uuid": "kIKj5ZSlT32aH-ziXyQN2Q","shard": "0","index": "customer"},"status": 409 }

于是B只好重新先查詢,再進行修改。
這就是樂觀鎖修改。

4、更新文檔

POST customer/external/1/_update {"doc":{"name":"blue" } } 或者 POST/PUT customer/external/1 {"name":"blue" }

各更新操作分析:
第一種更新:
我們繼續(xù)使用上面的數(shù)據(jù),首先對1號數(shù)據(jù)進行第一種更新操作:

POST customer/external/1/_update {"doc":{"name":"john"} }

第一次結(jié)果:

"_version": 5, "result": "updated"

第二次結(jié)果:

"_version": 5, "result": "noop"

分析:使用這種更新操作進行重復(fù)更新時,若數(shù)據(jù)與原先一致,則不進行任何操作。

第二種更新:

POST customer/external/1 {"name":"blue" }

第一次結(jié)果:

"_version": 6, "result": "updated"

第二次結(jié)果:

"_version": 7, "result": "updated"

分析:
使用第二種更新操作時[即不帶update],無論是否重復(fù)更新,數(shù)據(jù)是否一致,都會進行更新,version版本相應(yīng)增加。因此若使用PUT方式,結(jié)果也一致。

5、刪除文檔&索引

DELETE http://XXXX:9200/customer/external/1

手動[啪的一下],數(shù)據(jù)沒了:

{"_index": "customer","_type": "external","_id": "1","_version": 9,"result": "deleted","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 10,"_primary_term": 1 }

我們再試試能不能查到:

GET http://XXXX:9200/customer/external/1

結(jié)果:

{"_index": "customer","_type": "external","_id": "1","found": false }

數(shù)據(jù)可以刪除,那類型和索引是否也可以刪除,答案是能刪,只能刪一點點,ES只提供了直接刪除索引的操作,并沒有提供直接刪除類型的操作,但是我們可以將類型下的所有文檔清空,也相當(dāng)于刪除了整個類型。

6、bulk批量API

bulk是ES中可以給ES批量導(dǎo)入數(shù)據(jù)地語法。
如:

POST customer/external/_bulk {"index":{"_id":"1"}} {"name":"John"} {"index":{"id":"2"}} {"name":"Jane"}

解析:
我們對customer索引下的external類型進行bulk的POST操作,批量index[保存]id為1的name為John和id為2的name為Jane的兩條數(shù)據(jù),可以看作每兩行為一次操作,同樣可以delete,get。

我們在postman中進行操作時發(fā)現(xiàn),JSON數(shù)據(jù)報錯,那這會kibana就派上用場了,我們進入kibana,找到Dev Tools:

在kibana中發(fā)送請求:

POST /customer/external/_bulk {"index":{"_id":"1"}} {"name":"John"} {"index":{"id":"2"}} {"name":"Jane"}

結(jié)果成功。

接下來我們繼續(xù)測試批量數(shù)據(jù)操作,官方為我們準(zhǔn)備了一份樣本數(shù)據(jù):
https://www.elastic.co/guide/cn/kibana/current/tutorial-load-dataset.html
下載莎士比亞,將其中部分使用bulk批量導(dǎo)入
命令:

POST shakespeare/_bulk {"index":{"_index":"shakespeare","_id":0}} {"type":"act","line_id":1,"play_name":"Henry IV", "speech_number":"","line_number":"","speaker":"","text_entry":"ACT I"} .....

結(jié)果若無誤,OK,我們繼續(xù)下一步操作。

ElasticSearch:進階

進階檢索:
ES支持兩種基本方式檢索:
uri+檢索參數(shù)檢索
通過使用REST request URI 發(fā)送搜索參數(shù)(uri+檢索參數(shù))如:

GET shakespeare/_search?q=*

uri+請求體檢索
通過使用REST request body進行發(fā)送(uri+請求體)如:

GET shakespeare/_search {"query": {"match_all": {}},"sort": [] }

分析:
在以后我們可能更多采用第二種方式,因為可操作性更強,處理復(fù)雜請求時更得心應(yīng)手

"query":"查詢條件" "match_all":"匹配所有" "sort":"排序條件"

我們一個個試試:

uri+檢索參數(shù)檢索

即第一種請求參數(shù)方式檢索

GET shakespeare/_search?q=*&sort=account_number:asc

分析:

q=* # 查詢所有 sort # 排序字段 asc #升序

檢索shakespeare下所有信息,包括type和docs

GET shakespeare/_search

查詢結(jié)果:

{"took" : 0,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 500,"relation" : "eq"},"max_score" : 1.0,"hits" : [{"_index" : "shakespeare","_type" : "account","_id" : "0","_score" : 1.0,"_source" : {"type" : "act","line_id" : 1,"play_name" : "Henry IV","speech_number" : "","line_number" : "","speaker" : "","text_entry" : "ACT I"}},.... ]} }

結(jié)果分析:

"took" – 花費多少ms搜索 "timed_out" – 是否超時 "_shards" – 多少分片被搜索了,以及多少成功/失敗的搜索分片 "max_score" –文檔相關(guān)性最高得分 "hits.total.value" - 多少匹配文檔被找到 "hits.sort" - 結(jié)果的排序key(列),沒有的話按照score排序 "hits._score" - 相關(guān)得分 (not applicable when using match_all)

uri+請求體檢索

即第二種請求體方式檢索

GET shakespeare/_search {"query": {"match_all": {}},"sort": [] }

結(jié)果與上相同。
我們再進行更多測試,比如我們想只顯示部分查詢數(shù)據(jù)

GET shakespeare/_search {"query": {"match_all": {}},"sort": [],"from": 0,"size": 1 }

解析:查出的數(shù)據(jù)從"from"開始,長度為"size"進行顯示,即顯示從0開始的1條數(shù)據(jù)
結(jié)果:

{"took" : 0,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 500,"relation" : "eq"},"max_score" : 1.0,"hits" : [{"_index" : "shakespeare","_type" : "account","_id" : "0","_score" : 1.0,"_source" : {"type" : "act","line_id" : 1,"play_name" : "Henry IV","speech_number" : "","line_number" : "","speaker" : "","text_entry" : "ACT I"}}]} }

繼續(xù)測試,我們?nèi)绻幌?strong>返回查詢到的數(shù)據(jù)的某一個部分,那么可以用以下操作[上條件不變]:

GET shakespeare/_search {"query": {"match_all": {}},"sort": [],"from": 0,"size": 1,"_source": ["line_id","line_number"] }

解析:"_source"作用是對返回數(shù)據(jù)進行顯示,默認(rèn)是全部顯示
結(jié)果:

"_source" : {"line_number" : "","line_id" : 1 }

可以看到只返回了我們指定的數(shù)據(jù)。

match全文檢索

先來個簡單的match檢索[match的屬性必須是_source中存在的]:

GET shakespeare/_search {"query": {"match": {"line_id": "2"}} }

結(jié)果:

"_source" : {"type" : "scene","line_id" : 2,"play_name" : "Henry IV","speech_number" : "","line_number" : "","speaker" : "","text_entry" : "SCENE I. London. The palace." }

對于屬性的match,不僅可以全屬性值match,還可以部分屬性值match,功能強大,原因我們之后再說。繼續(xù)舉個栗子,我們對某屬性的部分值進行檢索

GET shakespeare/_search {"query": {"match": {"text_entry": "London"}} }

結(jié)果[方便起見,只放查詢部分結(jié)果]:

"text_entry" : "SCENE I. London. The palace.""text_entry" : "SCENE III. London. The palace.""text_entry" : "SCENE II. London. An apartment of the Princes.""text_entry" : "riding to London with fat purses: I have vizards"

再再再舉個栗子,使用match分詞進行全文匹配

GET shakespeare/_search {"query": {"match": {"text_entry": "be of"}} }

match條件是text_entry屬性中存在be of的結(jié)果,無論be of是否在一起,是否相連,是否都存在,只要存在其中一個,就被match。
結(jié)果:

"text_entry" : "Of murderous subornation, shall it be,""text_entry" : "Than out of anger can be uttered.""text_entry" : "thieves of the days beauty: let us be Dianas""text_entry" : "The scourge of greatness to be used on it;""text_entry" : "Of my young Harry. O that it could be proved"....

為何ES能做到這么強大?原因是match進行了分詞全文匹配,只要包含了匹配值的都會被查詢出來,而ES底層維護了一張倒排索引表,以支持全文匹配和最大得分[匹配相似評比分],且查詢結(jié)果會以最大得分排序。

match_phrase[短語匹配]

短語匹配不同于match的分詞匹配,它必須組合在一起才能被match,舉個栗子,使用match_phrase進行匹配查詢:

GET shakespeare/_search {"query": {"match_phrase": {"text_entry": "be of"}} }

結(jié)果:

"hits" : [ ]

還是同一時間,同一地點,結(jié)果卻不同,這就是match_phrase與match的區(qū)別

multi_match[多字段匹配]

可以在多個字段中進行match匹配。
舉個栗子,我們同時match匹配兩個字段:

GET shakespeare/_search {"query": {"multi_match": {"query": 1,"fields": ["line_number","speech_number"]}} }

解析:

"query":查詢匹配內(nèi)容 "fields":被查詢的屬性字段

結(jié)果:

"speech_number" : 1,"line_number" : "1.1.1","speech_number" : 1,"line_number" : "1.1.2",...

如果查詢的內(nèi)容是多詞,同樣滿足match分詞匹配條件,也會進行分詞查詢,最后得出最大分?jǐn)?shù)進行排序。

bool[復(fù)合查詢]

當(dāng)我們要構(gòu)造更復(fù)雜的查詢時可以使用bool復(fù)合查詢。其查詢規(guī)格必須全部被滿足。
我們舉個栗子,使用bool進行復(fù)合查詢:

GET shakespeare/_search {"query": {"bool": {"must": [{"match": {"play_name": "Henry"}},{"match": {"speaker": "HENRY"}}],"must_not": [{"match": {"text_entry": "of"}}],"should": [{"match": {"play_name": "Henry"}}]}} }

分析:

"bool":表示使用bool查詢 "must":必須執(zhí)行 "must_not":必須不被執(zhí)行 "should":如果滿足其中條件,可以加分[即增加最大分?jǐn)?shù)]

結(jié)果:

"play_name" : "Henry IV","speaker" : "PRINCE HENRY","text_entry" : "and unbuttoning thee after supper and sleeping upon"....

結(jié)果過濾

filter可以理解為bool查詢中的must_not,作為過濾條件存在。
舉個栗子,查詢屬性text_entry中values中存在and after且line_id在 100 - 120之間的數(shù)據(jù)

GET shakespeare/_search {"query": {"bool": {"must": [{"match": {"text_entry": "and after"}}],"filter": {"range": {"line_id": {"gte": "100","lte": "120"}}}}} }

分析:

"filter":過濾條件 "range":區(qū)間

結(jié)果:

"_score" : 4.313828 "_score" : 1.2873212 "_score" : 1.2208143

可以發(fā)現(xiàn),其相關(guān)性得分各不相同。
但是filter在使用過程中,并不會計算相關(guān)性得分, 文檔是否符合每個“must”或“should”子句中的標(biāo)準(zhǔn),決定了文檔的“相關(guān)性得分”。 得分越高,文檔越符合搜索條件。
而must_not會影響文檔是否包含在結(jié)果中, 但不影響文檔的評分方式。

term查詢

term查詢用于查詢非文本字段的值
首先我們先進行一段查詢,match的keyword查詢與match_phrase查詢的區(qū)別:

GET shakespeare/_search {"query": {"match": {"text_entry.keyword": "Breathless and faint, leaning upon my sword,"}} } GET shakespeare/_search {"query": {"match_phrase": {"text_entry": "Breathless and faint, leaning upon my sword,"}} }

結(jié)果[相同]:

"_source" : {"type" : "line","line_id" : 361,"play_name" : "Henry IV","speech_number" : 6,"line_number" : "1.3.33","speaker" : "HOTSPUR","text_entry" : "Breathless and faint, leaning upon my sword," }

如果將keyword刪去最后的逗號,再執(zhí)行,發(fā)現(xiàn)沒有結(jié)果,而match_phrase結(jié)果不變,于是我們可以發(fā)現(xiàn),keyword的整句搜索就是該字段的全部值;而match_phrase則是短語匹配,只要該字段的全部值中包含搜索條件,則匹配成功。

這個作為一個小復(fù)習(xí)。

回到term,全文檢索字段使用match,其它非text字段匹配用term。這是一個規(guī)范。

GET shakespeare/_search {"query": {"term": {"line_id":361}} }

聚合分析

通常與查詢一起使用,查詢檢索聚合一步到位,十分強大,類似mysql中的groupby等操作,因此也十分重要。
舉個栗子,查詢大小為10的地址中包含Mill的人的年齡區(qū)間分布,并查出其年齡平均值、收入平均值,并且不想看結(jié)果:

#分別為包含mill、,平均年齡、 GET bank/_search {"query": { # 查詢出包含mill的"match": {"address": "Mill"}},"aggs": { #基于查詢聚合"ageAgg": { # 聚合的名字,隨便起"terms": { # 看值的可能性分布"field": "age","size": 10}},"ageAvg": { "avg": { # 看age值的平均"field": "age"}},"balanceAvg": {"avg": { # 看balance的平均"field": "balance"}}},"size": 0 # 不看詳情 }

如上只是單個聚合,子聚合可以在父聚合的條件下繼續(xù)聚合。使用起來十分強大。
如需詳細(xì)了解,可移步官網(wǎng)深究。

ElasticSearch:映射

映射簡單說就是定義文檔如何被存儲和檢索的。
[以后不推薦使用類型映射,會降低檢索效率,一般使用索引映射]。

查看映射:

GET shakespeare/_mapping

如果我們不滿意默認(rèn)的映射規(guī)則,可以自定義映射規(guī)則,如:

PUT /my_index {"mappings": {"properties": {"age":{"type": "integer"}}} }

解析:按上面規(guī)定的映射規(guī)格,我們以后在my_index索引下存儲的數(shù)據(jù)都以該映射規(guī)則存儲和檢索。

如果我們在創(chuàng)建索引映射時未創(chuàng)建完全,仍想繼續(xù)在原索引上添加映射,那么可以這樣做:

PUT /my_index/_mapping {"mappings": {"properties": {"name":{"type": "text"}"phone":{"type":"keyword","index":false}}} }

解析:如上的作用僅為添加映射,不能作為創(chuàng)建新的索引映射或者更新映射。在映射屬性上添加index=false則表示不能使用phone來檢索數(shù)據(jù),在默認(rèn)清空下index都為true。

更新映射

很遺憾,在ES的語法中,我們對于已經(jīng)存在的映射字段,不能更新。但是可以通過創(chuàng)建新的索引進行數(shù)據(jù)遷移達到相同目的。

數(shù)據(jù)遷移

固定寫法:

POST _reindex {"source":{"index":"old_index[name]" },"dest":{"index":"new_index[name]" } }

ElasticSearch:分詞

分詞是ES中做全文檢索的核心,作用是將一個字符流分成一個個詞元[tokens],然后利用各單詞的相關(guān)性匹配完成檢索,舉個栗子:“I am a pig”,默認(rèn)的標(biāo)準(zhǔn)分詞器會將其分為"I",“am”,“a”,“pig”,然后再進行全文檢索。

分詞操作是分詞器[tokenizer]完成的。默認(rèn)我們使用的是標(biāo)準(zhǔn)分詞器。舉個栗子:

POST _analyze {"analyzer": "standard","text": "The 2 Brown-Foxes bone." }

分詞結(jié)果:

{"tokens" : [{"token" : "the","start_offset" : 0,"end_offset" : 3,"type" : "<ALPHANUM>","position" : 0},{"token" : "2","start_offset" : 4,"end_offset" : 5,"type" : "<NUM>","position" : 1},{"token" : "brown","start_offset" : 6,"end_offset" : 11,"type" : "<ALPHANUM>","position" : 2},{"token" : "foxes","start_offset" : 12,"end_offset" : 17,"type" : "<ALPHANUM>","position" : 3},{"token" : "bone","start_offset" : 18,"end_offset" : 22,"type" : "<ALPHANUM>","position" : 4}] }

可以看出標(biāo)準(zhǔn)分詞器使用了空格作為標(biāo)準(zhǔn)之一進行了分詞。

但是如果我們使用中文進行分詞,會發(fā)現(xiàn),每一個中文詞都被分割了,而不是我們平常使用的按照詞義分詞,因此我們需要引入其它分詞器。

一般而言,中文大都使用ik分詞器:github
注意分詞器要和ES版本對應(yīng)

在前面安裝的elasticsearch時,我們已經(jīng)將elasticsearch容器的“/usr/share/elasticsearch/plugins”目錄,映射到宿主機的“ /mydata/elasticsearch/plugins”目錄下,所以比較方便的做法就是下載“/elasticsearch-analysis-ik-7.4.2.zip”文件,然后解壓到該文件夾下即可。安裝完畢后,需要重啟elasticsearch容器。

這里操作其實還是推薦使用xftp軟件,就一個字,方便。

進入映射目錄:cd /mydata/elasticsearch/plugins 下載:wget 下載地址 解壓:unzip xxx.zip /ik 卸磨殺驢:rm -rf *.zip 重啟ES:docker restart xxxx

成功后,我們試試新的分詞器[帶有兩種中文分詞器,分別是ik_smartik_max_work]:

POST _analyze {"analyzer": "ik_smart","text": "我是中國人" }

結(jié)果:

{"tokens" : [{"token" : "我","start_offset" : 0,"end_offset" : 1,"type" : "CN_CHAR","position" : 0},{"token" : "是","start_offset" : 1,"end_offset" : 2,"type" : "CN_CHAR","position" : 1},{"token" : "中國人","start_offset" : 2,"end_offset" : 5,"type" : "CN_WORD","position" : 2}] }

OK,到這里分詞功能大功告成。

不過有些時候其自帶庫不能滿足我們的需求【流行語等等…】,所以接下來我們來試試自定擴展詞庫

這里我們使用nginx來實現(xiàn)自定義擴展詞庫方便點,如果沒有nginx,先使用docker安裝nginx:

docker run -p 80:80 --name nginx -d nginx:1.10

然后我們需要將容器中的配置文件拷貝到mydata目錄下【記得先創(chuàng)建一個nginx文件夾,同時使用命令時結(jié)尾的.和空格需要相同】:

docker container cp nginx:/etc/nginx .

然后把容器中的nginx停掉并rm。
我們想將該文件夾中的內(nèi)容移入nginx的conf文件夾中,因此我們來修改一下,先給nginx文件夾改個名:

mv nginx conf

然后再創(chuàng)建一個nginx文件夾:

mkdir nginx

把conf移入nginx:

mv conf nginx/

創(chuàng)建一個新的nginx,并執(zhí)行以下命令【掛載】:

docker run -p 80:80 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/conf:/etc/nginx \ -d nginx:1.10

創(chuàng)建成功后,在nginx的conf目錄下,我們可以看到三個文件夾,進入html文件夾中,創(chuàng)建一個es文件夾,用來存放我們自定義的詞庫:

cd mydata/nginx/html mkdir es cd es/ vi mycode.txt

nginx方面基本完成,接下來我們來到ES配置遠(yuǎn)程詞庫地址:
由于ES也是掛載了文件,因此我們找到ES中配置遠(yuǎn)程詞庫文件對應(yīng)的Linux中的文件中:

cd mydata/elasticsearch/plugins/ik/config/ vi IKAnalyzer.cfg.xml

在這里進行遠(yuǎn)程詞庫配置:

<!--用戶可以在這里配置遠(yuǎn)程擴展字典 --> <entry key="remote_ext_dict">http://XXX/es/mycode.txt</entry>

重啟ES:

docker restart XXXX

試試效果,我在自定義中配置了"沙琪瑪"和"好吃點":

POST _analyze {"analyzer": "ik_smart","text": "我愛沙琪瑪" }

結(jié)果:

{"tokens" : [{"token" : "我","start_offset" : 0,"end_offset" : 1,"type" : "CN_CHAR","position" : 0},{"token" : "愛","start_offset" : 1,"end_offset" : 2,"type" : "CN_CHAR","position" : 1},{"token" : "沙琪瑪","start_offset" : 2,"end_offset" : 5,"type" : "CN_WORD","position" : 2}] }

成功!
至此基本的ES操作就結(jié)束了,如果想要更深入的學(xué)習(xí)ES,可以去官網(wǎng)查閱相關(guān)資料。

祝 進大廠,無996。886,陌生人。

總結(jié)

以上是生活随笔為你收集整理的万字长文,学会ElasticSearch,这一篇就够了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

91热爆在线观看 | 日韩国产精品久久久久久亚洲 | 欧美黑人猛交 | 久青草国产在线 | 黄色大片av | 国产 一区二区三区 在线 | 久久99国产精品二区护士 | 午夜色站| 综合伊人av | 92av视频 | 国产无遮挡又黄又爽馒头漫画 | 91香蕉视频污在线 | 国产免费xvideos视频入口 | 精品国产自在精品国产精野外直播 | 狠狠干,狠狠操 | 97超碰中文字幕 | 日本69hd| 91麻豆精品国产91久久久使用方法 | 日本精品久久久久影院 | 亚洲码国产日韩欧美高潮在线播放 | 黄色一级大片在线免费看产 | 久久经典国产视频 | 免费又黄又爽视频 | 六月丁香社区 | 成人网页在线免费观看 | 日韩久久一区 | 久热超碰| 中文字幕一区二区三区在线视频 | 成人小视频在线免费观看 | 综合五月婷婷 | 中文字幕在线观看视频免费 | 国产九九九视频 | 欧美精品资源 | 夜夜躁天天躁很躁波 | 91超碰免费在线 | 三级av小说 | 五月婷婷网站 | 在线欧美国产 | 中文字幕精品一区 | 久久激情片 | 亚洲一区二区天堂 | 午夜精品影院 | 最近中文字幕国语免费高清6 | 久久这里有 | 99精品美女 | 伊人五月在线 | av高清一区 | www.黄色片网站 | 91精品视频在线免费观看 | 国产日韩在线视频 | 91精品国产综合久久福利 | 久久精品视频观看 | www99精品 | 久久久久久久精 | 91在线视频网址 | 91亚洲精品久久久中文字幕 | av在线电影播放 | 国际精品网| 久精品一区 | 在线高清av | 一区 二区 精品 | 免费情缘 | 日韩午夜在线观看 | www.色爱 | 久久欧美综合 | 久草在线视频首页 | 日韩精品视频在线观看网址 | 久久在线免费 | 一区二区三区福利 | 色丁香久久 | 精品国内自产拍在线观看视频 | 中文字幕在线观看国产 | 国产一级大片免费看 | 综合久久婷婷 | 97在线观看免费高清完整版在线观看 | 看片黄网站 | 又黄又爽的视频在线观看网站 | 国产成年人av| 日韩在线一二三区 | 超碰人人做 | 亚洲精品在线观看网站 | 亚洲免费成人av电影 | 日韩电影中文字幕 | 亚洲最新在线 | 成片免费观看视频大全 | 成人网大片 | 亚洲国产片 | 91精品婷婷国产综合久久蝌蚪 | avav99| 超碰在线最新地址 | 麻豆91在线观看 | 精品国产一二三 | 99电影 | 亚洲综合色丁香婷婷六月图片 | 日日精品| 蜜臀av性久久久久av蜜臀妖精 | 天堂黄色片 | 美女久久久久久久久久久 | 久久久免费视频播放 | av性在线| 国产传媒一区在线 | 亚洲高清久久久 | 欧美一区二视频在线免费观看 | 色综合天天视频在线观看 | 人人澡人人爱 | 久久久久久久久久久久久久av | 亚洲国产精品视频在线观看 | 精品久久一二三区 | 天天干天天操天天操 | 欧洲av在线| 免费看麻豆 | 91丨精品丨蝌蚪丨白丝jk | 欧美一级免费黄色片 | 午夜精品久久久久久久99热影院 | 精壮的侍卫呻吟h | 日本中文字幕网址 | 91视频免费网址 | 91一区二区三区久久久久国产乱 | 亚洲va综合va国产va中文 | 青青视频一区 | 一级黄色av | 91精品国产成 | 久草免费新视频 | 国产精品theporn| 国产精品美女999 | 国产精品ssss在线亚洲 | 天天躁天天狠天天透 | 中文字幕亚洲欧美日韩2019 | 日韩欧美在线综合网 | 国产视频每日更新 | 国产精品综合久久 | 欧美黄色免费 | 日韩视频一区二区三区在线播放免费观看 | av色影院| 欧美日韩精品二区第二页 | 国产中文字幕久久 | 国产一级片毛片 | 久久精品美女 | 91精品久久久久久综合乱菊 | 午夜精品视频免费在线观看 | 国产精品色婷婷视频 | 午夜国产在线观看 | 少妇bbw撒尿 | 国产在线国产 | 日韩成人不卡 | 九九99靖品 | 久久精品视频播放 | 国产高清日韩欧美 | 久久久久久久久久久国产精品 | 亚洲专区在线播放 | 92国产精品久久久久首页 | www色av| 99久久久国产精品免费观看 | 久久a国产 | 久久久av电影 | 国产视频九色蝌蚪 | 亚洲最新av在线网址 | 不卡国产视频 | 精品国产一区二区三区男人吃奶 | 91福利在线观看 | 五月综合激情 | 国产欧美久久久精品影院 | 久久免费看毛片 | 国产真实在线 | 日韩r级在线 | www免费看| 欧美精品黑人性xxxx | 免费观看av| 久久九九国产精品 | 人人干,人人爽 | 激情久久伊人 | 国产高清日韩 | 丁香九月激情 | 国产精品一级视频 | 在线观看中文 | 91在线麻豆 | 亚洲视屏在线播放 | 午夜久久美女 | 中文字幕免费高清av | 天天色天天干天天 | 在线观看一区视频 | 人九九精品 | 久久天天躁狠狠躁夜夜不卡公司 | 亚洲三级影院 | 亚洲欧美日韩一二三区 | 黄色不卡av | aaa毛片视频 | 99久久精 | 最近中文国产在线视频 | 国产小视频在线免费观看视频 | 日韩欧美国产激情在线播放 | 久久er99热精品一区二区 | 国产精品毛片久久 | 国产日韩精品一区二区三区在线 | 欧美日韩高清一区二区 国产亚洲免费看 | .国产精品成人自产拍在线观看6 | 午夜12点 | 在线观看你懂的网站 | 久久人操 | 丁香激情综合国产 | 美女黄色网在线播放 | 欧美一级视频在线观看 | 色婷婷狠狠18 | 波多野结衣网址 | 国产欧美中文字幕 | 九九在线视频 | 四虎影视成人永久免费观看视频 | www.com在线观看 | 精品免费在线视频 | 中文字幕亚洲国产 | 亚洲第一中文字幕 | avhd高清在线谜片 | 成人黄大片视频在线观看 | 又黄又刺激 | 欧美日韩中字 | 久久99精品久久久久蜜臀 | 亚洲成a人片综合在线 | 最近2019年日本中文免费字幕 | 91精品久久久久久粉嫩 | 久久久伦理 | 国产成人一级电影 | 国产精品区二区三区日本 | 超碰人在线 | 国产精品久久久久av免费 | 国产日韩中文字幕在线 | 亚洲精品乱码久久久久久蜜桃欧美 | 欧美日韩久久不卡 | 丁香婷婷久久久综合精品国产 | 91成人观看 | 亚洲精品在线观看av | 81精品国产乱码久久久久久 | 97在线视频免费播放 | 91在线视频在线观看 | 狠狠干夜夜操 | 国产精品色婷婷视频 | 深夜福利视频在线观看 | 天天插综合网 | 五月天伊人网 | 亚洲国产福利视频 | 在线久热| 天天干夜夜擦 | 久久国产精品免费 | 色婷婷狠狠 | 国际精品久久久久 | 高潮久久久 | 日日天天 | 日韩三级视频 | 97干com| 日本韩国精品在线 | 久久久久久久久久久久电影 | 岛国av在线 | japanese黑人亚洲人4k | 天天天干夜夜夜操 | 日韩中文在线视频 | 在线91播放 | 欧美性生活久久 | 97自拍超碰 | 麻豆国产精品va在线观看不卡 | 国产又粗又长的视频 | 欧美视屏一区二区 | 亚洲欧美国产精品久久久久 | 夜夜骑日日| 日本性动态图 | 精品uu | 免费日韩在线 | 亚洲欧洲一区二区在线观看 | 久久福利国产 | 久久久久免费视频 | 国产视频一区精品 | 欧美一级性生活视频 | 丝袜精品视频 | 免费在线观看国产精品 | 国产麻豆果冻传媒在线观看 | 欧美精品xxx | 亚洲区色 | 97免费在线观看视频 | 视频在线播放国产 | 亚洲精区二区三区四区麻豆 | 在线观看深夜福利 | 99视频+国产日韩欧美 | 草久在线 | 美女一区网站 | 色狠狠狠 | 在线亚洲天堂网 | 日韩高清一二三区 | 欧美精品在线观看免费 | 久久精品站 | 欧美一区二区三区激情视频 | 97香蕉超级碰碰久久免费软件 | 免费观看av | 91人人澡人人爽 | 色就是色综合 | 国产精品自产拍 | 午夜久久久久久久久久影院 | 亚洲 成人 欧美 | 亚洲成人午夜av | 国产精品手机在线播放 | 国产高清日韩欧美 | 狠狠亚洲 | 久草在线精品观看 | 97精品国自产拍在线观看 | 99久久综合国产精品二区 | 久久欧美综合 | 日韩成人在线免费观看 | 国产一二区视频 | 成人丝袜| 狠狠狠狠干 | 亚洲免费精彩视频 | 久草精品免费 | 久久手机看片 | 99人成在线观看视频 | 日韩高清一区二区 | 国产日韩在线看 | 天天射天天爱天天干 | av高清一区二区三区 | 国产区精品在线 | 91九色网站| 精品在线观看国产 | 激情网五月天 | 在线观看精品视频 | 亚洲 欧美变态 另类 综合 | 国产中文字幕网 | 精品婷婷 | 亚洲黄色免费在线 | 五月天激情视频在线观看 | 国产午夜三级一区二区三桃花影视 | 日韩高清不卡在线 | 国产综合片 | 亚洲欧美激情精品一区二区 | 日韩激情在线视频 | 国产精品女 | 日韩在线第一区 | 一级片免费观看 | 亚州人成在线播放 | 精品自拍sae8—视频 | 色五丁香 | 久久久男人的天堂 | 国产 日韩 欧美 中文 在线播放 | 激情综合啪啪 | 久久亚洲私人国产精品 | 91看国产| 成人a级网站 | 99久久夜色精品国产亚洲 | 在线国产99 | 日日干夜夜干 | 欧美做受69 | 欧美影院久久 | 中文字幕欧美日韩va免费视频 | 高清视频一区二区三区 | 五月综合激情婷婷 | 在线观看韩国av | 色噜噜噜 | www婷婷 | 久久久久久久久毛片 | 久久久久久欧美二区电影网 | 人人爽人人爽人人片av | 91手机电影 | 亚洲综合视频在线播放 | 狠狠网亚洲精品 | 91精品在线视频观看 | 欧美性生活一级片 | 国产精品热视频 | 国产亚洲成人网 | 国产麻豆精品在线观看 | 久草香蕉在线 | 免费看高清毛片 | 亚洲伊人天堂 | 国产成人精品午夜在线播放 | 狠狠狠狠狠狠狠狠干 | 一区二区三区视频在线 | 色悠悠久久综合 | 人人狠狠综合久久亚洲婷 | 亚洲精品视频免费看 | 日韩免费高清 | 久草在线视频网站 | 五月天网站在线 | 精品久久久久久国产 | 国产手机在线视频 | 射久久 | 一区二区三区动漫 | 欧美最猛性xxxxx亚洲精品 | 国产精品免费久久久久影院仙踪林 | 国产麻豆精品在线观看 | 国产在线观看91 | 顶级欧美色妇4khd | 久久99精品国产麻豆宅宅 | 911国产精品 | 久久激情影院 | 免费看毛片网站 | 69国产精品视频免费观看 | 国产精品欧美一区二区三区不卡 | 91麻豆操 | 日韩成人在线一区二区 | 精品视频国产一区 | 97精品国产97久久久久久粉红 | 久草免费看| 日批视频在线 | 亚洲资源在线观看 | 久久成人久久 | 久久色中文字幕 | 国产在线播放一区 | 亚州日韩中文字幕 | 日韩国产欧美在线视频 | 亚洲资源在线观看 | 777xxx欧美| 人人玩人人添人人澡97 | 天天天干天天天操 | 波多野结衣在线观看一区二区三区 | 91av在线电影 | 亚洲国产欧洲综合997久久, | 天天操天天舔天天干 | 国产精品免费久久久久影院仙踪林 | 久草在线这里只有精品 | 成人全视频免费观看在线看 | 在线观看日韩精品 | 91传媒激情理伦片 | 精品日韩中文字幕 | 在线视频1卡二卡三卡 | 麻豆传媒视频在线播放 | 久久婷婷五月综合色丁香 | av片一区二区 | 美女免费视频网站 | 综合网伊人 | 欧美三人交 | 日韩二区三区在线观看 | 国产手机精品视频 | 色a综合 | 草莓视频在线观看免费观看 | 免费日韩 精品中文字幕视频在线 | 麻豆94tv免费版 | 日韩中文在线视频 | 成人在线观看影院 | 天天干人人 | 不卡视频在线看 | 一区三区视频在线观看 | 亚洲精品久久久蜜臀下载官网 | 天天摸天天舔天天操 | 中文av资源站 | 亚洲精品动漫久久久久 | 人人插人人艹 | 久久色中文字幕 | 四虎影视成人永久免费观看视频 | 欧美激情综合五月 | 久久tv| 国产成人精品综合久久久久99 | 999视频在线播放 | 四虎永久免费在线观看 | 日韩av一区在线观看 | 中文字幕在线播放视频 | 亚洲精品午夜一区人人爽 | 中文字幕在线免费 | 欧美成人区 | 天天天在线综合网 | 国产精品视频最多的网站 | 2019天天干夜夜操 | 色婷婷综合久久久中文字幕 | 99久久99久国产黄毛片 | 国产亚洲精品久久久网站好莱 | 在线视频app | 日韩在线观看一区二区 | 欧美性极品xxxx娇小 | 91人人视频在线观看 | 国语黄色片 | 在线观看不卡视频 | 国产一级片播放 | 中国一级特黄毛片大片久久 | 日韩中文字幕第一页 | 麻豆视频免费在线 | 毛片激情永久免费 | 区一区二在线 | 国产精品18久久久久白浆 | 日韩av片在线| 免费观看一级成人毛片 | 日韩天天综合 | 国产黄色播放 | 中文字幕成人网 | 国产999免费视频 | 欧美精品久久久 | 最近的中文字幕大全免费版 | av在线在线 | 成人免费一级 | 亚洲区精品视频 | 亚洲最新av网站 | 一色av| 色吧av色av | 欧美不卡在线 | 欧美日韩一区二区在线 | 亚洲综合激情小说 | 乱男乱女www7788 | 92国产精品久久久久首页 | 国产精品片 | 伊人国产视频 | 久久狠狠一本精品综合网 | 中日韩欧美精彩视频 | 成人四虎| 婷婷久久一区二区三区 | 2019天天干夜夜操 | 顶级bbw搡bbbb搡bbbb | 中文字幕免费在线看 | 久久久久成人免费 | japanesexxxxfreehd乱熟| 玖玖国产精品视频 | 亚洲成人精品在线观看 | 成人禁用看黄a在线 | 免费精品国产 | aaa黄色毛片 | 97精品国产97久久久久久粉红 | 中文字幕在线影院 | 人人揉人人揉人人揉人人揉97 | av黄色免费在线观看 | 免费在线黄网 | 亚洲香蕉在线观看 | 久久一区二区三区四区 | 国产精品中文久久久久久久 | 一级a性色生活片久久毛片波多野 | 在线婷婷 | 黄网站色 | 国产美女被啪进深处喷白浆视频 | 久久久久久国产精品亚洲78 | 成人午夜剧场在线观看 | 成人午夜性影院 | 韩日精品在线 | 久久午夜鲁丝片 | 超级碰99| 国产成人亚洲精品自产在线 | 国产91av视频在线观看 | 亚洲精品97| 亚洲高清激情 | 91桃色免费视频 | 日韩专区在线播放 | 国产小视频在线免费观看视频 | 国产理论影院 | 99视频在线观看免费 | 国产一级免费播放 | 久久伦理电影 | 国内精品久久久久影院男同志 | 国产成人精品久久久 | 91在线中文字幕 | 超碰人人在线观看 | 国产麻豆剧果冻传媒视频播放量 | 婷婷在线不卡 | 中文字幕在线播出 | 精品一区免费 | 麻豆影视在线免费观看 | 最近日本中文字幕a | 天天插狠狠干 | 精品在线视频一区二区三区 | 国产裸体视频bbbbb | 免费观看视频的网站 | 一区精品久久 | 国产精品一区一区三区 | 99久久精品国产亚洲 | 黄色a一级片 | 日韩精品一区二区三区中文字幕 | 成人黄大片视频在线观看 | 精品福利片 | 久久久精品一区二区 | 国产亚洲综合精品 | 中文 一区二区 | 中文字幕在线久一本久 | 国产精品视频大全 | 日韩av片在线| 亚洲精品视频播放 | 久久久www成人免费精品 | 五月婷婷六月丁香激情 | 国产在线91精品 | 日韩和的一区二在线 | 91精品欧美 | 狠狠地日 | 欧美日韩精品在线视频 | av一区二区三区在线 | 久久av福利 | 夜添久久精品亚洲国产精品 | 99精品久久99久久久久 | 国产视频一区在线播放 | 91片黄在线观 | 在线视频91 | 日韩欧美亚洲 | 亚洲日本黄色 | 丁香花中文在线免费观看 | 91爱爱电影 | 综合色亚洲 | 韩国一区二区av | 日韩高清www | 日日操日日插 | 91xav| 精品国产一区二区三区久久 | av中文字幕免费在线观看 | free,性欧美| 国内精品久久久久影院优 | 久久久久久久久久久免费视频 | 亚洲国产精品久久久久婷婷884 | 精品国产一区二区三区久久 | 在线观看的a站 | 成人午夜免费剧场 | 免费亚洲片 | 日韩女同一区二区三区在线观看 | 日日夜夜天天人人 | 久久国产精品视频免费看 | av在线进入 | 久久国产欧美日韩精品 | 韩国三级在线一区 | 99热精品国产一区二区在线观看 | 97天堂网 | 国产不卡在线 | 免费看黄在线观看 | 成人免费一区二区三区在线观看 | 国产成人精品电影久久久 | 91精品一区二区三区蜜桃 | 欧美九九九 | 色综合小说| 91亚色免费视频 | 国产精品久久久久久久妇 | 日日夜夜综合网 | 亚洲在线视频免费观看 | 欧美日韩性视频在线 | 国产精品高清在线观看 | 美女中文字幕 | 中文字幕免费高清在线观看 | 黄色免费看片网站 | 特级毛片在线观看 | 国产一级做a爱片久久毛片a | japanese黑人亚洲人4k | 一区二区激情视频 | 亚洲国产一区二区精品专区 | 成人黄色大片 | 久久久国产精品久久久 | 久草网在线观看 | 免费在线观看av网站 | 久久久久中文 | 亚洲国产中文字幕在线 | 欧美 日韩 视频 | 成人a级网站 | 欧美日韩91 | 麻豆国产精品永久免费视频 | av中文在线观看 | 亚洲精品国产精品乱码在线观看 | 久久久久99精品国产片 | 欧美成人精品三级在线观看播放 | 91视频传媒 | 久久欧洲视频 | 成片人卡1卡2卡3手机免费看 | 欧美日韩国产精品一区二区亚洲 | 亚洲综合欧美日韩狠狠色 | 九九交易行官网 | 久久99在线观看 | www看片网站 | 五月婷婷在线观看 | 国产专区在线看 | 97视频免费观看2区 亚洲视屏 | 免费色视频 | 大荫蒂欧美视频另类xxxx | www在线观看国产 | 国产成人精品999在线观看 | 五月婷婷毛片 | 日本久久片 | 国产伦理久久精品久久久久_ | 国产精品久久久久久久久费观看 | 国产精品视频大全 | 天天干天天操天天爱 | 免费在线观看日韩欧美 | 欧美午夜性| 亚洲精品国产精品乱码在线观看 | 最近更新的中文字幕 | 国产一区黄色 | 亚洲欧美在线观看视频 | 曰韩精品 | 成人黄色电影在线观看 | 嫩草伊人久久精品少妇av | free. 性欧美.com| 视频在线观看99 | 九九在线视频 | 99午夜| 久青草视频在线观看 | 二区三区精品 | 欧美日韩精品在线视频 | 99精品免费久久久久久久久日本 | 亚洲精品国产精品国自产观看 | 精品在线观看一区二区三区 | 色综合久久中文字幕综合网 | 亚洲国产精品激情在线观看 | 网站免费黄色 | 天天综合色天天综合 | 97在线播放 | 久久成人国产精品入口 | 91精品视频导航 | 欧美日韩一区二区在线 | 又黄又爽又色无遮挡免费 | 激情导航 | 五月天婷婷在线播放 | 91九色在线视频 | 日韩av免费网站 | 久久五月情影视 | 久久激情久久 | 久久精品99精品国产香蕉 | 五月婷婷中文 | 国产一区二区精品久久 | 亚洲高清免费在线 | 99精品国产一区二区三区不卡 | 精品国产1区2区3区 国产欧美精品在线观看 | 亚洲国产中文字幕在线 | 91丨九色丨蝌蚪丰满 | 国产精品国产三级国产不产一地 | 精品一区二区免费在线观看 | 国产精品网红直播 | av视屏在线 | 国产九九在线 | 日韩免费一二三区 | 国产精品九九久久久久久久 | 黄色av网站在线观看免费 | 亚洲一区二区黄色 | 青青色影院 | a一片一级 | 五月天丁香亚洲 | 人人看人人爱 | 美女视频黄是免费的 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 91九色精品国产 | 欧美日比视频 | 亚洲成免费 | 97超级碰碰碰碰久久久久 | 天天av在线播放 | 天天操夜夜逼 | 色网站免费在线看 | 国产成人99av超碰超爽 | 日韩字幕在线观看 | 欧美久久久 | 欧美一级裸体视频 | 国产精品美女久久久久久久久 | 亚洲无吗天堂 | 色综合久久88色综合天天 | 日韩精品视频免费看 | 91久久久久久久一区二区 | 在线只有精品 | 你操综合| 在线观看你懂的网址 | 综合天堂av久久久久久久 | 国产精品九九久久99视频 | 青青河边草免费观看完整版高清 | 91亚洲夫妻 | 黄色av网站在线免费观看 | 91网址在线| 久久电影网站中文字幕 | 亚洲人成人99网站 | 日韩网站免费观看 | 丰满少妇对白在线偷拍 | 久久精品高清视频 | 国产精品一区二区中文字幕 | 免费视频成人 | 狠狠色丁香婷婷综合视频 | 在线精品视频免费播放 | 国产资源免费在线观看 | 日韩理论片在线观看 | 国产精品成人久久久 | 麻豆传媒精品 | 国产亚洲精品久久19p | 97小视频 | 国产探花视频在线播放 | 精品国产三级 | 国产午夜视频在线观看 | 久久最新视频 | 午夜国产一区二区三区四区 | 美女网站在线观看 | 91九色pron| 在线观看色网 | 91精品国产一区二区在线观看 | 日韩电影中文,亚洲精品乱码 | 片黄色毛片黄色毛片 | 亚洲国产日韩一区 | www黄com| 天天操比 | 日韩一区二区三区高清在线观看 | 欧美激情精品久久久久久免费印度 | 欧美另类色图 | 国产特级毛片aaaaaaa高清 | 日韩av高清 | 一级成人免费 | 伊人久久国产 | 精品在线观看一区二区三区 | 国产精品成人免费一区久久羞羞 | 亚洲视频免费在线观看 | 欧美人zozo| 免费看特级毛片 | 久久精品草 | 最近中文字幕在线播放 | 日本午夜在线观看 | 丁香网婷婷 | 亚洲精品午夜国产va久久成人 | 中文字幕黄色 | 亚洲国产剧情 | 九九热免费视频在线观看 | 综合婷婷久久 | 久久不色| 欧美a√在线 | 国产在线观看免费观看 | 亚洲中字幕 | 国产免费视频一区二区裸体 | 亚州av网站大全 | 973理论片235影院9 | 中文字幕中文字幕中文字幕 | av中文字幕在线电影 | 亚洲 综合 专区 | 三级动态视频在线观看 | 五月婷婷六月综合 | 国产四虎在线 | 人人干在线 | 字幕网资源站中文字幕 | 91亚洲狠狠婷婷综合久久久 | 91人人爱| 一区二区三区四区精品 | 日韩免费高清在线 | 免费看网站在线 | 久久99爱视频 | 国产黄色高清 | 久久免费精彩视频 | 7777xxxx | 久久综合九色综合网站 | 在线观看色视频 | 视频直播国产精品 | 伊人婷婷激情 | 成人久久久电影 | 色综合中文综合网 | 欧美精品久久久久久久久久白贞 | 18久久久| 色婷婷97 | www蜜桃视频 | 日本精品久久久久久 | 五月天综合网 | 又黄又爽又刺激视频 | 男女视频91 | 日p视频在线观看 | av三级在线免费观看 | av高清免费在线 | 久久天天躁夜夜躁狠狠躁2022 | www91在线观看 | 日韩乱色精品一区二区 | 久久夜色精品国产欧美乱 | 国产成人综合在线观看 | 色妞久久福利网 | 又黄又刺激 | 日韩精品一区二区在线观看 | 在线最新av | av 一区二区三区 | 成人免费视频播放 | 在线精品在线 | 国产一区欧美一区 | 成人av影视在线 | 国产中文字幕视频 | 91福利视频免费 | 超碰99人人 | 99夜色 | 日韩r级在线| 爱爱一区| 色网站在线免费观看 | 91大神dom调教在线观看 | 国产一区二区三区四区大秀 | 亚洲精品乱码久久久久久 | 久久刺激视频 | 99久久精品免费看国产一区二区三区 | 国产精品99久久99久久久二8 | 婷婷色综合网 | 国产高清黄色 | 国产成人精品国内自产拍免费看 | 亚洲免费在线视频 | 99久久久久久国产精品 | 国产裸体bbb视频 | 久久成人亚洲欧美电影 | 久久免费a| 黄色影院在线免费观看 | 日韩高清dvd| 在线国产小视频 | 丁香九月婷婷 | h视频在线看 | va视频在线观看 | www婷婷| 免费成人av电影 | 色综合久久久久久久 | 国产精品自在线 | 91正在播放 | 六月婷婷色 | 黄色网大全 | 月丁香婷婷 | 久久超碰97| 99久热在线精品视频成人一区 | 久久久国产精品亚洲一区 | 午夜国产影院 | av福利在线播放 | bbw av| 91精品久久久久久综合乱菊 | 精品高清美女精品国产区 | 在线看污网站 | 91在线九色| 成人在线视频免费观看 | 91网免费看 | 精品久久国产精品 | 国产精品扒开做爽爽的视频 | 免费观看www7722午夜电影 | 成人毛片在线观看 | 色偷偷网站视频 | 午夜精品一区二区三区视频免费看 | 又紧又大又爽精品一区二区 | 国产午夜一区 | 免费黄色小网站 | 91av蜜桃 | 香蕉视频在线免费看 | 精品一区 在线 | 天天操天天射天天舔 | 99精品视频观看 | 午夜精品影院 | 中文字幕黄色av | av九九| 99精品国产高清在线观看 | 91精彩在线视频 | 久久se视频 | 中文字幕在线免费观看视频 | 在线播放第一页 | av青草| 97日日| 日韩美在线 | 久久久久久久久爱 | 国产精品免费观看网站 | 精品国产免费一区二区三区五区 | 久久久久久草 | 久久影院中文字幕 | 狂野欧美激情性xxxx | 免费日韩 精品中文字幕视频在线 | 中文字幕久久久精品 | 日韩免费视频一区二区 | 九九九热精品 | 亚洲精品国产欧美在线观看 | 国产一级精品在线观看 | 在线一区二区三区 | 国内成人精品2018免费看 | 欧美日性视频 | 国产免费视频一区二区裸体 | 99 久久久久| 免费看一级特黄a大片 | 日b视频在线观看网址 | 精品亚洲一区二区 | 日韩在线理论 | 日韩av影片在线观看 | 9i看片成人免费看片 | 日女人免费视频 | 日日草天天草 | 国产91精品久久久久久 | 色婷婷综合久久久中文字幕 | 黄色高清视频在线观看 | 一区二区三区高清在线观看 | 成年人在线电影 | 久久99亚洲网美利坚合众国 | 看毛片网站 | 亚州av成人 | 日韩美精品视频 | 97看片吧| 中文字幕av全部资源www中文字幕在线观看 | 亚洲欧美国产精品 | 最新影院 | 婷婷综合激情 | 五月婷婷天堂 | 色综合在| 亚洲精品美女在线观看 | 五月综合网站 | 国产黄色一级片在线 | 国产小视频免费在线网址 | 狠狠狠狠狠狠天天爱 | a黄色影院 | 91精品国产自产老师啪 | 国产视频观看 | 中文国产成人精品久久一 | www.成人久久 | www.97视频 | 九九日韩| 精品在线观看国产 | 欧美污在线观看 | 免费久久精品视频 | 国产亚洲一级高清 | 人人藻人人澡人人爽 | 少妇搡bbbb搡bbb搡忠贞 | 国产亚洲视频在线 | 欧美日韩国产一区二区三区在线观看 | 久久九九免费 | 夜色成人网 | 国产精品人人做人人爽人人添 | 中文字幕在线国产精品 | 日韩精品中文字幕在线不卡尤物 | 久草在线免费资源 | 国产色黄网站 | 在线免费观看亚洲视频 | 成人在线观看网址 | 成人av电影免费在线观看 | 日韩啪视频 | 日韩有码第一页 | 国产精品一级视频 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 麻花天美星空视频 | 欧美一级日韩三级 | 久久爱综合 | 亚洲va欧洲va国产va不卡 |