/** * --------------------------------------------------------------- * 使用QueryBuilder * termQuery("key", obj) 完全匹配 * termsQuery("key", obj1, obj2..) 一次匹配多个值 * matchQuery("key", Obj) 单个匹配, field不支持通配符, 前缀具高级特性 * multiMatchQuery("text", "field1", "field2"..); 匹配多个字段, field有通配符忒行 * matchAllQuery(); 匹配所有文件 * wildcardQuery 支持通配符 * fuzzyQuery 模糊查询 * ----------------------------------------------------------------- * 组合查询 * must(QueryBuilders) : AND * mustNot(QueryBuilders): NOT * should: : OR * ----------------------------------------------------------------- */
Match All Query
查询所有的数据,相当于不带条件查询。下面的代码是一个典型的match_all查询的调用方式。
curl -XPOST "192.168.1.101:9200/student/student/_search" -d
'
{
"query": {
"match_all": {}
}
}
'
Bool Query
Bool(布尔)查询是一种复合型查询,它可以结合多个其他的查询条件。主要有3类逻辑查询:
- must:查询结果必须符合该查询条件(列表)。
- should:类似于in的查询条件。如果bool查询中不包含must查询,那么should默认表示必须符合查询列表中的一个或多个查询条件。
- must_not:查询结果必须不符合查询条件(列表)。
curl -XPOST "192.168.1.101:9200/student/student/_search" -d
'
{
"query": {
"bool": {
"must": [
{
"term": {
"classNo": "2"
}
},
{
"term": {
"isLeader": "true"
}
}
]
}
}
}
'