"反向格式化" Riak搜索结果

时间:2014-06-08 19:15:09

标签: riak riak-search

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

{
    "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 (beta release)的最新版本提供了搜索架构,但我似乎无法看到我的问题是否会得到解答。

1 个答案:

答案 0 :(得分:0)

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

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