elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# 嵌套弹性搜索如何匹配具有多个值的字段

C# 嵌套弹性搜索如何匹配具有多个值的字段,c#,elasticsearch,nest,C#,elasticsearch,Nest,我需要执行搜索,在查询中,我将提供多个值,这些值应该由一个字段匹配 以前,我总是需要按两个值进行搜索,因此代码如下所示: Filter<Document>.Query(q => q.Term(p => p.FieldName, value1) || q.Term(p => p.FieldName, value2)); Filter.Query(q=> q、 术语(p=>p.FieldName,value1)|| q、 术语(p=>p.FieldName,v

我需要执行搜索,在查询中,我将提供多个值,这些值应该由一个字段匹配

以前,我总是需要按两个值进行搜索,因此代码如下所示:

Filter<Document>.Query(q =>
  q.Term(p => p.FieldName, value1) ||
  q.Term(p => p.FieldName, value2));
Filter.Query(q=>
q、 术语(p=>p.FieldName,value1)||
q、 术语(p=>p.FieldName,value2));
但现在我有了一个价值清单。我没有看到任何这样的例子。 我正在使用NEST 1.7.1
谢谢你的帮助。

解决方案非常简单,可惜我没有早点找到

Filter<Document>.Query(q =>
   q.Terms(p=> p.Field, valuesCollection)
);
Filter.Query(q=>
q、 术语(p=>p.字段,值集合)
);

解决方案非常简单,可惜我之前没有找到

Filter<Document>.Query(q =>
   q.Terms(p=> p.Field, valuesCollection)
);
Filter.Query(q=>
q、 术语(p=>p.字段,值集合)
);

我不想回答这个问题,但我想澄清一个问题:如果一个字段必须匹配多个值,那么您可以简单地搜索其中任何一个值,因为它们是相等的-除非您的多个值是一个字段的子集,在这种情况下,这是相当棘手的。请详细说明?@trapsuutjies你是对的,这是一个简单的解决方案。我认为,如果我在一个字段中添加多个术语,它将创建和查询,结果将为空。我错了。我不想回答,但我想澄清一个问题:如果一个字段必须匹配多个值,那么你可以简单地搜索其中任何一个值,因为它们是相等的-除非你的多个值是一个字段的子集,在这种情况下,这是相当棘手的。请详细说明?@trapsuutjies你是对的,这是一个简单的解决方案。我认为,如果我在一个字段中添加多个术语,它将创建和查询,结果将为空。我错了。