2016-07-18 2 views
1

は、私はこのようになります単純化されたオブジェクトを持っています。現在のクエリは価格でフィルタリングされますが、都市またはタイプでは機能しません。フィルターアレイに用語を追加することは、そのトリックを行いませんでした。Elasticsearchフィルタリングネストされたオブジェクト

'query':{ 
    'filtered':{ 
     'query':{ 
      'query_string':{ 
       'query':query 
      } 
     }, 
    'filter': { 
     'bool':{ 
      'filter': [{ 
        'range': { 
         'variants.price': { 
          'gte': 0 
         } 
        } 
       }, 
       { 
        'range': { 
         'variants.price': { 
          'lte': 50 
         } 
        } 
       }, 
       { 
        'term': { 
         'active': true 
        } 
       } 
      ] 
     } 
    } 
    } 
} 

助けてください。ありがとう!返信用

答えて

0
{ 
    "query": { 
    "filtered": { 
     "query": { 
     "match_all": {} 
     }, 
     "filter": { 
     "bool": { 
      "filter": [ 
      { 
       "range": { 
       "variants.price": { 
        "gte": 0 
       } 
       } 
      }, 
      { 
       "range": { 
       "variants.price": { 
        "lte": 50 
       } 
       } 
      }, 
      { 
       "nested": { 
       "path": "features", 
       "query": { 
        "bool": { 
        "should": [ 
         {"term":{"features.key":"type"}}, 
         {"term":{"features.key":"city"}} 
        ] 
        } 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

感謝。あなたが示唆したようにJSONをフォーマットしようとしましたが、まだ400の悪い応答エラーが発生しています。ここに私のオブジェクトのペーストビンがありますhttp://pastebin.com/nsex7PfK – CptnKrunch

+0

どのESバージョンを使用していますか? –

+0

Elasticsearch 2.3.4 – CptnKrunch

関連する問題