我是elasticsearch的新手.在elasticsearch中,我们几乎可以在所有查询中使用术语boost.我知道它用于修改文档的分数.但我无法找到它的实际用途.我怀疑的是,如果我在某些查询中使用提升值,它是否会影响搜索的最终得分或索引本身中文档的提升等级.
在索引的提升和查询的提升之间的主要区别是什么?
提前致谢..!
DrT*_*ech 12
查询时间提升允许您为一个查询赋予更多权重而不是另一个查询.例如,假设您正在查询"Quick Brown Fox"的字段title和body字段,您可以将其写为:
{
"query": {
"bool": {
"should": [
{
"match": {
"title": "Quick Brown Fox"
}
},
{
"match": {
"body": "Quick Brown Fox"
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是您决定要让title字段比body字段更重要,这意味着您需要通过(例如)2 boost对title字段进行查询:
{
"query": {
"bool": {
"should": [
{
"match": {
"title": {
"query": "Quick Brown Fox",
"boost": 2
}
}
},
{
"match": {
"body": "Quick Brown Fox"
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
(注意如何match更改子句的结构以适应boost参数).
该boost值2不加倍_score准确-分数经过标准化处理.所以,你应该想到的boost是使这个查询子句相对比其他查询子句更重要.
我怀疑是否在某些查询中使用了boost值.它会影响搜索的最终得分吗?
是的,但你不应该依赖于实际的价值_score.其唯一目的是允许Elasticsearch确定哪些文档与此查询最相关.如果查询更改,则分数会更改.
重新启动索引时间:不要使用它.它不灵活,容易出错.
| 归档时间: |
|
| 查看次数: |
5497 次 |
| 最近记录: |