多术语搜索嵌套C#
我希望执行匹配多个值(值数组)的搜索,如下所示:多术语搜索嵌套C#,c#,elasticsearch,nest,C#,elasticsearch,Nest,我希望执行匹配多个值(值数组)的搜索,如下所示: var result1 = _client.Search<type1>(s => s .Fields(f => f.trip_id) .Query(q => q .Terms(t => t.arg1, value1)).Take(_allData)) .Documents.Select(d =>
var result1 = _client.Search<type1>(s => s
.Fields(f => f.trip_id)
.Query(q => q
.Terms(t => t.arg1, value1)).Take(_allData))
.Documents.Select(d => d.arg2).ToArray();
var result2 = _client.Search<type2>(s => s
.Query(q => q
.Terms(t => t.arg3, result1))
.Take(_allData)
).Documents.Select(s => s.ar3).ToList();
var result1=\u client.Search(s=>s
.Fields(f=>f.trip\u id)
.Query(q=>q
.Terms(t=>t.arg1,value1)).Take(_allData))
.Documents.Select(d=>d.arg2.ToArray();
var result2=\u client.Search(s=>s
.Query(q=>q
.Terms(t=>t.arg3,result1))
.Take(_allData)
).Documents.Select(s=>s.ar3.ToList();
我该怎么办?我在考虑方面,但我不知道如何才能做到这一点。
目前唯一有效的方法是使用foreach
迭代器,它实际上并不有效
谢谢您的帮助。您可以这样表达多个查询:
.Query(q=>q.Terms(t=>t.arg3, result1) && q.Terms(t=>t.arg1, value1))
一定要阅读NEST提供的所有好东西。,
我想用你的解决方案
.And( af=>af.Term(...), af=>af.Term(...) )
我不明白这适用于何处,这里是我的非工作过滤器的一个例子
var results = client.Search<music>(s => s
.Query(q => q
.Filtered(f => f.
Filter(b => b.Bool(m => m.Must(
t => t
.Term(p => p.artist, artist)
&& t.Term(p2 => p2.year, year)
)
)
)
)
)
);
var results=client.Search(s=>s
.Query(q=>q
.已筛选(f=>f。
过滤器(b=>b.Bool(m=>m.Must(
t=>t
.术语(p=>p.艺术家,艺术家)
&&期限(p2=>p2.year,year)
)
)
)
)
)
);
谢谢你的回答,但最后我使用了过滤器DSL
而不是查询DSL
,它允许我通过:。和(af=>af.Term(…),af=>af.Term(…)
你能更新上面的URL吗?它当前不可用。t.arg1应为t=>t。arg1@Orelus你应该写下你的评论作为答案,因为这是正确的答案,对我有用。