1.bool查询

    must,should,must_not这几个参看博主另一篇博文有讲解:


    minimum_should_match:表示一个文档至少匹配多少个短语才算是匹配成功

    disable_coord:启用和禁用一个文档中所包含所有关键词分数得分计算,默认是false

如果disable_coord为false,表示无Coordination效果

    含有apple的文档 ->分值:1.5

    含有apple jobs 的文档 ->分值:3.0

    含有apple jobs mobile的文档 -> 分值:4.5

如果disable_coord为true,表示有Coordination效果

    含有apple的文档 ->分值:1.5 * 1/3 = 0.5 

    含有apple jobs 的文档 ->分值:3.0 * 2/3 = 2.0

    含有apple jobs mobile的文档 -> 分值:4.5 * 3/3 = 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查询

优点:可以让一个查询得到一个恒定的分值

示例:

GET /lilbrary/books/_search
{
"query": {
"constant_score": {
"query": {
"term": {
"title": {
"value": "elasticsearch"
}
}
}
}
}
}

得到的结果是恒定的分值:

elasticsearch组合查询_组合查询

‘’

4.indices查询

优点:可以在多个索引上进行查询。

只有一个参数:no_match_query,查询其他索引里的数据

示例:

GET _search
{
"query": {
"indices": {
"indices": ["lilbrary"],
"query": {
"term": {
"title":"elasticsearch"
}
},
"no_match_query":{
"term": {
"price": "10"
}
}
}
}
}