在Elasticsearch中提升

 手机用户2502922713 发布于 2023-01-29 12:23

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

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

提前致谢..!

1 个回答
  • 查询时间提升允许您为一个查询赋予更多权重而不是另一个查询.例如,假设您正在查询"Quick Brown Fox"的字段titlebody字段,您可以将其写为:

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

    但是您决定要让title字段比body字段更重要,这意味着您需要通过(例如)2 boosttitle字段进行查询:

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

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

    boost2不加倍_score准确-分数经过标准化处理.所以,你应该想到的boost使这个查询子句相对比其他查询子句更重要.

    我怀疑是否在某些查询中使用了boost值.它会影响搜索的最终得分吗?

    是的,但你不应该依赖于实际的价值_score.其唯一目的是允许Elasticsearch确定哪些文档与此查询最相关.如果查询更改,则分数会更改.

    重新启动索引时间:不要使用它.它不灵活,容易出错.

    2023-01-29 12:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有