ElasticSearch Nest .Raw QueryDescriptor呈现空的json,而不是我的自定义查询

时间:2015-03-16 14:07:17

标签: c# elasticsearch nest

我正在尝试使用QueryDescriptor的.Raw方法在我的查询中添加自定义查询部分:

var dmaxPrice = maxPrice.HasValue ? (double?)maxPrice.Value : 100000d;
var dminPrice = minPrice.HasValue ? (double?)minPrice.Value : 0d;

mustTerms.Add(mt => mt.Raw(string.Format(CultureInfo.InvariantCulture,
    "{{ \"range\": {{ \"price\": {{ \"gte\": {0}, \"lte\": {1} }} }} }}", dminPrice, dmaxPrice)));

此代码生成查询:

{
  "query": {
    "function_score": {
      "functions": [
        {
          "linear": {
            "createDate": {
              "origin": "2015-03-16T14:02:37.4393456Z",
              "scale": "1d",
              "decay": 0.5
            }
          }
        }
      ],
      "query": {
        "bool": {
          "must": [
            {}
          ]
        }
      }
    }
  }
}

正如你在这里看到的,Nest放置一个空的json而不是我的查询。为什么是这样?我怎样才能让Nest使用我的查询而不是这个空的json?

注意:我使用的是.Raw,因为当我使用.Range时,Nest不会正确呈现查询的边界。我问了另一个问题:Nest renders range boundaries as string instead of double

0 个答案:

没有答案