Improve Search Performance and Result Quality
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user