diff --git a/app/components/pages/search/SearchResults.vue b/app/components/pages/search/SearchResults.vue index f130410..5c01635 100644 --- a/app/components/pages/search/SearchResults.vue +++ b/app/components/pages/search/SearchResults.vue @@ -124,6 +124,10 @@ return localePath({ path: `/solutions/${slug}` }); } + if (item.type === 'document') { + return localePath({ path: `/download/${slug}` }); + } + return null; }; diff --git a/app/models/utils/search-converter.test.ts b/app/models/utils/search-converter.test.ts index e9d9947..5e079ab 100644 --- a/app/models/utils/search-converter.test.ts +++ b/app/models/utils/search-converter.test.ts @@ -63,10 +63,11 @@ describe('converters', () => { title: 'User Manual', products: ['Product A'], product_types: ['Type A'], + fileUUID: 'TEST-UUID', }; const result = converters.product_documents(item); expect(result).toEqual({ - id: 1, + id: 'TEST-UUID', title: 'User Manual', summary: undefined, type: 'document', diff --git a/app/models/utils/search-converters.ts b/app/models/utils/search-converters.ts index c230e5f..f8714ec 100644 --- a/app/models/utils/search-converters.ts +++ b/app/models/utils/search-converters.ts @@ -28,7 +28,7 @@ export const converters: { product_documents: ( item: MeiliIndexMap['product_documents'] ): SearchItemView => ({ - id: item.id, + id: item.fileUUID || item.id, type: 'document', title: item.title, }), diff --git a/app/models/views/SearchItemView.ts b/app/models/views/SearchItemView.ts index 28b7822..5851292 100644 --- a/app/models/views/SearchItemView.ts +++ b/app/models/views/SearchItemView.ts @@ -1,6 +1,6 @@ export interface SearchItemView { /** 唯一标识符 **/ - id: number; + id: number | string; /** 条目类型 **/ type: 'product' | 'solution' | 'question' | 'document'; diff --git a/shared/types/meilisearch/meili-index.ts b/shared/types/meilisearch/meili-index.ts index 61f7b94..7b34473 100644 --- a/shared/types/meilisearch/meili-index.ts +++ b/shared/types/meilisearch/meili-index.ts @@ -73,6 +73,9 @@ export interface MeiliProductDocumentIndex { /** 相关产品类型 **/ product_types: string[]; + + /** 文件UUID **/ + fileUUID: string; } /** diff --git a/shared/types/meilisearch/search-result.ts b/shared/types/meilisearch/search-result.ts index a5da52d..03d88c0 100644 --- a/shared/types/meilisearch/search-result.ts +++ b/shared/types/meilisearch/search-result.ts @@ -1,4 +1,5 @@ import type { SearchResponse } from 'meilisearch'; +import type { MeiliSearchItemType } from './meili-index'; /** * 原始搜索分段结果