0

testRiak インストールのバケットに、次の構造を持つオブジェクトがあるとします。

{
    "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 に答える