【问题标题】:How do I boost a result based on a static value in ElasticSearch?如何根据 ElasticSearch 中的静态值提升结果?
【发布时间】:2021-05-20 00:38:54
【问题描述】:

如何根据文档类型提升结果?

我们正在使用 ElasticSearch 来支持网站上的搜索功能。我的客户问他们的产品和服务页面是否可以冒泡到结果的顶部,但不是完全人为的方式。

例如,假设现在的结果是:

Result Score
News Article 1 99
News Article 2 80
News Article 3 70
Service 1 60
News Article 4 50
Product 2 40
News Article 5 30

也许我们会给产品和服务加分 25 分,这样结果就会以半自然的方式出现,就像这样。

Result Score
News Article 1 99
Service 1 85
News Article 2 80
News Article 3 70
Product 2 65
News Article 4 50
News Article 5 30

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您可以尝试将bool/should 子句与term query 上应用的boost 组合使用

    {
      "query": {
        "bool": {
          "should": [
            {
              "match_all": {}
            },
            {
              "term": {
                "name": {
                  "value": "Product 2",
                  "boost": 25
                }
              }
            },
            {
              "term": {
                "name": {
                  "value": "Service 1",
                  "boost": 25
                }
              }
            }
          ]
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多