Couchbase排序选项

时间:2018-09-21 09:57:54

标签: go couchbase go-gin

我在Gin Framework中使用Go(1.10.3)。我正在连接到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字符串请求,例如sort=amount:asc按我拥有的AmountBase字段对JSON答复进行排序。

但是,这似乎根本不起作用,我只是从sortOps字段开始,但是由于排序字段没有任何作用,所以我添加了sortScore字段。

在排序字段的末尾添加descending(false) / descending(true)似乎也不起作用。

搜索是根据我已加载到存储桶中的数据在FTS索引上进行的。

我不确定自己在做什么错吗?

似乎不能使用降序选项,因为升序查询似乎有效。 :)

0 个答案:

没有答案