Elasticsearch6 3 0學習筆記(二)

2021-08-21 07:07:52 字數 2420 閱讀 8151

先準備測試資料,es有提供有關批量執行的方式:_bulk

參考:但是在postman中插入式異常,所以暫時使用單條插入的方式

put localhost:9200/movies/movie/1

put localhost:9200/movies/movie/2

put localhost:9200/movies/movie/3

put localhost:9200/movies/movie/4

put localhost:9200/movies/movie/5

put localhost:9200/movies/movie/6

資料插入完畢,可以使用全文查詢驗證一下

post    localhost:9200/_search

}}

查詢"genres"字段含有"drama"的movie

post    localhost:9200/_search

} ]

}}}

"match": 子句表示"genres"字段包含"drama"內容,"match"可有多個

查詢結果

,

"hits":

},},

},},}]

}}

可以看到一共五個結果,並且"genres"欄位中都包含了"drama"內容

如果我們需要對查詢出的5個內容進行進一步的過濾,就需要用到"filter"子句了

例如:查詢"genres"字段含有"drama"的movie,過濾出結果中"year"欄位為 1962 的movie

post    localhost:9200/_search

} ],

"filter":[}]

}}}

查詢結果:

,

"hits":

}, }]

}}

可以看到,結果只剩倆條了,並且這倆條的記錄的"year"欄位都為 1962

從官方文件中得知"term"子句的功能是某欄位精確匹配指定值,例如"term":

可是我在查詢例如:"term":時,沒有匹配資料,希望有人能告知我這是什麼原因。

當然,es也提供了範圍過濾,使用的是"range"子句,例如:

post    localhost:9200/_search

} ],

"filter":[}}

]}

}}

這條"range":}子句的意思為,過濾出結果中"year"字段大於 2000 的內容

結果為:

,

"hits": }]

}}

"match_phrase"子句查詢:

post    localhost:9200/_search

} }}

"match_phrase"官方文件的解釋為短語匹配查詢,但是個人對這個子句沒太用明白

上面的事例中主要注意"slop"字段,它表示"query"欄位以","分割的倆個短語中間最多可以間隔的單詞個數

查詢結果為:

,

"hits": }]

}}

可以看到查詢結果的"title"欄位中的"lawrence"和"arabia"中間間隔了乙個短語"of"

"match_phrase_prefix"短語字首匹配查詢

post    localhost:9200/_search
}}}

和"match_phrase"不同的一點在於,"match_phrase_prefix"只需"title"欄位中含有"mock"開頭的短語即可成功匹配

結果為:

,"hits": }]

}}

官方文件中該子句還可以包含"max_expansions"字段,經過一番測試並沒有發現其作用,希望有人能夠指教一下。

"multi_match"多欄位匹配查詢

post    localhost:9200/_search

}}

"multi_match"用於多欄位匹配查詢,使用"fields"來指定要匹配哪些字段

結果:

,

"hits":

},},}]

}}

查詢結果中,"title"、"director"任意乙個欄位中包含"ford"短語即可成功匹配

"director^3"官方文件解釋為該字段為3倍的重要,其效果很明顯,"director"字段匹配成功的都排在前面

6 3學習記錄

今天下午差不多花了3個小時左右學習了linuxc中關於陣列和指標的內容。由於內容比較難懂,我也只是學到了一些皮毛,以下列出的知識點算是今天的一些小收穫。1.指標的型別和指標所指向的型別,這兩點是有區別的,至於區別是什麼,我也沒弄懂現在,今後搞懂了會做進一步補充。2.常量指標和指標常量的區別。cons...

6 3學習筆記

定義css樣式 1.html標記定義 pp可以叫做選擇器,定義那個標記中的內容執行其中的樣式 乙個選擇器可以控制若干個樣式屬性,他們之間需要用英語的 分號 隔開最後乙個可以不加 2.class定義 class定義由.點 開始 p 3.id定義 與class用法類似 p 4.優先順序id class ...

6 3 多人協作

當你從遠端倉庫轉殖時,實際上git自動把本地的master分支和遠端的master分支對應起來了,並且,遠端倉庫的預設名稱是origin。要檢視遠端庫的資訊,用git remote git remote origin 或者,用git remote v顯示更詳細的資訊 git remote v ori...