From 67ab1fd613e1f870c8d57abdf58e24e497290a04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Fri, 28 Jun 2024 14:10:41 +0200 Subject: [PATCH] fix: geo.point has wrong mapping --- .changeset/rich-rats-guess.md | 5 +++++ .../storage/elasticsearch/query/filters/distance.ts | 2 +- .../src/storage/elasticsearch/query/sort/distance.ts | 2 +- .../backend/test/storage/elasticsearch/query.spec.ts | 4 ++-- packages/es-mapping-generator/src/config/premap.ts | 10 +--------- 5 files changed, 10 insertions(+), 13 deletions(-) create mode 100644 .changeset/rich-rats-guess.md diff --git a/.changeset/rich-rats-guess.md b/.changeset/rich-rats-guess.md new file mode 100644 index 00000000..0822e2e1 --- /dev/null +++ b/.changeset/rich-rats-guess.md @@ -0,0 +1,5 @@ +--- +"@openstapps/backend": patch +--- + +fix for geo.point mapping diff --git a/backend/backend/src/storage/elasticsearch/query/filters/distance.ts b/backend/backend/src/storage/elasticsearch/query/filters/distance.ts index 3c1fd0ff..dd1a6065 100644 --- a/backend/backend/src/storage/elasticsearch/query/filters/distance.ts +++ b/backend/backend/src/storage/elasticsearch/query/filters/distance.ts @@ -25,7 +25,7 @@ export function buildDistanceFilter( ): QueryDslSpecificQueryContainer<'geo_distance'> { const geoObject: QueryDslGeoDistanceQuery = { distance: `${filter.arguments.distance}m`, - [`${filter.arguments.field}.point.coordinates`]: { + [`${filter.arguments.field}.point`]: { lat: filter.arguments.position[1], lon: filter.arguments.position[0], }, diff --git a/backend/backend/src/storage/elasticsearch/query/sort/distance.ts b/backend/backend/src/storage/elasticsearch/query/sort/distance.ts index 618625b4..cc3dd033 100644 --- a/backend/backend/src/storage/elasticsearch/query/sort/distance.ts +++ b/backend/backend/src/storage/elasticsearch/query/sort/distance.ts @@ -25,7 +25,7 @@ export function buildDistanceSort(sort: SCDistanceSort): SortOptions { mode: 'avg', order: sort.order, unit: 'm', - [`${sort.arguments.field}.point.coordinates`]: { + [`${sort.arguments.field}.point`]: { lat: sort.arguments.position[1], lon: sort.arguments.position[0], }, diff --git a/backend/backend/test/storage/elasticsearch/query.spec.ts b/backend/backend/test/storage/elasticsearch/query.spec.ts index 00ebb9cf..85737c77 100644 --- a/backend/backend/test/storage/elasticsearch/query.spec.ts +++ b/backend/backend/test/storage/elasticsearch/query.spec.ts @@ -466,7 +466,7 @@ describe('Query', function () { const expectedFilter: QueryDslSpecificQueryContainer<'geo_distance'> = { geo_distance: { 'distance': '1000m', - 'geo.point.coordinates': { + 'geo.point': { lat: 8.123, lon: 50.123, }, @@ -636,7 +636,7 @@ describe('Query', function () { 'mode': 'avg', 'order': 'desc', 'unit': 'm', - 'geo.point.coordinates': { + 'geo.point': { lat: 50.123, lon: 8.123, }, diff --git a/packages/es-mapping-generator/src/config/premap.ts b/packages/es-mapping-generator/src/config/premap.ts index 614b4715..9fbaf5ff 100644 --- a/packages/es-mapping-generator/src/config/premap.ts +++ b/packages/es-mapping-generator/src/config/premap.ts @@ -27,15 +27,7 @@ export const premaps: Record = { type: 'geo_shape', }, 'Point': { - properties: { - type: { - type: 'keyword', - }, - coordinates: { - type: 'geo_point', - }, - }, - dynamic: 'strict', + type: 'geo_point', }, 'Polygon': { type: 'geo_shape',