首页 > 解决方案 > 用于提升特定数据的 Elasticsearch 查询

问题描述

我有一个示例购物应用程序,我想使用 elasticsearch 创建搜索页面,当用户搜索特定产品(例如“Iphone”)然后显示所有 iphone 产品。但是,我想推广产品以显示在搜索结果之上。这更像是促销产品,当我为特定产品促销时,它会显示在搜索结果的顶部。

elasticsearch如何做到这一点?

标签: elasticsearchelasticsearch-query

解决方案


在 Elasticsearch 中有很多关于如何实现这一点的文档,因为这是搜索者的典型需求。我会建议你尝试制作自己的提升相关性功能。

喜欢:

{
  "query": {
    "function_score": {
      "filter": { 
        "term": { "content": "mobile" }
      },
      "functions": [ 
        {
          "filter": { "term": { "brand": "Apple" }}, 
          "weight": 4
        }
      ],
      "score_mode": "sum", 
    }
  }
}

这里的文档是最新的:FunctionScoring

另外作为提示,可能绝对值得看一下Relevance 章节并了解 ES 如何尝试按相关性对结果进行排序。


推荐阅读