Варианты сортировки Couchbase - PullRequest
       17

Варианты сортировки Couchbase

0 голосов
/ 21 сентября 2018

Я использую Go (1.10.3) с Gin Framework.Я подключаюсь к базе данных Couchbase (5.1.1), но у меня возникают некоторые проблемы с сортировкой данных.

Так что это код, с которым я сейчас работаю,

 //Build Search Sort
 func searchSort(c *gin.Context) (cbft.SearchSortField, *cbft.SearchSortScore, string) {
    mapData := getQuery(c)
    sortData := mapData["sort"]

    var sortType string
    var sortScore *cbft.SearchSortScore
    var sortOps *cbft.SearchSortField

    if sortData == "amount:asc" {
      fmt.Println( sortData )

      sortType = "asc"
      sortScore = cbft.NewSearchSortScore().Descending(false)
      sortOps = cbft.NewSearchSortField("AmountBase").Descending(false)
    }

   if sortData == "amount:desc" {
      fmt.Println( sortData )

      sortType = "desc"
      sortScore = cbft.NewSearchSortScore().Descending(true)
      sortOps = cbft.NewSearchSortField("AmountBase").Descending(true)

   }
   return sortOps, sortScore
}

Который я загружаю в запрос следующим образом:

 sortOpsOne, sortOpsTwo := searchSort(c)

 ftSearch := gocb.NewSearchQuery("Search", searchOps).Sort(sortOpsOne).Sort(sortOpsTwo).Limit(size).Skip(from)

. Чтобы объяснить, вышеизложенное загружает запрос get string, например, sort=amount:asc, чтобы отсортировать ответ JSON по полю AmountBase, которое у меня есть.

Однако, похоже, это не работает вообще, я начал с поля sortOps, но добавил поле sortScore, так как поле сортировки ничего не делало.

Добавление descending(false) / descending(true) в конец поля сортировки, похоже, тоже ничего не делает.

Поиск выполняется по индексу FTS на основе данных, которые я загрузил в свойbucket.

Я не уверен, что я делаю неправильно?

Кажется, что не работает с опциями по убыванию, кажется, что работает восходящий запрос.:)

...