NEST 2.3.3 中 TermsExecution.And 的替代品(从 NEST 1.6.2 升级)

What replaces TermsExecution.And in NEST 2.3.3 (upgrading from NEST 1.6.2)

我们正在升级 ElasticSearch 和 NEST,从 1.6.2 -> 2.3.3。

我们在 2.3.3 中 TermsExecution.And 的做法是什么?

对于未知数量的需要匹配的术语,如何轻松完成此操作?例如在你能够传递一个数组之前。

terms 查询上的

TermsExecution.And 应转换为带有 must(或 filter 的连词的 bool 查询,具体取决于 query/filter 上下文)查询,每个查询都是对单个值的 term 查询。

例如,

client.Search<dynamic>(s => s
    .Query(q => +q
        .Term("field", "value1")
        && +q
        .Term("field", "value2")
    )
);

产量

{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "field": {
              "value": "value1"
            }
          }
        },
        {
          "term": {
            "field": {
              "value": "value2"
            }
          }
        }
      ]
    }
  }
}