2017-03-12 7 views
0

にフィルタとしてクエリ文字列を定義します。Elasticsearch - 私は、次の作業弾性検索クエリを持つC#の

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "term": { 
       "IsDeleted": false 
       } 
      }, 
      { 
       "query": { 
       "query_string": { 
        "fields": [ 
        "payPlan.PayPlanData.*" 
        ], 
        "query": "(StartInterval :[1 TO 100] AND (EndInterval :[1 TO 9999999]))" 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 

は、C#Nest.FilterDescriptor要素としてそれを定義することが可能ですか?あなたが実際の例を見ることができるように 主な問題は、フィルターここ

+0

あなたはNESTのどのバージョンを使用していますか? –

+0

NEST 1.7.1、Elasticsearch.Net 1.7.1 – Avishay

答えて

0

としてQueryStringQueryを定義しているが、私は、フィルタ等の弾性検索クエリ文字列を実装するために作成するために管理するものの一例ですが、私は他のフィルタを追加しました:

{ 
"query": { 
"filtered": { 
    "query": { 
    "match_all": {} 
    }, 
    "filter": { 
    "bool": { 
     "must": [ 
     { 
      "term": { 
      "NotSpan": true 
      } 
     }, 
     { 
      "and": { 
      "filters": [ 
       { 
       "bool": { 
        "must": [ 
        { 
         "fquery": { 
         "query": { 
          "query_string": { 
          "query": "(StartTimeAsNumber :[1 TO 12345] AND (EndTimeAsNumber :[12345 TO 9999999]))", 
          "default_field": "PayPlan.PayPlanData.*" 
          } 
         } 
         } 
        } 
        ] 
       } 
       } 
      ] 
      } 
     } 
     ], 
     "must_not": [ 
     { 
      "term": { 
      "userRole": "admin" 
      } 
     } 
     ] 
    } 
    } 
} 

}}