对多个子句进行弹性搜索得分

问题描述

我正在使用constant_score和boost建立带有分数的弹性搜索查询,Im汇总了多个条件的分数并返回一个值。基本上有4个条件-其中3个的分数按预期工作,但我无法从上一个查询中获得适当的分数,这里有两个条件,我想在应该选择其中一个的情况下给予优先考虑但这是对两者的总和。

{
          "bool": {
            "should": [
              {
                "nested": {
                  "path": "passports","query": {
                    "bool": {
                      "must": 
                        {
                          "constant_score": {
                            "filter": {
                              "wildcard": {
                                "passports.passportNo": "*AB*"
                              }
                            },"boost": 0.4
                          }
                        },"should": 
                          {
                          "constant_score": {
                            "filter": {
                              "match": {
                                "passports.passportNo": "AB1212121"
                              }
                            },"boost": 0.6
                          }
                        }               
                    }
                  }
                }
              }
            ]
          }
        }

如果存在完全匹配,则应返回0.6,或者如果存在部分匹配,则查询应返回0.4,这是唯一的要求。我读到有关dis_max的信息,但我无法使用它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)