如何阻止Nest在QueryRaw附加额外查询

时间:2015-10-29 22:01:43

标签: elasticsearch nest elasticsearch-net

我从.11升级到Nest 1.7。

我的所有查询都采用原始json格式,在升级时,在使用我的查询执行原始查询搜索时,nest会附加外部查询,从而导致失败。

文档说它不会修改字符串,但这并不完全正确 - http://nest.azurewebsites.net/nest/writing-queries.html#raw-strings

初步查询:

  {
    "query": {
      "match_all": {}
    },
    "facets": {
      "field_one": {
        "terms": {
          "field": "my_favorite_field"
        }
      }
    },
    "from": 0,
    "size": 25
  }

使用Nest调用:

client.Search<MyType>(q => q.QueryRaw(query));

将查询转换为:

  {
    "query": {
      "query": {
        "match_all": {}
      },
      "facets": {
        "field_one": {
          "terms": {
            "field": "my_favorite_field"
          }
        }
      },
      "from": 0,
      "size": 25
    }
  }

第二个查询显然失败了。有没有简单的方法来“禁用”这种行为。

我主要是试图避免将一百个查询重写/转换为新的DSL。

1 个答案:

答案 0 :(得分:1)

一对评论:

  1. 支持在NEST中使用原始查询,但不应该是默认值。您应该使用POCO为您生成查询。
  2. Facets已被弃用了一段时间,现在支持Aggregations
  3. 所以我没有原始查询问题的解决方案,但也许这是转换为POCO并转换为聚合的时候。