C# 如何在查询弹性搜索时添加条件表达式?
我想知道我们是否可以在从弹性搜索中获取数据时编写条件表达式 例如,我的记录中有一列。该列具有1到100之间的整数值。我想在该列具有偶数值的地方获取所有此类记录。目前,我是这样做的,建立一个我想要的值列表,然后将它们传递到Termskyry中:C# 如何在查询弹性搜索时添加条件表达式?,c#,.net,elasticsearch,nest,C#,.net,elasticsearch,Nest,我想知道我们是否可以在从弹性搜索中获取数据时编写条件表达式 例如,我的记录中有一列。该列具有1到100之间的整数值。我想在该列具有偶数值的地方获取所有此类记录。目前,我是这样做的,建立一个我想要的值列表,然后将它们传递到Termskyry中: for(int i = 1; i <= 100; i++) { if (i%2 == 0) possibleMatches.Add(i); }
for(int i = 1; i <= 100; i++)
{
if (i%2 == 0)
possibleMatches.Add(i);
}
Func<TermsQueryDescriptor<MyClass>, ITermsQuery> TermsQuery = t =>
{
return t.Field(f => f.MyColumn).Terms(possibleMatches);
};
var results = collection.Search(s =>
s.Index(MyIndex).Type(MyElasticsearchType)
.Query(qu=>qu.Terms(TermsQuery));
以建议的方式编写条件表达式是不可能的。您有两种选择:
MyColumn
值是奇数还是偶数索引到单独的字段中第一种方法更灵活,而第二种方法性能更好。不可能按照建议的方式编写条件表达式。您有两种选择:
MyColumn
值是奇数还是偶数索引到单独的字段中t.Field(f=> f.MyColumn%2 == 0)