Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用.NET NEST客户端在函数分数查询中创建筛选器_C#_.net_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest_Elasticsearch.net - Fatal编程技术网 elasticsearch,nest,elasticsearch.net,C#,.net,elasticsearch,Nest,Elasticsearch.net" /> elasticsearch,nest,elasticsearch.net,C#,.net,elasticsearch,Nest,Elasticsearch.net" />

C# 如何使用.NET NEST客户端在函数分数查询中创建筛选器

C# 如何使用.NET NEST客户端在函数分数查询中创建筛选器,c#,.net,elasticsearch,nest,elasticsearch.net,C#,.net,elasticsearch,Nest,Elasticsearch.net,功能评分查询显示代码描述如下 GET /_search { "query": { "function_score": { "query": { "match_all": {} }, "boost": "5", "functions": [ { "filter": { "match": { "test": "bar" } },

功能评分查询显示代码描述如下

GET /_search
{
    "query": {
        "function_score": {
          "query": { "match_all": {} },
          "boost": "5", 
          "functions": [
              {
                  "filter": { "match": { "test": "bar" } },
                  "random_score": {}, 
                  "weight": 23
              },
              {
                  "filter": { "match": { "test": "cat" } },
                  "weight": 42
              }
          ],
          "max_boost": 42,
          "score_mode": "max",
          "boost_mode": "multiply",
          "min_score" : 42
        }
    }
}
我将此查询写入

var searchRequest=新的searchRequest
{
Query=新函数scoreQuery()
{
Query=new MatchAllQuery{},
增压=5,
函数=新列表
{
过滤器。。。?
},
MaxBoost=42,
ScoreMode=函数ScoreMode.Max,
BoostMode=FunctionBoostMode.Max,
MinScore=42
}
};
如何在函数中构建过滤器


IScoreFunction
界面只允许
指数decayFunction
GaussDateDecayFunction
LinearGeoDecayFunction
FieldValueFactorFunction
RandomScoreFunction
权重函数
ScriptScoreFunction

函数是
IScoreFunction
的集合。在示例JSON中,第一个函数是随机分数函数,第二个是权重函数。链接查询DSL示例有不同函数的示例,下面是一个与上面的JSON匹配的示例

var client=new ElasticClient();
var searchRequest=新的searchRequest
{
Query=新函数scoreQuery()
{
Query=new MatchAllQuery{},
增压=5,
函数=新列表
{
新随机函数
{
过滤器=新匹配查询
{
Field=“test”,
Query=“bar”
},
重量=23
},
新加权函数
{
过滤器=新匹配查询
{
Field=“test”,
Query=“cat”
},
重量=42
}
},
MaxBoost=42,
ScoreMode=函数ScoreMode.Max,
BoostMode=函数BoostMode.Multiply,
MinScore=42
}
};
var searchResponse=client.Search(searchRequest);
var searchRequest = new SearchRequest<ProductType>
{
   Query = new FunctionScoreQuery()
   {
      Query = new MatchAllQuery {},
      Boost = 5,
      Functions = new List<IScoreFunction>
      {
         Filters...?
      },
      MaxBoost = 42,
      ScoreMode = FunctionScoreMode.Max,
      BoostMode = FunctionBoostMode.Max,
      MinScore = 42
   }
};