gpt4 book ai didi

search - Elastic.co/Elastic搜索-具有多个Boosting查询的相关性反馈

转载 作者:行者123 更新时间:2023-12-03 01:05:01 24 4
gpt4 key购买 nike

我正在尝试为Elastic Search(Elastic.co)实现相关性反馈。

我知道boosting queries,它允许指定正词和负词,其想法是打折否定词,而不是像 bool(boolean) 的must_not那样排除它们。

但是,我正在尝试实现正面和负面的分层提升

也就是说,我要获取一个合并的正负项列表,并生成一个查询,以使存在不同的正负增强层,每个层都包含自己的查询项。

类似于(伪查询):

query{
{
terms: [very relevant terms]
pos_boost: 3
}
{
terms: [relevant terms]
pos_boost: 2
}
{
terms: [irrelevant terms]
neg_boost: 0.6
}
{
terms: [very irrelevant terms]
neg_boost: 0.3
}
}

我的问题是这是否可以通过嵌套 增强查询来实现,或者我是否最好使用子句使用多个

我担心的是,我不确定bool查询的should子句中将0.2提高是否仍会给文档带来正的分数增加,因为我想打折文档,而不是提供任何分数的增加。

随着查询的增加,我担心的是我无法控制正项的加权程度。

任何帮助或其他实现的建议,将不胜感激。 (我真正想做的是为相关文档创建一个语言模型,并使用该模型进行排名,但我不知道如何通过 flex 轻松地实现这一目标。)

最佳答案

似乎可以结合使用bool查询并使用boosting query clauses调整提升值。

POST so/boost/ {"text": "apple computers"}
POST so/boost/ {"text": "apple pie recipe"}
POST so/boost/ {"text": "apple tree garden"}
POST so/boost/ {"text": "apple iphone"}
POST so/boost/ {"text": "apple company"}

GET so/boost/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"text": "apple"
}
}
],
"should": [
{
"match": {
"text": {
"query": "pie",
"boost": 2
}
}
},
{
"match": {
"text": {
"query": "tree",
"boost": 2
}
}
},
{
"match": {
"text": {
"query": "iphone",
"boost": -0.5
}
}
}
]
}
}
}

关于search - Elastic.co/Elastic搜索-具有多个Boosting查询的相关性反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967672/

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