@@ -152,35 +152,48 @@ async function test() {
152152 ) ;
153153 }
154154
155- // Test 5: Keyword (sparse-only) search on pinecone-rag- sparse
155+ // Test 5: Keyword (sparse-only) search — use namespace from sparse index, not dense
156156 let duration5 : number | undefined ;
157157 let test5Skipped = false ;
158- console . log ( `\n🔤 Test 5: Keyword search (sparse-only index)` ) ;
159- console . log ( ` Namespace: "${ testNamespace } "` ) ;
160- console . log ( ` Query: "test query"` ) ;
161- console . log ( ` Top K: 3` ) ;
162- try {
163- const startTime5 = Date . now ( ) ;
164- const results5 = await client . keywordSearch ( {
165- query : 'test query' ,
166- namespace : testNamespace ,
167- topK : 3 ,
168- } ) ;
169- duration5 = Date . now ( ) - startTime5 ;
170- console . log ( `✅ Keyword search returned ${ results5 . length } result(s) in ${ duration5 } ms` ) ;
171- if ( results5 . length > 0 ) {
172- console . log (
173- ` First result score: ${ results5 [ 0 ] . score . toFixed ( 4 ) } , reranked: ${ results5 [ 0 ] . reranked } `
174- ) ;
175- }
176- } catch ( kwError ) {
158+ const sparseNamespaces = await client . listNamespacesFromKeywordIndex ( ) ;
159+ if ( sparseNamespaces . length === 0 ) {
177160 test5Skipped = true ;
161+ console . log ( `\n🔤 Test 5: Keyword search (sparse-only index)` ) ;
178162 console . log (
179- `⚠️ Keyword search skipped: ${ kwError instanceof Error ? kwError . message : String ( kwError ) } `
163+ `⚠️ Keyword search skipped: sparse index has no namespaces (or index unavailable). `
180164 ) ;
181165 console . log (
182- ` Ensure PINECONE_SPARSE_INDEX_NAME (e.g. pinecone-rag-sparse) exists and has data.`
166+ ` Ensure PINECONE_SPARSE_INDEX_NAME (e.g. pinecone-rag-sparse or rag-hybrid-sparse ) exists and has data.`
183167 ) ;
168+ } else {
169+ const sparseTestNamespace = sparseNamespaces [ 0 ] . namespace ;
170+ console . log ( `\n🔤 Test 5: Keyword search (sparse-only index)` ) ;
171+ console . log ( ` Namespace: "${ sparseTestNamespace } " (from sparse index)` ) ;
172+ console . log ( ` Query: "test query"` ) ;
173+ console . log ( ` Top K: 3` ) ;
174+ try {
175+ const startTime5 = Date . now ( ) ;
176+ const results5 = await client . keywordSearch ( {
177+ query : 'test query' ,
178+ namespace : sparseTestNamespace ,
179+ topK : 3 ,
180+ } ) ;
181+ duration5 = Date . now ( ) - startTime5 ;
182+ console . log ( `✅ Keyword search returned ${ results5 . length } result(s) in ${ duration5 } ms` ) ;
183+ if ( results5 . length > 0 ) {
184+ console . log (
185+ ` First result score: ${ results5 [ 0 ] . score . toFixed ( 4 ) } , reranked: ${ results5 [ 0 ] . reranked } `
186+ ) ;
187+ }
188+ } catch ( kwError ) {
189+ test5Skipped = true ;
190+ console . log (
191+ `⚠️ Keyword search skipped: ${ kwError instanceof Error ? kwError . message : String ( kwError ) } `
192+ ) ;
193+ console . log (
194+ ` Ensure PINECONE_SPARSE_INDEX_NAME exists and namespace "${ sparseTestNamespace } " has data.`
195+ ) ;
196+ }
184197 }
185198
186199 console . log ( '\n✨ All tests completed successfully!' ) ;
0 commit comments