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

用弹性搜索修改查询得分

阎承嗣
2023-03-14

我试图修改elasticsearch中的搜索得分,方法是将_score乘以存储在每个文档中的单个值的平方根。下面是我正在使用的JSON查询。我哪里出了问题?

{
"index": "resources",
"type": "page",
"from": "0",
"size": "20",
"body": {
    "query": {
        "match": {
            "content": "baseball"
        },
        "function_score": {
            "functions": [{
                "script_score": {
                    "params": [],
                    "script": "_score * sqrt(page['obls'].value)"
                }
            }]
        }
    }
}

}

提前感谢您的帮助!

共有1个答案

冯星剑
2023-03-14

如果您使用的是1.4.x,我将使用字段值因子函数,如下所示:

{
    "query": {
        "function_score": {
            "query": {
                "match": {
                    "content": "baseball"
                }
            },
            "functions": [
                {
                    "field_value_factor": {
                        "field": "obls",
                        "factor": 1,
                        "modifier": "sqrt"
                    }
                }
            ]
        }
    },
    "from": "0",
    "size": "20"
}
 类似资料:
  • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我在术语查询中要求弹性搜索中的嵌套字段,其中嵌套字段值应与术语查询中提供的值的数量完全匹配。例如,考虑下面的查询,在这里我们对名为类型的嵌套字段进行查询。 GET资产/_search 索引映射 样本文件: 上述查询应返回字段类型正好有2个值的文档,即“VOD”

  • 我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?

  • 关于如何打开缓存有什么建议吗?

  • 如何获得空数组和美国的结果和