多项搜索NEST C#
我想进行匹配多个值(值数组)的搜索,如下所示:
var result1 = _client.Search(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(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提供的所有好东西。
Orelus ,我想用你的解决方案
.And( af=>af.Term(...), af=>af.Term(...) )
我不明白这适合哪里,这是我的非工作filter的一个例子
var results = client.Search(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) ) ) ) ) ) );