From fb718e7e5b074e964ee7a64541590f41b6cacd1a Mon Sep 17 00:00:00 2001 From: Hampus Date: Sat, 15 Aug 2026 22:41:51 +0200 Subject: [PATCH] fix(search): filter message dates on createdAt instead of the id string (#1656) --- .../api/search/meilisearch/MeilisearchDomainAdapters.ts | 9 +++++++-- .../search/meilisearch/MeilisearchIndexDefinitions.ts | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fluxer_api/src/api/search/meilisearch/MeilisearchDomainAdapters.ts b/fluxer_api/src/api/search/meilisearch/MeilisearchDomainAdapters.ts index 52e0508f1..9d53a9a57 100644 --- a/fluxer_api/src/api/search/meilisearch/MeilisearchDomainAdapters.ts +++ b/fluxer_api/src/api/search/meilisearch/MeilisearchDomainAdapters.ts @@ -14,6 +14,7 @@ import type { SearchableUser, UserSearchFilters, } from '@fluxer/schema/src/contracts/search/SearchDocumentTypes'; +import {snowflakeToDate} from '@fluxer/snowflake/src/Snowflake'; import type {MeilisearchClient} from './MeilisearchClient'; import { compactMeiliFilters, @@ -45,6 +46,10 @@ interface MeilisearchAdapterOptions { client: MeilisearchClient; } +function snowflakeSeconds(snowflake: string): number { + return Math.floor(snowflakeToDate(BigInt(snowflake)).getTime() / 1000); +} + function buildMessageFilters(filters: MessageSearchFilters): Array { const clauses: Array = []; if (filters.guildId) clauses.push(meiliTermFilter('guildId', filters.guildId)); @@ -109,8 +114,8 @@ function buildMessageFilters(filters: MessageSearchFilters): Array 0) { clauses.push(...meiliExcludeAny('attachmentExtensions', filters.excludeAttachmentExtensions)); } - if (filters.maxId != null) clauses.push(meiliRangeFilter('id', {lt: filters.maxId})); - if (filters.minId != null) clauses.push(meiliRangeFilter('id', {gt: filters.minId})); + if (filters.maxId != null) clauses.push(meiliRangeFilter('createdAt', {lt: snowflakeSeconds(filters.maxId)})); + if (filters.minId != null) clauses.push(meiliRangeFilter('createdAt', {gt: snowflakeSeconds(filters.minId)})); return compactMeiliFilters(clauses); } diff --git a/fluxer_api/src/api/search/meilisearch/MeilisearchIndexDefinitions.ts b/fluxer_api/src/api/search/meilisearch/MeilisearchIndexDefinitions.ts index 3caaa917c..3b4a3f94a 100644 --- a/fluxer_api/src/api/search/meilisearch/MeilisearchIndexDefinitions.ts +++ b/fluxer_api/src/api/search/meilisearch/MeilisearchIndexDefinitions.ts @@ -17,6 +17,7 @@ export const MEILISEARCH_INDEX_DEFINITIONS: Record