Improve Search Performance and Result Quality

This commit is contained in:
snoutie committed 2025-04-11 14:55:52 +02:00
1 parent 642f1d61d2
commit 3e59d043a7
11 files changed
+187 -77

No files matched your search

+25 -15
View File
@@ -19,6 +19,7 @@ package model
import (
"api-cds-search/cmd/database/table"
"encoding/base64"
"fmt"
"strings"
@@ -35,24 +36,14 @@ type CDSViewFieldModel struct {
type CDSViewModel struct {
*table.CDSView
StateTitle string
Fields *[]CDSViewFieldModel
StateTitle string
TechnicalNameEncoded string
NumberOfFields int
}
var englishCases = cases.Title(language.English)
func GetCDSViewModel(TechnicalName string) (*CDSViewModel, error) {
var model CDSViewModel
cdsView, err := table.GetCDSView(TechnicalName)
if err != nil {
return nil, err
}
model.CDSView = cdsView
model.StateTitle = englishCases.String(model.State)
func GetCDSViewModelFields(TechnicalName string) (*[]CDSViewFieldModel, error) {
fields, err := table.GetCDSViewFields(TechnicalName)
if err != nil {
return nil, err
@@ -71,7 +62,26 @@ func GetCDSViewModel(TechnicalName string) (*CDSViewModel, error) {
fieldsModel = append(fieldsModel, fieldModel)
}
model.Fields = &fieldsModel
return &fieldsModel, nil
}
func GetCDSViewModel(TechnicalName string) (*CDSViewModel, error) {
var model CDSViewModel
cdsView, err := table.GetCDSView(TechnicalName)
if err != nil {
return nil, err
}
model.CDSView = cdsView
model.StateTitle = englishCases.String(model.State)
model.TechnicalNameEncoded = strings.Replace(base64.StdEncoding.EncodeToString([]byte(model.TechnicalName)), "=", "", -1)
model.NumberOfFields, err = table.GetCDSViewNumberOfFields(TechnicalName)
if err != nil {
return nil, err
}
return &model, nil
}
+13 -4
View File
@@ -21,17 +21,26 @@ type ResultsModel struct {
SearchTerm string
CurrentPage int
MaxPage int
Views []CDSViewModel
Views []ResultView
}
type ResultView struct {
CDSViewModel
Score float32
}
type ResultsModelBuffer struct {
Views []CDSViewModel
Views []ResultView
}
func NewResultsModel() *ResultsModel {
return &ResultsModel{}
}
func (r *ResultsModel) AppendResultsModelViews(cdsView *CDSViewModel) {
r.Views = append(r.Views, *cdsView)
func (r *ResultsModel) AppendResultsModelViews(cdsView *CDSViewModel, score float32) {
resultView := ResultView{
CDSViewModel: *cdsView,
Score: score,
}
r.Views = append(r.Views, resultView)
}