【问题标题】:Custom unicode sorting order for PouchDB/CouchDB Index (Mango Query)PouchDB/CouchDB 索引的自定义 unicode 排序顺序(Mango 查询)
【发布时间】:2018-03-27 23:21:08
【问题描述】:

我正在使用PouchDB(带有Cloudant 远程数据库)在字典网络应用程序中拥有一个本地数据库。

我需要一个具有自定义普什图字母顺序的索引(使用Arabic unicode letters)。

localdb.find$gte(按字母顺序搜索部分单词)的查询效果不佳,因为普什图字母表中的 Unicode 字符不规则。

是否可以根据Pashto alphabet 为索引创建自定义排序?

Mango Query Language

【问题讨论】:

    标签: sorting unicode couchdb pouchdb couchdb-mango


    【解决方案1】:

    this reference 中提到:

    查看结果最重要的特点是按键排序。

    假设您有一个由文档组成的数据库,每个文档中都有一个 unicodeString 字段。因此示例文档如下所示:

    {
        "_id":"2018-01-30-18-04-11",
        "_rev":"AE19EBC7654",
    
        "title":"Hello elephant",
        "unicodeString":"שלום פיל",
    }
    

    现在您可以拥有一个带有地图功能的 CouchDB 视图,如下所示:

    function(doc) {
        emit(doc.unicodeString, doc.title); // doc.unicodeString is key
                                            // doc.title         is value
    }
    

    以上视图根据其key(即doc.unicodeString)对数据库中的所有文档进行排序。因此,如果您使用上述视图,您的所有文档都将根据您在文档中的 Unicode 字符串进行排序。


    如果您在数据库中有 3 个文档,当您查询上述视图时,您会收到这样的响应结果,其中 rows 数组根据 key 在每个 row 中排序:

    {
        "total_rows": 3,
        "offset": 0,
        "rows": [
            {
                "key": "ארץ",
                "id": "2017-09-01-09-05-11",
                "value": "Earth"
            },
    
            {
                "key": "בין",
                "id": "2015-01-19-11-30-28",
                "value": "between"
            },
    
            {
                "key": "שלום פיל",
                "id": "2018-01-30-18-04-11",
                "value": "Hello elephant"
            }
    
        ]
    }
    

    【讨论】:

    • 感谢您的回复,但我的问题是关于如何为 unicode 字符串/键创建自定义排序顺序。我仍然需要根据稀有字母创建自定义排序顺序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2011-12-15
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2019-06-26
    • 2015-05-12
    相关资源
    最近更新 更多