您有一个查询,我必须使用模糊操作进行匹配。
{
"query": {
"match": {
"answer": {
"query": "conevrt o",
"fuzziness": 2
}
}
}
}
当我尝试使用Lambda表达式写这个时,我得到一个错误,说无法将int转换为NEST.fuzziness。
这是我对lambda表达的看法。
match = drFuzzy.Text; //im getting text from the asp:dropdown(hardcoded 0,0.5,1,2)
int fuzz = Int32.Parse(match); // converting this to integer
var searchResponse = client.Search<StudResponse>(s => s
.Query(q => q
.Match(m => m
.Field(f => f.Answer)
.Query(key1)
.Fuzziness(fuzz) //throwing an error here. cannot convert from int to Nest.Fuzziness
)
)
);
提前致谢。
答案 0 :(得分:3)
要传递fuzinness参数,您必须使用Fuzziness
类和EditDistance
方法。 NEST文档有一个非常好的match query usage示例,请查看。
这是您在用例中使用Fuzziness.EditDistance(..)
代码的方法。
client.Search<StudResponse>(s => s
.Query(q => q
.Match(m => m
.Field(f => f.Answer)
.Query(key1)
.Fuzziness(Fuzziness.EditDistance(fuzz))
)
));
希望它有所帮助。