如何按ElasticSearch上的热门项目对结果进行排序

时间:2018-03-20 04:56:07

标签: elasticsearch

我遇到了一些关于排序的问题。 如果我想通过经常找到的结果对ElasticSearch进行排序,我该怎么办呢?

例如,我有3个包含此类关键字的文档。

{
    title: "red shirt"
},
{
    title: "blue shirt"
},
{
    title: "green shirt"
}

我经常发现"绿色衬衫"因此,当我按照受欢迎的商品进行分类时,它会显示"绿色衬衫"在结果之上。

现在,我有一个解决问题的想法是,当我发现我将使用的结果" update_by_query"更新" popular_score"如下所示

"script": {
    "source": "ctx._source.popular_score++",
    "lang": "painless"
  },

这意味着我必须调用API来更新每个搜索请求的popular_score,但我认为它不是很好!

我应该怎么做,

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您好,您需要提升关键字

https://www.elastic.co/guide/en/elasticsearch/reference/master/mapping-boost.html

在这里,您将找到与keyowrd boost相关的文档

POST _search
{
    "query": {
        "match" : {
            "title": {
                "query": "quick brown fox",
                "boost": 2
            }
        }
    }
}