elasticsearch nest似乎不支持功能评分中的提升因子

时间:2014-07-01 14:29:38

标签: elasticsearch nest

在以下查询中,我希望能够通过数字来提升过滤器。在下面的查询中,它表示为“boost_factor”:100。这在弹性搜索中工作正常,但在Nest中似乎没有相应的。任何想法如何构建这个?

{
  "query": {
    "function_score": {
      "functions": [
        {
          "script_score": {
            "script": "_score * doc['somevalue'].value"
          }
        }, 
        {
          "filter": {
            "query":{
              "bool": {
                "should": [
                  {
                    "match": {
                      "title": {
                        "type": "phrase_prefix",
                        "query": "some query"
                      }
                    }  
                  }
                ]
              }
            }
          }, 
          "boost_factor": 100
        }
      ], 
      "query": {
      ...
      }

1 个答案:

答案 0 :(得分:1)

我确实找到了答案 - 如果有人想知道,可以在这里发帖。这是由于多功能lambdas的不同使用。

s.Query(q => q
.FunctionScore(cfs => cfs
    .Functions(
        fn => fn.ScriptScore(sc => sc.Script("_score * doc['somevalue'].value")),    
        fn => fn
            .BoostFactor(100)
            .Filter(SetFunctionFilters(searchDescriptor)
        )
    )       
    .Query(qy => qy
    ...)