2016-02-23 20 views
0

我需要执行搜索,在查询中我将提供多个值,这些值应与一个字段匹配。NEST Elasticseach如何匹配具有许多值的字段

之前,我总是需要由两个值进行搜索,所以代码一直在寻找这样的:

Filter<Document>.Query(q => 
    q.Term(p => p.FieldName, value1) || 
    q.Term(p => p.FieldName, value2)); 

但现在我有值的列表。我没有看到任何这样的例子。我使用NEST 1.7.1 感谢您的帮助。

+0

我并不想回答,但是我想澄清一个问题:如果一个字段必须多个值匹配,那么你可以简单地搜索值中的任何一个,因为他们是平等的 - 除非你的多个值是一个字段的子集,在这种情况下,它更加棘手。请详细说明? – trapsuutjies

+0

@trapsuutjies你是对的,这很容易解决。我虽然如果我添加到一个领域的许多术语,它会创建AND查询,我的结果将是空的。我错了。 –

回答

2

该解决方案非常简单,这是我之前没有发现的耻辱。

Filter<Document>.Query(q => 
    q.Terms(p=> p.Field, valuesCollection) 
); 
相关问题