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