随机分数作为elasticsearch nest.net中的函数

时间:2015-12-26 06:26:40

标签: c# elasticsearch nest

我正在尝试使用Nest.Net实现以下结构,并且没有看到任何方法来实现它。我可以添加另一个过滤器作为一个函数,但我只是想随机得分,所以我可以实现加权随机结果。我目前的工作是构建我的查询,将其序列化为字符串,然后用我的random_score语法填充,然后创建一个SearchDescriptor并使用QueryRaw方法。

注意函数括号内的random_score。此片段摘自ElasticSearch关于随机评分的文档。 https://www.elastic.co/guide/en/elasticsearch/guide/current/random-scoring.html

GET /_search
{
  "query": {
    "function_score": {
      "filter": {
        "term": { "city": "Barcelona" }
      },
      "functions": [
        {
          "filter": { "term": { "features": "wifi" }},
          "weight": 1
        },
        {
          "filter": { "term": { "features": "garden" }},
          "weight": 1
        },
        {
          "filter": { "term": { "features": "pool" }},
          "weight": 2
        },
        {
          "random_score": { 
            "seed":  "the users session id" 
          }
        }
      ],
      "score_mode": "sum",
    }
  }
}

0 个答案:

没有答案