Elasticsearch 组合查询
1.bool查询
# must, should, must_not
# minimum_should_match:表示一个文档至少匹配多少个短语才算是匹配成功
# disable_coord: 启用和禁用一个文档中所包含所有查询关键词的分数得分计算,默认是false
# 无Coordination效果
# 含有apple的文档分值:1.5
# 含有apple jobs的文档分值:3.0
# 含有apple jobs mobile的文档分值4.5
2.boosting查询
# positive部分:查询返回的查询结果分值不变
# negative部分:查询的结果分值会被降低
# negative_boost部分:设置negative中要降低的分值
# boosting查询的优点
# 优点:里面的两个查询都会有结果返回,其中一个分值就是你设置的分值
# 注意:如果你设有bool的must_not的话,那降低的那部分就没有结果返回
#例:(静态语句)
GET /_search
{
"query":{
"boosting":{
"positive":{
"match":{
"text":"apple"
}
},
"negative":{
"match":{
"text":"fruit pie tart red sweet"
}
},
"negative_boost":0.5
}
}
}
3.constant_score查询
# 优点:可以让一个查询得到一个恒定的分值。
#constant_score查询
GET /library/books/_search
{
"query":{
"term":{
"title":"elasticsearch"
}
}
}
GET /library/books/_search
{
"query":{
"constant_score":{
"query":{
"term":{
"title":"elasticsearch"
}
}
}
}
}
4.indices查询
# 优点:可以在多个索引上进行查询
# no_match_query:查询其他索引里的数据
#indices查询
GET /_search
{
"query":{
"indices":{
"indices":["library"],
"query":{
"term":{
"title":"elasticsearch"
}
},
"no_match_query":{
"term":{
"price":10
}
}
}
}
}