2017-09-01 9 views
0

を.keyword:これはないhow'ever追加として、私は私のクエリを持っている想像しNESTのelasticsearchクエリでフィールド名し

{ 
    "query": { 
     "bool": { 
      "must": [{ 
        "wildcard": { 
         "userName": "*alex*" 
        } 
       } 
      ], 
      "must_not": [], 
      "should": [] 
     } 
    } 
} 

:(DeubgInformationから)の出力クエリは次のようになります

.Query(query => 
      query.Bool(b => b.Must(m =>  
       m.Wildcard(w => w.Field(f => f.userName).Value(string.Format("*{0}*", searchModel.username).Suffix("keyword"))) 
))); 

作業。ユーザー名の末尾に ".keyword"を追加する必要があります。以下のクエリは動作しますが、私はNESTを通してそれを生成することができません:NESTは、フィールド名の末尾に「.keyword」を追加できるようにする方法を

{ 
    "query": { 
     "bool": { 
      "must": [{ 
        "wildcard": { 
         "userName.keyword": "*alex*" 
        } 
       } 
      ], 
      "must_not": [], 
      "should": [] 
     } 
    } 
} 

任意のアイデア? (流暢なファッションで、もちろん、そうでない場合はw.Field("userName.keyword")作品の)

答えて

2

Suffix()コールは、メンバーアクセス式の一部である必要があり

.Query(query => query 
    .Bool(b => b 
     .Must(m => m 
      .Wildcard(w => w 
       .Field(f => f.userName.Suffix("keyword")) 
       .Value(string.Format("*{0}*", searchModel.username) 
      ) 
     ) 
    ) 
)); 
関連する問題