@@ -5,11 +5,34 @@ import { document, embedding } from '@/db/schema'
55
66const logger = createLogger ( 'KnowledgeSearchUtils' )
77
8+ export async function getDocumentNamesByIds (
9+ documentIds : string [ ]
10+ ) : Promise < Record < string , string > > {
11+ if ( documentIds . length === 0 ) {
12+ return { }
13+ }
14+
15+ const uniqueIds = [ ...new Set ( documentIds ) ]
16+ const documents = await db
17+ . select ( {
18+ id : document . id ,
19+ filename : document . filename ,
20+ } )
21+ . from ( document )
22+ . where ( inArray ( document . id , uniqueIds ) )
23+
24+ const documentNameMap : Record < string , string > = { }
25+ documents . forEach ( ( doc ) => {
26+ documentNameMap [ doc . id ] = doc . filename
27+ } )
28+
29+ return documentNameMap
30+ }
31+
832export interface SearchResult {
933 id : string
1034 content : string
1135 documentId : string
12- documentName : string | null
1336 chunkIndex : number
1437 tag1 : string | null
1538 tag2 : string | null
@@ -131,7 +154,6 @@ async function executeVectorSearchOnIds(
131154 id : embedding . id ,
132155 content : embedding . content ,
133156 documentId : embedding . documentId ,
134- documentName : document . filename ,
135157 chunkIndex : embedding . chunkIndex ,
136158 tag1 : embedding . tag1 ,
137159 tag2 : embedding . tag2 ,
@@ -144,7 +166,6 @@ async function executeVectorSearchOnIds(
144166 knowledgeBaseId : embedding . knowledgeBaseId ,
145167 } )
146168 . from ( embedding )
147- . innerJoin ( document , eq ( embedding . documentId , document . id ) )
148169 . where (
149170 and (
150171 inArray ( embedding . id , embeddingIds ) ,
@@ -176,7 +197,6 @@ export async function handleTagOnlySearch(params: SearchParams): Promise<SearchR
176197 id : embedding . id ,
177198 content : embedding . content ,
178199 documentId : embedding . documentId ,
179- documentName : document . filename ,
180200 chunkIndex : embedding . chunkIndex ,
181201 tag1 : embedding . tag1 ,
182202 tag2 : embedding . tag2 ,
@@ -189,7 +209,6 @@ export async function handleTagOnlySearch(params: SearchParams): Promise<SearchR
189209 knowledgeBaseId : embedding . knowledgeBaseId ,
190210 } )
191211 . from ( embedding )
192- . innerJoin ( document , eq ( embedding . documentId , document . id ) )
193212 . where (
194213 and (
195214 eq ( embedding . knowledgeBaseId , kbId ) ,
@@ -209,7 +228,6 @@ export async function handleTagOnlySearch(params: SearchParams): Promise<SearchR
209228 id : embedding . id ,
210229 content : embedding . content ,
211230 documentId : embedding . documentId ,
212- documentName : document . filename ,
213231 chunkIndex : embedding . chunkIndex ,
214232 tag1 : embedding . tag1 ,
215233 tag2 : embedding . tag2 ,
@@ -222,7 +240,6 @@ export async function handleTagOnlySearch(params: SearchParams): Promise<SearchR
222240 knowledgeBaseId : embedding . knowledgeBaseId ,
223241 } )
224242 . from ( embedding )
225- . innerJoin ( document , eq ( embedding . documentId , document . id ) )
226243 . where (
227244 and (
228245 inArray ( embedding . knowledgeBaseId , knowledgeBaseIds ) ,
@@ -254,7 +271,6 @@ export async function handleVectorOnlySearch(params: SearchParams): Promise<Sear
254271 id : embedding . id ,
255272 content : embedding . content ,
256273 documentId : embedding . documentId ,
257- documentName : document . filename ,
258274 chunkIndex : embedding . chunkIndex ,
259275 tag1 : embedding . tag1 ,
260276 tag2 : embedding . tag2 ,
@@ -267,7 +283,6 @@ export async function handleVectorOnlySearch(params: SearchParams): Promise<Sear
267283 knowledgeBaseId : embedding . knowledgeBaseId ,
268284 } )
269285 . from ( embedding )
270- . innerJoin ( document , eq ( embedding . documentId , document . id ) )
271286 . where (
272287 and (
273288 eq ( embedding . knowledgeBaseId , kbId ) ,
@@ -289,7 +304,6 @@ export async function handleVectorOnlySearch(params: SearchParams): Promise<Sear
289304 id : embedding . id ,
290305 content : embedding . content ,
291306 documentId : embedding . documentId ,
292- documentName : document . filename ,
293307 chunkIndex : embedding . chunkIndex ,
294308 tag1 : embedding . tag1 ,
295309 tag2 : embedding . tag2 ,
@@ -302,7 +316,6 @@ export async function handleVectorOnlySearch(params: SearchParams): Promise<Sear
302316 knowledgeBaseId : embedding . knowledgeBaseId ,
303317 } )
304318 . from ( embedding )
305- . innerJoin ( document , eq ( embedding . documentId , document . id ) )
306319 . where (
307320 and (
308321 inArray ( embedding . knowledgeBaseId , knowledgeBaseIds ) ,
0 commit comments