elasticsearch 語法
阿新 • • 發佈:2021-07-01
GET /megacorp/employee/_search
megacorp
:索引庫employee:型別
curl 'http://localhost:9200/?pretty'
pretty:美化結果輸出
GET /_count { "query": { "match_all": {} } }
_count:計算文件數量 query:查詢
match_all:匹配所有
GET /megacorp/employee/_search { "query" : { "bool": { "must": {"match" : { "last_name" : "smith" } }, "filter": { "range" : { "age" : { "gt" : 30 } } } } } }
megacorp:索引庫
employee:型別
query:查詢
bool:過濾器
must:所有的語句都必須(must)匹配,與AND
等價。
must_not:所有的語句都不能(must not)匹配,與NOT
等價
should:至少有一個語句要匹配,與OR
等價
match:匹配filed包含文字match_phrase
:
filter:過濾器
range:範圍過濾器
短語搜尋
找出一個屬性中的獨立單詞是沒有問題的,但有時候想要精確匹配一系列單詞或者_短語_ 。 比如, 我們想執行這樣一個查詢,僅匹配同時包含 “rock”和“climbing” ,並且二者以短語 “rock climbing” 的形式緊挨著的僱員記錄。
為此對match
查詢稍作調整,使用一個叫做match_phrase
的查詢:
GET /megacorp/employee/_search {"query" : { "match_phrase" : { "about" : "rock climbing" } } }