2016-04-22 10 views
1

こんにちは、私はファジー操作を使用して一致する必要がありますクエリがあります。エラスティック検索マッチとファジークエリ(NEST)のLINQ式を書く方法

{ 
    "query": { 
    "match": { 
     "answer": { 
     "query": "conevrt o", 
     "fuzziness": 2 
     } 
    } 
    } 
} 

私はこの使用してラムダ式スタイルイムNEST.fuzzinessにint型に変換することはできませんというエラーを取得を書いてみます。

ここにラムダ式を取ります。

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

ありがとうございます。

答えて

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

希望します。

+0

ありがとうございます。その作業:) – ASN

関連する問題