【问题标题】:Elastic Search - Operator in NEST (Search Query with Operator as string)弹性搜索 - NEST 中的运算符(使用运算符作为字符串的搜索查询)
【发布时间】:2019-09-07 20:53:21
【问题描述】:
我有一个用 C# 编写并使用 NEST 客户端 6.x 的查询,如下所示。
.Should(
m => m.QueryString(qs => qs
.Query(searchOptions.SearchTerm)
.Fields(ff => ff.Fields(fields))
.DefaultOperator(Operator.And)
),
我需要将运算符参数作为字符串传递,但它不接受字符串值。
有没有办法将运算符作为字符串传递?
【问题讨论】:
标签:
elasticsearch
nest
elastic-stack
【解决方案1】:
您可以在此代码中将输入字符串解析为Operator 枚举:
var parsed = Enum.TryParse("or", true, out Operator parsedOperator);
然后在查询描述符中使用parsedOperator,例如:
elasticClient.Search<object>(s => s
.Query(q => q.QueryString(qs => qs.DefaultOperator(parsedOperator))));