diff --git a/third_party/astrolabe/src/App.vue b/third_party/astrolabe/src/App.vue index 59a8636..8ce12c0 100644 --- a/third_party/astrolabe/src/App.vue +++ b/third_party/astrolabe/src/App.vue @@ -443,7 +443,7 @@ export default { algorithm: 'hybrid', showAdvanced: false, selectedDocTypes: [], - limit: '20', + limit: 20, scoreThreshold: 0, loading: false, error: null, diff --git a/third_party/astrolabe/src/components/admin/AdminSettings.vue b/third_party/astrolabe/src/components/admin/AdminSettings.vue index 68f2051..53db507 100644 --- a/third_party/astrolabe/src/components/admin/AdminSettings.vue +++ b/third_party/astrolabe/src/components/admin/AdminSettings.vue @@ -152,19 +152,21 @@
{{ t('astrolabe', 'Hybrid combines semantic understanding with keyword matching. Semantic finds conceptually similar content. BM25 matches exact keywords.') }}
{{ t('astrolabe', 'Only applies to hybrid search. RRF balances results well for most queries. DBSF may work better when keyword matches are over/under-weighted.') }}
@@ -184,14 +186,13 @@{{ t('astrolabe', 'Maximum number of results to return per search query (5-100).') }}
@@ -276,6 +277,15 @@ const fusionOptions = computed(() => [ { id: 'dbsf', label: t('astrolabe', 'DBSF - Distribution-Based Score Fusion') }, ]) +// Computed properties for NcSelect (converts between stored ID and option object) +const selectedAlgorithmOption = computed(() => + algorithmOptions.value.find(opt => opt.id === settings.value.algorithm) || algorithmOptions.value[0], +) + +const selectedFusionOption = computed(() => + fusionOptions.value.find(opt => opt.id === settings.value.fusion) || fusionOptions.value[0], +) + // Methods async function loadServerStatus() { loading.value = true