gpt4 book ai didi

elasticsearch - 在 Elasticsearch 中提升

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

我是 elasticsearch 的新手。在 elasticsearch 中,我们几乎可以在所有查询中使用术语 boost。我知道它用于修改文档的分数。但我找不到它的实际用途。我的问题是,如果我在某些查询中使用提升值,它是否会影响搜索的最终得分或索引本身中文档的提升排名。

索引提升和查询提升之间的主要区别是什么..

提前致谢...!

最佳答案

查询时间提升允许您为一个查询赋予比另一个查询更多的权重。例如,假设您正在为“Quick Brown Fox”查询 titlebody 字段,您可以将其写为:

{
"query": {
"bool": {
"should": [
{
"match": {
"title": "Quick Brown Fox"
}
},
{
"match": {
"body": "Quick Brown Fox"
}
}
]
}
}
}

但是您决定希望 title 字段比 body 字段更重要,这意味着您需要boost 查询在 title 字段上(例如)2:

{
"query": {
"bool": {
"should": [
{
"match": {
"title": {
"query": "Quick Brown Fox",
"boost": 2
}
}
},
{
"match": {
"body": "Quick Brown Fox"
}
}
]
}
}
}

(注意 match 子句的结构如何更改以适应 boost 参数)。

2boost 值并没有使 _score 完全翻倍 - 分数经过标准化过程。因此,您应该将 boost 视为使该查询子句比其他查询子句相对更重要

My doubt is if i use boost values in some queries. will it affect final score of search

是的,但无论如何您都不应该依赖 _score 的实际值。它的唯一目的是让 Elasticsearch 决定哪些文档与此查询最相关。如果查询发生变化,分数也会发生变化。

重新索引时间提升:不要使用它。它不灵活且容易出错。

关于elasticsearch - 在 Elasticsearch 中提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21570963/

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