Query DSL:JSON based language for building complex queries.
用户实现诸多类型的查询操作,比如,simple term query, phrase, range boolean, fuzzy等;
ES的查询操作执行分为两个阶段:
分散阶段:把查询的操作分散到shard所在的节点上去
合并阶段:把返回的结果合并,并返回
查询方式:
向ES发起查询请求的方式有两种:
1、通过Restful request API查询,也称为query string;
2、通过发送REST request body进行;
~]# curl -XGET ‘localhost:9200/students/_search?pretty’
# curl -H ‘content-type: application/json’ -XGET ‘node1:9200/students/_search?pretty’ -d’
> {
> “query”: { “match_all”: {} }
> }’
{
“took” : 360,
“timed_out” : false,
“_shards” : {
“total” : 5,
“successful” : 5,
“skipped” : 0,
“failed” : 0
},
“hits” : {
“total” : 2,
“max_score” : 1.0,
“hits” : [
{
“_index” : “students”,
“_type” : “class1”,
“_id” : “DB8jdmMB3-WOr5XzU2E0”,
“_score” : 1.0,
“_source” : {
“first name” : “Zhong”,
“last name” : “Mingjia”,
“id” : “1”,
“gender” : “Female”,
“courses” : “Xiang Long Shi Ba Zhang”
}
},
{
“_index” : “students”,
“_type” : “class1”,
“_id” : “1”,
“_score” : 1.0,
“_source” : {
“first_name” : “Zhong”,
“last_name” : “MingJia”,
“gender” : “Female”,
“age” : 22,
“courses” : “Xiang Long Shi Ba Zhang”
}
}
]
}
}