如何使用嵌套查询来匹配 NEST Fluent DSL 中的所有术语

Nic*_*sas 5 c# elasticsearch nest

我正在尝试使用 Elastic Search 的 .NET API NEST 来查询我的弹性数据存储。

我在尝试查询嵌套对象的属性时遇到了严重的困难。

你看,当我想检查该字段是否有我的术语之一时,我会使用如下内容:

q
.Nested(c => c
    .Name("named_query")
    .Boost(1.1)
    .InnerHits(i=>i.Explain())
    .Path(p=>p.CuratedTags)
    .Query(nq => nq
        .Terms(t => t
            .Field(f => f.CuratedTags.First().Name)
            .Terms("lorem", "ipsum")
        )
    )
    .IgnoreUnmapped()
)
Run Code Online (Sandbox Code Playgroud)

这将匹配标签数组中具有单词 lorem 或 ipsum 的标签。

我想要的是能够找到在其标签数组中同时具有 lorem 和 ipsum 的结果。从外观上看,在术语级别上没有我可以使用并设置为 AND 的运算符选项。

我已经尝试过诸如 Bool Must/Should/Filter 之类的东西。

NEST 文档中似乎没有任何内容与我想要的相匹配。

我的对象在弹性中看起来像这样:

"objectOptions": {
            "type": "nested",
            "properties": {
              "optionId": {
                "type": "integer"
              },
              "objectId": {
                "type": "integer"
              }
            }
          },
Run Code Online (Sandbox Code Playgroud)

以及它的一个例子:

"objectOptions": [
            {
              "objectId": 99,
              "optionId": 249
            },
            {
              "objectId": 99,
              "optionId": 261
            },
            {
              "objectId": 99,
              "optionId": 1267
            },
            {
              "objectId": 99,
              "optionId": 2918
            }
          ]
Run Code Online (Sandbox Code Playgroud)