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

C# 如何在查询弹性搜索时添加条件表达式?

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); }

我想知道我们是否可以在从弹性搜索中获取数据时编写条件表达式

例如,我的记录中有一列。该列具有1到100之间的整数值。我想在该列具有偶数值的地方获取所有此类记录。目前,我是这样做的,建立一个我想要的值列表,然后将它们传递到Termskyry中:

 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)