feat: implement QuestionBank CRUD with pagination and template query

- Add pagination support to findAll (page, limit query params)
- Add findByTemplateId method to service
- Add GET /by-template/:templateId endpoint to controller
- Service already includes CRUD for QuestionBank and QuestionBankItem
This commit is contained in:
Developer
2026-04-23 17:19:11 +08:00
commit 0a9588abb7
492 changed files with 112453 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
const { Client } = require('@elastic/elasticsearch');
async function run() {
const client = new Client({
node: 'http://127.0.0.1:9200',
});
try {
const indexName = 'knowledge_base';
console.log(`\n--- Total Documents ---`);
const count = await client.count({ index: indexName });
console.log(count);
console.log(`\n--- Document Distribution by tenantId ---`);
const distribution = await client.search({
index: indexName,
size: 0,
aggs: {
by_tenant: {
terms: { field: 'tenantId', size: 100, missing: 'N/A' }
}
}
});
console.log(JSON.stringify(distribution.aggregations.by_tenant.buckets, null, 2));
console.log(`\n--- Sample Documents (last 5) ---`);
const samples = await client.search({
index: indexName,
size: 5,
sort: [{ createdAt: 'desc' }],
});
console.log(JSON.stringify(samples.hits.hits.map(h => ({
id: h._id,
tenantId: h._source.tenantId,
fileName: h._source.fileName,
vectorLength: h._source.vector?.length,
vectorPreview: h._source.vector?.slice(0, 5),
contentPreview: h._source.content?.substring(0, 50)
})), null, 2));
} catch (error) {
console.error('Error:', error.meta?.body || error.message);
}
}
run();