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