架构师成长记_第八周_15_dsl搜索- 布尔查询

Posted 流浪少年的梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了架构师成长记_第八周_15_dsl搜索- 布尔查询相关的知识,希望对你有一定的参考价值。

dsl搜索- 布尔查询

1. must (bool下面的条件必须都要满足, 如下的multi_match, term 等)

在这里插入图片描述

{
    "query": {
        "bool": {
            "must": [
                {
                    "multi_match":{
                        "query":"慕课网",
                        "fields":[
                            "desc",
                            "nickname"
                        ]
                    }
                },
                {
                    "term":{
                        "sex":1
                    }
                },
                {
                    "term":{
                        "birthday":"1996-01-14"
                    }
                }
            ]
        }
    }
}

2. should (bool下面的条件满足之一即可, 如下的multi_match, term 等)

在这里插入图片描述

{
    "query": {
        "bool": {
            "should": [
                {
                    "multi_match":{
                        "query":"慕课网",
                        "fields":[
                            "desc",
                            "nickname"
                        ]
                    }
                },
                {
                    "term":{
                        "sex":1
                    }
                },
                {
                    "term":{
                        "birthday":"1996-01-14"
                    }
                }
            ]
        }
    }
}

3. must_not (bool下面的满足条件的进行排除, 如multi_match, term 等)

在这里插入图片描述

{
    "query": {
        "bool": {
            "must_not": [
                {
                    "multi_match":{
                        "query":"慕课网",
                        "fields":[
                            "desc",
                            "nickname"
                        ]
                    }
                },
                {
                    "term":{
                        "sex":0
                    }
                }            
            ]
        }
    }
}

4. 组合使用

在这里插入图片描述
在这里插入图片描述

{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "nickname": "慕"
                    }
                },
                {
                    "match": {
                        "desc": "大学"
                    }
                }
            ],
            "should": [
                {
                    "match": {
                        "sex": 1
                    }
                }
            ]
        }
    },
    "_source": [
        "id",
        "desc",
        "nickname",
        "sex"
    ]
}

5. boost 进行加权

在这里插入图片描述

{
    "query": {
        "bool": {
            "should": [
                {
                    "match": {
                        "desc": {
                            "query": "慕课网",
                            "boost": 2
                        
                        }
                    }
                },
                {
                    "match": {
                        "desc": {
                            "query": "律师",
                            "boost": 20
                        
                        }
                    }
                }
            ]
        }
    },
    "_source": [
        "id",
        "desc",
        "nickname",
        "sex"
    ]
}

以上是关于架构师成长记_第八周_15_dsl搜索- 布尔查询的主要内容,如果未能解决你的问题,请参考以下文章

架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询

架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询

架构师成长记_第八周_12_dsl搜索-数据准备+入门语法

架构师成长记_第八周_14_dsl搜索 - term, terms, match, match_phrase 等方式检索详解

架构师成长记_第八周_16_dsl搜索-过滤器 post_filter, 排序 sort, 高亮 highlight

架构师成长记_第八周_18_ES- 滚动搜索