1

问题:cbft 只有在给Descending选项一个true值时才会返回给我一个排序的结果,由于某种原因,当给false它没有排序时(似乎是基于updated但不是我正在寻找的字段排序。
这是我的代码:

var (
        qus []cbft.FtsQuery
    )
...

conjunction := cbft.NewConjunctionQuery(qus...)
q := gocb.NewSearchQuery(dd.Config.TrialsSearchIndex, conjunction)
sortBy := cbft.NewSearchSortField("drug_name").Descending(true) // if false does not sort
q.Sort(sortBy)
res, err := dd.Couchbase.TrialsBucket.ExecuteSearchQuery(q)

为什么不按升序排序?

4

1 回答 1

2

事实证明,问题出在解析字段的方式上,如果您需要在文本搜索中使用相同的字段,比如在此处需要解析多个单词,Couchbase 允许在字段上放置自定义分析器只需按字母顺序检索,您将需要在该字段上定义一个别名并为该字段放置一个不同的分析器。在这种情况下,我将分析器设置为“单个”(即将该字段解析为一个单词)并将所有内容过滤为不区分小写字母。基本上为该字段和一个自定义分析器
创建一个别名。您可以在此处阅读有关编写分析器的更多信息: https ://docs.couchbase.com/server/current/fts/fts-using-analyzers.htmlfield_sort 该文档留下了需要的东西,但希望这对某人有所帮助。

于 2020-06-08T15:54:34.487 回答