嗨,有一个查询,其中我必须使用模糊运算进行匹配。

{
  "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
                   )
                )
            );

提前致谢。

最佳答案

要传递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))
        )
    ));

希望能帮助到你。

09-11 18:39