弹性搜索-NEST中的运算符(使用运算符作为字符串的搜索查询)

时间:2019-04-17 14:49:51

标签: elasticsearch nest elastic-stack

我有一个用C#编写并使用NEST client 6.x的查询,如下所示。

.Should(
    m => m.QueryString(qs => qs
   .Query(searchOptions.SearchTerm)
   .Fields(ff => ff.Fields(fields))
   .DefaultOperator(Operator.And)
   ),

我需要将运算符参数作为字符串传递,但它不接受字符串值。 有没有办法将运算符作为字符串传递?

1 个答案:

答案 0 :(得分:0)

您可以在此代码中将输入字符串解析为Operator枚举:

var parsed = Enum.TryParse("or", true, out Operator parsedOperator);

,然后在查询描述符中使用parsedOperator,例如:

elasticClient.Search<object>(s => s
    .Query(q => q.QueryString(qs => qs.DefaultOperator(parsedOperator))));