0

我正在从 0.11 升级到 Nest 1.7。

我的所有查询都是原始 json 格式,并且在升级时,它会在使用我的查询执行原始查询搜索时出现,嵌套附加外部查询,导致失败。

文档说它不会修改字符串,但这并不完全正确 - 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。

4

1 回答 1

1

一些评论:

  1. 支持在 NEST 中使用原始查询,但不应该是默认设置。您应该使用 POCO 为您生成查询。
  2. 分面已经被弃用了一段时间,转而支持聚合

因此,对于您的原始查询问题,我没有解决方案,但也许现在是转换为 POCO 并转换为聚合的时候了。

于 2015-10-29T22:26:16.617 回答