2017-02-21 7 views
0

私はElasticSearchで検索を実行するためにマッピングクエリを使用しましたが、以下のように正常に動作します。Python ElasticSearchクエリエラー

{ 
       "query": { 
        "bool" : { 
         "must" : { 
          "match_all" : {} 
         }, 
         "filter" : { 
          "geo_distance" : { 
           "distance" : "{}mi".format(list_info.radius_b), 
           'location': { 
            "lat": zip.lat, 
            "lon": zip.lng 
           } 
          } 
         }, 
        }, 
       }, 
       "sort" : [ 
        { 
         "_geo_distance" : { 
          'location': {"lat": zip.lat, 
             "lon": zip.lng}, 
          "order" : "asc", 
          "unit" : "mi", 
          "mode" : "min", 
          "distance_type" : "sloppy_arc" 
         } 
        } 
       ], 
       "from": 0, 
       "size": 0, 
      } 

しかし、私は、 "用語" を追加し、私はエラーになっています:TransportError(400、u'parsing_exception」、U '[用語]不正な形式のクエリ、[END_OBJECT]期待したが、[FIELD_NAME]' が見つかり)

{ 
       "query": { 
        "bool" : { 
         "must" : { 
          "match_all" : {} 
         }, 
         "filter" : { 
          "geo_distance" : { 
           "distance" : "{}mi".format(list_info.radius_b), 
           'location': { 
            "lat": zip.lat, 
            "lon": zip.lng 
           } 
          } 
         }, 
        }, 
        "term" : { "status" : "approved" } 
       }, 
       "sort" : [ 
        { 
         "_geo_distance" : { 
          'location': {"lat": zip.lat, 
             "lon": zip.lng}, 
          "order" : "asc", 
          "unit" : "mi", 
          "mode" : "min", 
          "distance_type" : "sloppy_arc" 
         } 
        } 
       ], 
       "from": 0, 
       "size": 0, 
      } 

答えて

3

新しいtermクエリbool/filterクエリの内側に配置する必要があります:

{ 
    "query": { 
    "bool": { 
     "must": { 
     "match_all": {} 
     }, 
     "filter": [ 
     { 
      "geo_distance": { 
      "distance": "{}mi".format(list_info.radius_b), 
      "location": { 
       "lat": zip.lat, 
       "lon": zip.lng 
      } 
      } 
     }, 
     { 
      "term": { 
      "status": "approved" 
      } 
     } 
     ] 
    } 
    }, 
    "sort": [ 
    { 
     "_geo_distance": { 
     "location": { 
      "lat": zip.lat, 
      "lon": zip.lng 
     }, 
     "order": "asc", 
     "unit": "mi", 
     "mode": "min", 
     "distance_type": "sloppy_arc" 
     } 
    } 
    ], 
    "from": 0, 
    "size": 0 
} 
+0

は、あなたがこの作品を作ることができましたか? – Val