2017-02-22 6 views
0

私はインデックスを持って期待通りにフィルタリングしないElasticsearchは、私はElasticsearch 1.4 <p></p>を使用しています

curl -XPOST "http://localhost:49200/customer/venues/RO2" -d '{ "party_id":"RO2", "sup_party_id": "SUP_GT_R1A_0001","location":{ "lat":"21.030347","lon":"105.842896" }}' 
curl -XPOST "http://localhost:49200/customer/venues/RO3" -d '{ "party_id":"RO3", "sup_party_id": "SUP_GT_R1A_0004","location":{ "lat":"20.9602051","lon":"105.78709179999998" }}' 

と私のフィルタは次のとおりです。

{"constant_score": 
    {"filter": 
     {"and": 
      [{"terms": 
       {"sup_party_id":["SUP_GT_R1A_0004","SUP_GT_R1A_0001","RO2","RO3","RO4"] 
       } 
      },{"geo_bounding_box": 
       {"location": 
        {"top_left":{"lat":25.74546096707413,"lon":70.43503197075188}, 
        "bottom_right":{"lat":6.342579199578783,"lon":168.96042259575188} 
        } 
       } 
      }] 
     } 
    } 
} 

クエリの上にデータを返すが、私は次の用語を削除するとき、それはデータを返しません:任意の提案が高く評価され、問題が私を見る

{"terms": 
    {"sup_party_id":["SUP_GT_R1A_0004","SUP_GT_R1A_0001","RO2","RO3","RO4"] 
    } 
} 

してください!

答えて

1

これは、sup_party_idフィールドが解析された文字列であるためです。代わりにこのようにマッピングを変更すれば正常に動作します。

curl -XPUT "http://localhost:49200/customer" -d '{ 
    "mappings": { 
    "venues": { 
     "properties": { 
     "party_id": { 
      "type": "string" 
     }, 
     "sup_party_id": { 
      "type": "string", 
      "index": "not_analyzed"  <--- add this 
     }, 
     "location": { 
      "type": "geo_point" 
     } 
     } 
    } 
    } 
}' 
+0

ご返信いただければ幸いです。どうもありがとうございました! –

+0

すごく、うれしかった! – Val

関連する問題