Elasticsearch

Elasticsearch 组合查询

2018-04-25  本文已影响2人  菜花_Q

1、bool查询

    must,should,must_not

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

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

        加入你想查询 apple jobs mobile


        无Coordination效果

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

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

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


        有Coordination效果

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

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

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


2、boosting查询

    将两个查询封装在一起,然后能降低其中一个查询结果返回的分值

    positive部分:查询返回的查询结果分值不变

    negative部分:查询的结果分值会降低

    negative_boost部分:设置negative中要降低的分值

    boosting查询的优点:

        优点:里面的两个查询都会有结果返回,其中一个分值就是你设置的分值

        注意:如果没有bool的must_not的话,那降低的那部分就没有结果返回

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

                }

        }

        }

    }

}

上一篇下一篇

猜你喜欢

热点阅读