graphql-compose / graphql-compose-elasticsearch

Hide Elastic Search REST API behind GraphQL.
https://graphql-compose.herokuapp.com/elasticsearch/
MIT License
583 stars 77 forks source link

GeoDistance incorrectly requires the parameters for GeoBoundingBox #111

Open chaserelock opened 4 years ago

chaserelock commented 4 years ago

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-query.html src/QueryDSL/Query/Geo/GeoDistance

Rather than just requiring a getGeoPointFC(opts) e.g. { "lat": 127, "lon": 4 }, GeoDistance instead expects top_left and bottom_right which should only be used in the GeoBoundingBox query.

 const subName = getTypeName('QueryGeoDistanceSettings', opts);
  const fields = getGeoPointAsFieldConfigMap(
    opts,
    opts.getOrCreateITC(subName, () => ({
      name: subName,
      fields: {
        top_left: getGeoPointFC(opts),
        bottom_right: getGeoPointFC(opts),
      },
    }))
  );