1
0

fix(typesense): do not try to sort by position when searching in a saved filter

This change fixes a bug where Typesense would try to sort by the project view of a saved filter. The view position is not indexed in Typesense, hence filtering fails. Because sorting by position is not a feature in saved filters, I've removed the logic for sorting saved filters with Typesense.
This commit is contained in:
kolaente
2024-06-05 10:24:28 +02:00
parent 506ce66434
commit e56b2232bb
3 changed files with 12 additions and 2 deletions

View File

@ -517,7 +517,13 @@ func (t *typesenseTaskSearcher) Search(opts *taskSearchOptions) (tasks []*Task,
}
var sortbyFields []string
for i, param := range opts.sortby {
var usedParams int
for _, param := range opts.sortby {
if opts.isSavedFilter && param.sortBy == taskPropertyPosition {
continue
}
// Validate the params
if err := param.validate(); err != nil {
return nil, totalCount, err
@ -536,11 +542,13 @@ func (t *typesenseTaskSearcher) Search(opts *taskSearchOptions) (tasks []*Task,
sortbyFields = append(sortbyFields, sortBy+"(missing_values:last):"+param.orderBy.String())
if i == 2 {
if usedParams == 2 {
// Typesense supports up to 3 sorting parameters
// https://typesense.org/docs/0.25.0/api/search.html#ranking-and-sorting-parameters
break
}
usedParams++
}
sortby := strings.Join(sortbyFields, ",")