diff --git a/server/src/domain/asset/asset.service.ts b/server/src/domain/asset/asset.service.ts index dea3e28a9..35f8637b9 100644 --- a/server/src/domain/asset/asset.service.ts +++ b/server/src/domain/asset/asset.service.ts @@ -306,6 +306,7 @@ export class AssetService { async updateAll(authUser: AuthUserDto, dto: AssetBulkUpdateDto) { const { ids, ...options } = dto; await this.access.requirePermission(authUser, Permission.ASSET_UPDATE, ids); + await this.jobRepository.queue({ name: JobName.SEARCH_INDEX_ASSET, data: { ids } }); await this.assetRepository.updateAll(ids, options); } diff --git a/server/src/infra/repositories/typesense.repository.ts b/server/src/infra/repositories/typesense.repository.ts index 594f9973b..5ab9b2a8e 100644 --- a/server/src/infra/repositories/typesense.repository.ts +++ b/server/src/infra/repositories/typesense.repository.ts @@ -150,7 +150,7 @@ export class TypesenseRepository implements ISearchRepository { async explore(userId: string): Promise[]> { const common = { q: '*', - filter_by: this.buildFilterBy('ownerId', userId, true), + filter_by: [this.buildFilterBy('ownerId', userId, true), this.buildFilterBy('isArchived', false)].join(' && '), per_page: 100, }; @@ -172,10 +172,7 @@ export class TypesenseRepository implements ISearchRepository { const config = { ...common, query_by: 'originalFileName', - filter_by: [ - this.buildFilterBy('ownerId', userId, true), - this.buildFilterBy(facet.field_name, count.value, true), - ].join(' && '), + filter_by: [common.filter_by, this.buildFilterBy(facet.field_name, count.value, true)].join(' && '), per_page: 1, }; @@ -468,7 +465,7 @@ export class TypesenseRepository implements ISearchRepository { private getAssetFilters(filters: SearchFilter) { const { userId } = filters; - const _filters = [this.buildFilterBy('ownerId', userId, true)]; + const _filters = [this.buildFilterBy('ownerId', userId, true), this.buildFilterBy('isArchived', false)]; if (filters.id) { _filters.push(this.buildFilterBy('id', filters.id, true)); diff --git a/server/src/infra/typesense-schemas/asset.schema.ts b/server/src/infra/typesense-schemas/asset.schema.ts index d98bac0f5..76a95e366 100644 --- a/server/src/infra/typesense-schemas/asset.schema.ts +++ b/server/src/infra/typesense-schemas/asset.schema.ts @@ -1,6 +1,6 @@ import { CollectionCreateSchema } from 'typesense/lib/Typesense/Collections'; -export const assetSchemaVersion = 9; +export const assetSchemaVersion = 10; export const assetSchema: CollectionCreateSchema = { name: `assets-v${assetSchemaVersion}`, fields: [ @@ -13,6 +13,7 @@ export const assetSchema: CollectionCreateSchema = { { name: 'fileCreatedAt', type: 'string', facet: false, sort: true }, { name: 'fileModifiedAt', type: 'string', facet: false, sort: true }, { name: 'isFavorite', type: 'bool', facet: true }, + { name: 'isArchived', type: 'bool', facet: true }, { name: 'originalFileName', type: 'string', facet: false, optional: true }, // exif