gpt4 book ai didi

elasticsearch - 在 elasticsearch 中更改 _score 以使其等于 doc 的 score 字段

转载 作者:行者123 更新时间:2023-12-02 22:24:39 24 4
gpt4 key购买 nike

我在数据中有 score (integer) 字段,我从 api 获取数据,并将其直接发布到 localhost:9200//listings/
我希望项目 _score 等于数据中的 score 字段。

目前的解决方案是添加 ?sort=score:desc到网址

最佳答案

一种解决方案是使用 function_score 查询,替换默认的 _score使用 field_value_factor 评分功能。它是这样的:

curl -XPOST localhost:9200/listings/_search -d '{
"query": {
"function_score": {
"functions": [
{
"field_value_factor": {
"field": "score", <---- we use the score field instead
"factor": 1, <---- take the exact same score
"missing": 1 <---- use 1 as score if the score field is missing
}
}
],
"query": {
"match_all": {}
},
"boost_mode": "replace" <---- we're replacing the default _score
}
}
}'

所以我们基本上是使用 score 来计算分数。字段乘以 1,如果任何文档没有 score字段我们只是假设得分为 1(您可以将其更改为对您的情况更有意义的任何内容)。

更新

根据您的评论,您需要 _score乘以文档的 score field 。您可以通过删除 boost_mode 来实现它。参数,默认 boost_modemultiply _score来自 field_value_factor的任何值功能。

如果您需要完全替换默认评分机制以基于您的 score相反,有一个更复杂的方法使用 similarity module ,您可以在其中单独为您的 score 定义另一个相似性算法 field 。有一个很棒的 blog post解释相似性模块的细节。

关于elasticsearch - 在 elasticsearch 中更改 _score 以使其等于 doc 的 score 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32192415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com