什么取代了NEST 2.3.3中的TermsExecution.And(从NEST 1.6.2升级)

时间:2016-06-28 23:56:43

标签: elasticsearch nest elasticsearch-net

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

什么取代了我们在2.3.3中TermsExecution.And的做法?

如何使用未知数量的需要匹配的术语轻松完成此操作?例如在你能够传入数组之前。

1 个答案:

答案 0 :(得分:2)

TermsExecution.And查询上的

terms应转换为bool查询,其must(或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"
            }
          }
        }
      ]
    }
  }
}