zoukankan      html  css  js  c++  java
  • elasticsearch must 和 should 并列的情况

      在elasticsearch中如果要对几个字段进行查询,然后其中有一个字段可以有多个取值的时候,正常想到的要用should,其实就是或的关系。但是正确的做法,应该是把should并列的条件整合到一个bool查询,然后嵌套到must之中去。而不是和must并列。项目中,也用了错误的写法,然后发现must和should同时存在的时候,should将会变得不起作用。

         例如:

    {
        "bool":{
            "must":[
                {
                    "match_phrase":{
                        "camera_dwlb":{
                            "query":"一类视频监控点",
                            "slop":0,
                            "boost":1
                        }
                    }
                }
            ],
            "should":[
                {
                    "match_phrase":{
                        "city_name":{
                            "query":"福州市",
                            "slop":0,
                            "boost":1
                        }
                    }
                },
                {
                    "match_phrase":{
                        "city_name":{
                            "query":"厦门市",
                            "slop":0,
                            "boost":1
                        }
                    }
                }
            ],
            "disable_coord":false,
            "adjust_pure_negative":true,
            "boost":1
        }
    }

    以上查询的意思本来是想要福州、厦门摄像机点位类别属性为一类视频监控点,查出来了一个数量,然后我随意的改变should数组里面的查询条件,发现查询的结果总是不变的。都是以must数组里面的条件为准

    写此谨记!!!

  • 相关阅读:
    使用sshpass方式实现ssh自动登陆
    MySQL高可用负载均衡
    linux 查看文件夹下的文件个数(当前目录的文件数)
    centos6.5 rsync+inotify实现服务器之间文件实时同步
    Linux shell之数组
    Shell脚本 $0, $#, $*, $@, $?, $$等变量说明
    Linux输出重定向>和>>区别
    EXCEL操作实用学习笔记
    mysql的学习笔记-视图
    mysql学习笔记-索引
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/11446422.html
Copyright © 2011-2022 走看看