bugfix> elasticsearch > 投稿

ロケーション(geo_point)とタイプ(short)の2つのフィールドを持つマッピングタイプがあります。

地理的な近接度によって自分の場所をリストし、この種のクエリを使用したい

{
"query": {
    "bool": {
        "filter": {
            "geo_distance": {
                "distance": "20km",
                "location": {
                    "lat": 48.856614,
                    "lon": 2.3522219
                }
            }
        }
    }
},
"aggs": {
    "types": {
        "terms": {
            "field": "type"
        }
    }
},
"post_filter": [],
"page": 1,
"size": 50,
"sort": [
    {
        "_geo_distance": {
            "location": {
                "lat": 48.856614,
                "lon": 2.3522219
            },
            "order": "asc",
            "unit": "km",
            "distance_type": "plane"
        }
    }
]
}

特別なタイプの最初の2桁のみを含める方法はありますか(例:type = 2)?

回答 1 件
  • フィルターに別の句を追加します

    {
    "query": {
    "bool": {
        "filter": [{
            "geo_distance": {
                "distance": "20km",
                "location": {
                    "lat": 48.856614,
                    "lon": 2.3522219
                }
            }
        },
        { 
         "term": {"type":"2"}
        }]
    }
    },
    "aggs": {
    "types": {
        "terms": {
            "field": "type"
        }
     }
    },
    "post_filter": [],
    "page": 1,
    "size": 2,
    "sort": [
    {
        "_geo_distance": {
            "location": {
                "lat": 48.856614,
                "lon": 2.3522219
            },
            "order": "asc",
            "unit": "km",
            "distance_type": "plane"
        }
    }
    ]
    }
    
    

あなたの答え