Couchbase驱动程序仅按降序排列,不按升序排列

问题描述 投票:1回答: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)

为什么不按升序排序?

go full-text-search couchbase go-couchbase
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.