es查询-复合查询
复合搜索(compound query)
布尔搜索(bool query)
bool 查询用bool操作来组合多个查询子句为一个查询。 可用的关键字:
must:必须满足
filter:必须满足,对集合包含/排除的简单检查,计算速度非常快,不参与、不影响评分
should:或
must_not:必须不满足,在filter上下文中执行,不参与、不影响评分
curl 'locahost:9200/_search ' -d '...' 搜索整个集群
curl 'localhost:9200/get-together/_search -d '...' 搜索整个get-together索引
curl 'localhost:9200/get-together/event/_search -d '...' 搜索整个get-together索引中的event事件
curl 'localhost:9200/_all/event/_search' -d '...' 查询所有索引中的event事件
curl 'localhost:9200/*/event/_search' -d '...' 查询所有索引中的event事件
curl 'localhost:9200/get-together,other/event,group/_search' -d '...' 在get-other和其他索引中搜索事件 和 分组类型
curl 'localhost:9200/+get-toge*,-get-together/_search' -d '...' 搜索所有名字以 get-toge开头的索引,但是不包括get-together
description中必须包含java,
price必须满足大于100小于1000,
name字段可以是lucene或者是solr中的一种即可,
时间满足。。。。
POST /book/_search
{
"query": {
"bool" : {
"filter" : {
"match" : { "description" : "java" }
},
"must": [
{
"range" : {
"price" : { "gte" : 100, "lte" : 1000 }
}
},
{"bool": {
"should": [
{"term":{"name":"lucene"}},
{"term":{"name":"solr"}}
]
}}
],
"must_not": [
{
"range": {
"timestamp": {
"gte": "18/08/2020",
"lte": "2021",
"format": "dd/MM/yyyy||yyyy"
}
}
}
]
}
}
}
# Range查询 和 过滤器
curl 'localhost:9200/get-together/_search' -d '{\
"query":{
"range":{
"created_on":{
"gt":"2012-05-01",
"lt":"2012-09-01"
}
}
}
}
'
curl 'localhost:9200/get-together/_search' -d '{\
"query":{
"filtered":{
"query":{
"match_all":{}
},
"filter":{
"range":{
"created_on":{
"gt":"2012-05-01",
"lt":"2012-09-01"
}
}
}
}
}
}
'
# prefix查询和过滤器
curl 'localhost:9200/get-together/_search' -d '{\
"query":{
"prefix":{
"title":"liber"
}
}
}
'
curl 'localhost:9200/get-together/_search' -d '{\
"query":{
"filtered":{
"query":{
"match_all":{}
},
"filter":{
"prefix":{
"title":"liber"
}
}
}
}
}
'
# wildcard查询,类似以shell通配符的工作方式
curl 'localhost:9200/get-together/_search' -d '{\
"query":{
"whildcard":{
"title":"ba*n" # 会匹配 bacon 和 barn ba?n 只会匹配barn
}
}
}
'
# exists过滤器
curl 'localhost:9200/get-together/_search' -d '{
"query":{
"filtered":{
"query"{"match_all":{}},
"filter":{
"exists":{"filed":"location.geolocation"}
}
}
}
}'
# missing 过滤器
curl 'localhost:9200/get-together/_search' -d '{
"query":{
"filtered":{
"query"{"match_all":{}},
"filter":{
"missing":{
"filed":"reviews",
"existence":true, # 发现完全缺失 reviews字段的文档
"null_value":true
}
}
}
}
}'
有朝一日同风起,扶摇直上九万里

浙公网安备 33010602011771号