ES 學習3 請求體查詢

2021-09-07 11:49:55 字數 1869 閱讀 1930

1.空查詢

get /index_2014*/type1,type2/_search

{}

get /_search

2.查詢表示式

dsl只需將查詢語句傳遞給query引數

get /_search

查詢全部 match_all 跟空查詢等價

get /_search

}}

針對某個字段,結構

}}

get /_search

}}

3.查詢與過濾

查詢:乙個評分的匹配,計算相似度

過濾:乙個不評分的匹配,只有是或否。過濾的效能更好。

4.重要字段

match_all:匹配所有

}

match:全文匹配或精確匹配

}}}

}}

multi_match:在多個欄位上執行相同的match查詢

}

range:找出那些落在指定區間內的數字或者時間

}}

term:用於精確值

匹配,這些精確值可能是數字、時間、布林或者那些not_analyzed的字串

}}}

}

terms:和term查詢一樣,但它允許你指定多值進行匹配。如果這個字段包含了指定值中的任何乙個值,那麼這個文件滿足條件

}

exists:查詢指定欄位中有值的文件

}

missing:查詢指定欄位中無值的文件

5.組合多查詢

bool:將多查詢組合在一起。它支援引數:

must:文件 必須 匹配這些條件才能被包含進來。

must_not:文件 必須不 匹配這些條件才能被包含進來。

should:如果滿足這些語句中的任意語句,將增加_score,否則,無任何影響。它們主要用於修正每個文件的相關性得分。

filter:必須 匹配,但它以不評分、過濾模式來進行。這些語句對評分沒有貢獻,只是根據過濾標準來排除或包含文件。

},

"must_not

": },

"should

": [}],

"filter

": } }}

}

},

"must_not

": },

"should

": [}],

"filter

": }},

}}],

"must_not

": [}]

}}

}}

constant_score查詢:

它將乙個不變的常量評分應用於所有匹配的文件。它被經常用於你只需要執行乙個 filter 而沒有其它查詢(例如,評分查詢)的情況下。可以使用它來取代只有 filter 語句的bool查詢。

}}

}

6. 驗證查詢

_validate, explain:判斷查詢是否合法以及原因。

get /gb/tweet/_validate/query?explain 

}}

請求體查詢 驗證查詢

查詢可以變得非常的複雜,尤其 和不同的分析器與不同的字段對映結合時,理解起來就有點困難了。不過validate queryapi 可以用來驗證查詢是否合法。gb tweet validate query 以上validate請求的應答告訴我們這個查詢是不合法的 valid false shards ...

請求體查詢 查詢與過濾

elasticsearch 使用的查詢語言 dsl 擁有一套查詢元件,這些元件可以以無限組合的方式進行搭配。這套元件可以在以下兩種情況下使用 過濾情況 filtering context 和查詢情況 query context 當使用於 過濾情況 時,查詢被設定成乙個 不評分 或者 過濾 查詢。即,...

請求體查詢 最重要的查詢

雖然 elasticsearch 自帶了很多的查詢,但經常用到的也就那麼幾個。我們將在 深入搜尋 章節詳細討論那些查詢的細節,接下來我們對最重要的幾個查詢進行簡單介紹。match all查詢 match all查詢簡單的 匹配所有文件。在沒有指定查詢方式時,它是預設的查詢 match all 它經常...