セクション9に進む
2、クエリDSL
前のセクションで使用したフォームは
GET /bank/_search { "query": { "match_all": { } }, "sort": [ { "account_number": "asc" }, { "balance": "desc" } ] }
クエリ言語スタイル、これをと呼びます
Query DSL
。
1)、基本的な構文形式
Elastisearchは、クエリを実行できるJsonスタイルのDSl(ドメイン固有の言語)を提供します。これはクエリDSLと呼ばれます。
クエリ言語は非常に包括的で、最初は少し複雑に感じます。実際にそれを学ぶ方法は、いくつかの基本的な例から始めることです。
- クエリステートメントの一般的な構造
{
QUERY_NAME:{
ARGUMENT: VALUE,
ARGUMENT: VALUE,
...
}
}
例えば:
GET /bank/_search
{
"query": {
"match_all": {}
}
}
- フィールド用の場合、その構造は次のとおりです。
{
QUERY_NAME:{
FIELD_NAME:{
ARGUMENT: VALUE,
ARGUMENT: VALUE,
...
}
}
}
例えば:
GET / bank / _search { “ query”:{ “ match_all”:{} }、“ sort”:[ { “ balance”:{ “ order”:“ desc” } } ]、“ from”:0、“ size” :5 } |
---|
-queryはクエリの方法を定義します; -match_allクエリタイプ[すべてのクエリを表します]、esはクエリ内の多くのクエリタイプを組み合わせて複雑なクエリを完了 することができます-クエリパラメータに加えて、クエリを変更するために他のパラメータを渡すこともできます結果。sort、size、 -from + size limit、ページング機能の完了など。 -sortsort、マルチフィールドソート、前のフィールドが等しい場合は後続のフィールドが内部的にソートされ、それ以外の場合は前の順序が優先されます。 |
2)、いくつかのフィールドを返します
GET /bank/_search
{
"query": {
"match_all": {
}
},
"sort": [
{
"balance": {
"order": "desc"
}
}
],
"from": 0,
"size": 5,
"_source": ["balance","firstname"]
}
_source
MySQLと同様に、指定されたフィールドにのみ戻りますselect field_1,field_2,... from table
参照: