使用“衰减”功能仅对高于原点的匹配

时间:2019-05-06 03:43:47

标签: elasticsearch

开机自检电影/ _搜索?漂亮

<@

我需要降低“ running_time_secs”字段大于7200的匹配文档的分数。 我使用衰落函数编写了上面的查询。但是显然,衰减_功能被应用到原点的两侧(在我的示例中,均指7200以下和7200以上)。 有没有办法使它仅在一个方向上降低分数(仅在7200以上)?

此致

1 个答案:

答案 0 :(得分:0)

向嵌套函数添加过滤器:

"functions": [
        {
           "filter": {
              "range" : {
                "fields.running_time_secs" : {
                   "gte" : 7200,
              }
            }
          },
          "gauss": {
            "fields.running_time_secs": {
              "origin": "7200",
              "scale": "1",
              "offset": "0",
              "decay": 0.5
            }
          }
        }
      ]

现在,高斯仅适用于运行时间大于7200的文档,而其他文档将不受影响。