我想知道我们是否可以在从 flex 搜索中获取数据时编写条件表达式。
例如-我的记录中有一列。该列的整数值为1到100。我想获取该列具有偶数值的所有此类记录。当前,我正在这样做,构建所需的值列表,然后将它们传递到TermsQuery中:
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));
是否可以在条件查询或某些其他查询类型中编写条件表达式?说像
t.Field(f=> f.MyColumn%2 == 0)
最佳答案
用建议的方式编写条件表达式是不可能的。您有两种选择:
script
query并将条件写入Painless scripting language MyColumn
值是奇数还是偶数到一个单独的字段中。 第一种方法更灵活,而第二种方法将表现更好。
关于c# - 查询Elastic Search时如何添加条件表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590355/