gpt4 book ai didi

elasticsearch - Elasticsearch 搜索结果多样化

转载 作者:行者123 更新时间:2023-11-29 02:44:31 25 4
gpt4 key购买 nike

我使用流行度完成了一个复杂的查询,以改进使用 Elasticsearch 的社交媒体文档的结果。查询工作得非常好,最重要的结果总是以查询为中心并包含有趣的元素。

但是它有一个问题,对于某些查询,第一个结果都来自同一用户

如果在更高级别的文档中检索到同一用户,我想对文档进行降分。这样我希望结果更加多样化。

请注意,我不希望它们被删除,因为在某些情况下,找到同一用户的更多文档可能仍然很有趣,但我希望它们处于较低的位置。

任何人都可以建议一种使它起作用的方法吗?


按照一些评论中的建议,我更新了一个(简化版)查询:

query = {"function_score": {
"functions": [
{"gauss": {"createdAt":
{"origin": "now", "scale": "30d", "offset": "7d", "decay" :0.9 }
}},
{"gauss": {"shares.last.twitter_retweets_log":
{"origin": 4.52, "scale": 2.61, "decay" : 0.9}
}},
],
"query": {"bool":{"must":[
{"exists":{"field": "images"}},
{"multi_match":{"query": "foo boo", fields:["text", "link.title"]}}
]}},
"score_mode": "multiply"
}};

P.S: 一些文件可能很有趣,因为他们谈论多样性,但我不确定如何申请:

最佳答案

您可以将采样器与 top_hits 聚合结合使用以获得多样化的结果。

{
"query": {
"match": {
"query": "iphone"
}
},
"size":0,
"aggs": {
"sample": {
"sampler": {
"shard_size": 200,
"field" : "user.id"
},
"aggs": {
"diversifiedMatches": {
"top_hits": {
"size":10
}
}
}
}
}
}

有一些注意事项,例如:

1) 重复数据删除是针对每个分片的,而不是全局的

2)多元化字段的选择必须是单值字段

3) 不支持分页

4) 不支持除分数以外的任何排序

解决上述问题将很困难,需要昂贵/复杂的内部协调,以及客户关于何时何地可以重新引入“重复”结果的更多指导(第 2 页?第 3 页?多少?)等等

关于elasticsearch - Elasticsearch 搜索结果多样化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220699/

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