当前位置: 首页 > 知识库问答 >
问题:

如何在ElasticSearch DSL python中创建衰减函数

丁鸿云
2023-03-14

我正在用elasticsearch dsl/2.0.0查询Elastic搜索

 "linear": {
        "date": {
              "origin": "now", 
              "scale": "10d",
              "offset": "5d", 
              "decay" : 0.5 
        }
    }

https://www.elastic.co/guide/en/elasticsearch/reference/2.4/query-dsl-function-score-query.html#function-腐朽

如何用elasticsearch dsl构造线性函数查询

共有1个答案

邢勇
2023-03-14

请尝试以下查询

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search, query

client = Elasticsearch()

s = Search(using=client)

function_score_query = query.Q(
        'function_score',
        query=query.Q('match', your_field='your_query'),
        functions=[
            query.SF('linear',date={"origin":"now","scale":"10d",
                                    "offset":"5d", "decay":0.5})
        ]
    )

如果你打印function_score_query.to_dict()

{
    'function_score': {
        'query': {
            'match': {
                'your_field': 'your_query'
            }
        },
        'functions': [{
            'linear': {
                'date': {
                    'origin': 'now',
                    'decay': 0.5,
                    'scale': '10d',
                    'offset': '5d'
                }
            }
        }]
    }
}

您可以在github上查看测试用例,看看如何在DSL中使用函数得分查询

 类似资料:
  • 上一节中我们观察了过拟合现象,即模型的训练误差远小于它在测试集上的误差。虽然增大训练数据集可能会减轻过拟合,但是获取额外的训练数据往往代价高昂。本节介绍应对过拟合问题的常用方法:权重衰减(weight decay)。 方法 权重衰减等价于$L_2$范数正则化(regularization)。正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。我们先描述$L_2$范数正

  • 问题内容: 查看此代码: 正如您在控制台中看到的那样,“动画”功能是异步的,它“分叉”了事件处理程序块代码的流程。事实上 : 遵循块代码的流程! 如果我希望以此行为创建自己的代码,该如何使用javascript/jquery进行创建?我认为这是不使用的策略 问题答案: 您不能创建真正的自定义异步函数。您最终将不得不利用本机提供的技术,例如: 一些HTML5 API,例如文件API,Web数据库AP

  • 问题内容: 我正在渲染帖子列表。对于每个帖子,我想呈现一个带有帖子ID的锚标记,作为href字符串的一部分。 我该如何做,以便每个帖子都具有href的,等等? 问题答案: 使用字符串串联: JSX语法允许使用字符串或表达式作为值。您不能将两者混用。顾名思义,您可以在表达式内部使用任何JavaScript表达式来计算值。

  • 问题内容: 我正在尝试在Swift中构建Promises的基本实现,并且我需要能够向数组中添加函数,但是我不确定如何使它起作用。 我发现,当我尝试执行以下操作时,Swift Playground不会建议您: 这很有道理-Swift无法推断出-的类型,但这就是我的问题所在。我不确定如何预定义函数数组。 是否可以在Swift中创建函数数组?我想是这样,职能是一等公民。 问题答案: 绝对有可能,只需将数

  • 问题内容: 我不确定node.js如何在异步中实现哪些功能,在异步中没有实现的功能以及如何创建自定义异步功能。 说我想创建一个自定义的异步函数。如果只是因为我对异步函数回调或cb调用了我的最后一个参数而只知道其异步函数,我会感到惊讶: 我尝试了类似的方法,但它无法异步运行。您如何告诉node.js f实际上是异步的? 问题答案: 注意 :此答案写于2014年,在出现之前,在Promises流行之前

  • 我想创建帮助函数以避免在Laravel中的视图之间重复代码。例如: 看法刀身php 它们基本上是文本格式函数。我应该如何定义全局可用的助手函数,如fooFormatText()?