gpt4 book ai didi

elasticsearch函数得分,提升权重 "number of matched terms in query"(协调)

转载 作者:行者123 更新时间:2023-11-29 02:47:45 26 4
gpt4 key购买 nike

我想使用 elasticsearch 函数 score 进行自定义评分,这些是我优先考虑的排名:

  1. 查询中常见术语的数量(例如,无论 tf/idf 得分多少,在查询中具有 4 个术语中的 3 个的文档的排名应高于在查询中具有 4 个术语中的 2 个的文档每个学期)。在弹性文档中它被称为 coordination factor .

  2. 术语相关性的总和。 (tf/idf)

  3. 文档流行度(每个文档的投票数,如 boosting by popularity 中所述)

这是当前使用的 elasticsearch 的请求体:

body = {
"query": {
"function_score": {
"query": {
{'match': {'text': query}}
},
"functions": [
{
"field_value_factor": {
"field": "ducoumnet_popularity",
}
}
],
}
}
}

问题是first priority不满足这个请求。例如,文档 A 的查询常用词少于文档 B,但由于其常用词的 tf/idf 得分更高,因此文档 A 的排名高于文档 B。

为了防止这种情况,我认为最好的方法是通过协调因子来提高文档的分数。有什么办法吗?类似于此请求的内容:

body = {
"query": {
"function_score": {
"query": {
{'match': {'text': query}}
},
"functions": [
{
"field_value_factor": {
"field": "ducoumnet_popularity",
},
"field_value_factor": {
"field": "_coordination"
"weight": 10
}
}
],
}
}
}

最佳答案

我没有找到这个问题的确切答案,但它可能会帮助别人知道您可以使用 minimum_should_match 限制结果文档的最小精度。

{
"query": {
"match": {
"content": {
"query": "quick brown dog",
"minimum_should_match": 75%
}
}
}
}

它接受许多不同的配置。更多解释: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html

关于elasticsearch函数得分,提升权重 "number of matched terms in query"(协调),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197159/

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