5

現在動的スクリプトを使用している次のクエリがあります。それ以来、私のホストはこれをサポートしていないことがわかりました。これは、より広範なセキュリティへの影響があるためです。動的スクリプトを使用しないように、このスクリプトをどのように書き直せばよいでしょうか?

{
  "size": 0,
  "aggs": {
    "filtered_cells": {
      "filter": {
        "geo_bounding_box": {
          "loc": {
            "top_left": "58.645976, -13.515625",
            "bottom_right": "50.524473, 2.436523"
          }
        }
      },
      "aggs": {
        "cells": {
          "geohash_grid": {
            "field": "loc",
            "precision": 2
          },
          "aggs": {
            "center_lat": {
              "avg": {
                "script": "doc['loc'].lat"
              }
            },
            "center_lon": {
              "avg": {
                "script": "doc['loc'].lon"
              }
            }
          }
        }
      }
    }
  },
  "query": {
    "match_all": {}
  }
}
4

2 に答える 2

2

スクリプトをファイル システムに保存し、クエリ/集計内から参照できます。

config/scripts/lat.groovy次の内容で名前が付けられたファイルを作成します

 doc['loc'].lat

config/scripts/lon.groovy次の内容で名前が付けられた別のファイルを作成します

 doc['loc'].lon

次に、クエリを次のように変更します。

{
  "size": 0,
  "aggs": {
    "filtered_cells": {
      "filter": {
        "geo_bounding_box": {
          "loc": {
            "top_left": "58.645976, -13.515625",
            "bottom_right": "50.524473, 2.436523"
          }
        }
      },
      "aggs": {
        "cells": {
          "geohash_grid": {
            "field": "loc",
            "precision": 2
          },
          "aggs": {
            "center_lat": {
              "avg": {
                "script_file": "lat"
              }
            },
            "center_lon": {
              "avg": {
                "script_file": "lon"
              }
            }
          }
        }
      }
    }
  },
  "query": {
    "match_all": {}
  }
}
于 2015-05-28T11:47:05.737 に答える