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)