diff --git a/src/services/search.service.ts b/src/services/search.service.ts index 17e436a9fb399b73bd6ed9b9ed60bd6f53246958..e30c629095e394ade68c83420e382d2d3bc42fbb 100644 --- a/src/services/search.service.ts +++ b/src/services/search.service.ts @@ -158,7 +158,7 @@ export class SearchService { // sortBy?: keyof SortableFilterFields, sortBy?: SortableField, sortOrder: 'asc' | 'desc' = 'desc', - index: string[] = [env.ELASTIC_INDEX_USERS, env.ELASTIC_INDEX_COLLECTIONS, env.ELASTIC_INDEX_RESOURCES], + index?: string[], offset: number = 0, page_size: number = 1000 ) { @@ -185,6 +185,22 @@ export class SearchService { ]; } + // lógica para mapear index na requisição para nome do index no back + const indexMap: Record<string, string> = { + users: env.ELASTIC_INDEX_USERS, + collections: env.ELASTIC_INDEX_COLLECTIONS, + resources: env.ELASTIC_INDEX_RESOURCES, + }; + + const resolvedIndexes = (index ?? []) + .map(i => indexMap[i]) + .filter((i): i is string => Boolean(i)); + + const indexesToUse = resolvedIndexes.length > 0 + ? resolvedIndexes + : [env.ELASTIC_INDEX_USERS, env.ELASTIC_INDEX_COLLECTIONS, env.ELASTIC_INDEX_RESOURCES]; + + const searchQuery = query ? { multi_match: { @@ -195,23 +211,22 @@ export class SearchService { 'author', 'description', 'link', - 'fileFormats', 'educational_stages', 'languages', 'subjects', 'license', 'object_type', - 'state', 'user', + 'username', 'roles', 'institution', 'city', - 'views', - 'downloads', - 'likes', - 'shares', - 'score', - 'comments', + // 'views', + // 'downloads', + // 'likes', + // 'shares', + // 'score', + // 'comments', 'created_at' ], }, @@ -221,7 +236,7 @@ export class SearchService { } const result = await this.esClient.search({ - index: index, + index: indexesToUse, body: { from: offset, size: page_size,