elasticsearch 嵌套查询以在bool中写入must和should,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 嵌套查询以在bool中写入must和should,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 嵌套查询以在bool中写入must和should

elasticsearch 嵌套查询以在bool中写入must和should,elasticsearch,nest,elasticsearch,Nest,我想写一个查询,它将产生如下结果。Bool查询只接受boolquerydescriptor。我想用两个BoolQueryDescriptor来代替 { "query": { "bool": { "must": [ { "term": { "id": "idValue" } } ],

我想写一个查询,它将产生如下结果。Bool查询只接受boolquerydescriptor。我想用两个BoolQueryDescriptor来代替

{
   "query": {
      "bool": {
         "must": [
            {
               "term": {
                  "id": "idValue"
               }
            }
         ],
         "should": [
            {
               "nested": {
                  "path": "nestedType",
                  "query": {
                     "match": {
                        "item2": "item2Value"
                     }
                  },
                  "inner_hits": {}
               }
            }
         ]
      }
   }
}
var results=client.Search(sd=>sd
.Query(q=>q
.Bool(b=>b
.Must(m=>m
.术语(“id”、“idValue”))
.Should(s=>s
.Nested(nq=>nq
.Path(“嵌套类型”)
.Query(qd=>qd
.Match(m=>m
.OnField(“第2项”)
.Query(“item2Value”))
.InnerHits());

您只需要一个描述符!到目前为止您尝试了什么?是的,我们只需要一个可以链接的描述符。我正在尝试&&和。。。。
var results = client.Search<object>(sd => sd
    .Query(q => q
        .Bool(b => b
            .Must(m => m
                .Term("id", "idValue"))
            .Should(s => s
                .Nested(nq => nq
                    .Path("nestedType")
                    .Query(qd => qd
                        .Match(m => m
                            .OnField("item2")
                            .Query("item2Value")))
                    .InnerHits()))));