0

假设我test在 Riak 安装的存储桶中有一个对象,其结构如下:

{
    "animals": {
        "dog": "woof",
        "cat: "miaow",
        "cow": "moo"
    }
}

对该对象执行搜索请求时,搜索结果的结构如下:

{
    "responseHeader": {
        "status": 0,
        "QTime": 3,
        "params": {
            "q": "animals_cow:moo",
            "q.op": "or",
            "filter":"",
            "wt": "json"
        }
    },
    "response": {
        "numFound": 1,
        "start": 0,
        "maxScore": "0.353553",
        "docs": [
            {
                "id": "test",
                "index": "test",
                "fields": {
                    "animals_cat": "miaow",
                    "animals_cow": "moo",
                    "animals_dog": "woof"
                },
                "props": {}
            }
        ]
    }
}

如您所见,对象的存储方式catcowdog键嵌套在animals. 但是,当搜索结果返回时,没有任何键是嵌套的,只是用 . 分隔_

我的问题是: Riak 是否提供了任何方法来“反转格式”搜索,并以正确(嵌套)格式返回对象的字段?这在存储和返回可能包含_.

我确实看到最新版本的Riak(测试版)提供了一个搜索模式,但我似乎看不出我的问题是否会得到回答。

4

1 回答 1

0

您在搜索结果中收到的是对象在通过 json 分析器后的样子。如果您需要不同格式的数据,您可以使用自定义分析器。但是,这只会影响新放的数据。

对于现有数据,您可以使用该id字段并对原始对象发出 get 请求,或使用 solr 查询作为MapReduce 作业的输入。

于 2014-06-09T15:09:05.373 回答