1

Ubuntu Natty に Riak 1.0.2 をインストールしました。

また、いくつかのサンプル データをデータベースに追加しました。セカンダリ インデックス機能をテストしたいので、LevelDB バックエンドを使用しています。

test_1バケツを追加しました。そして、そのバケットに次の情報を追加しました。

array("name" => "Ray_6", "age" => rand(25, 90), "email" => "addr_6@orbican.com") with key "id_1"
array("name" => "Ray_7", "age" => rand(25, 90), "email" => "addr_7@orbican.com") with key "id_2"
array("name" => "Ray_8", "age" => rand(25, 90), "email" => "addr_8@orbican.com") with key "id_3"

検索機能を使用してこのデータをクエリしようとしています。以下は、コマンド ラインに入力する CURL 要求です。

curl http://localhost:8098/solr/test_1/select?q=name:Ray_6

しかし、これを行うと、見つからないというエラーが発生します。

足りないものはありますか?バケットを検索可能にするために何かをする必要がありますか?

助けていただければ幸いです。

前もって感謝します。

4

1 に答える 1

2

まず、上記の URL は Riak Search を使用しており、セカンダリ インデックスは使用していません。セカンダリ インデックスをクエリする URL は次の形式です。

/buckets/<bucket>/index/<fieldname_bin>/query

cURL インターフェイスを介してレコードを作成するときに、メタデータ ヘッダーを追加することにより、セカンダリ インデックスを形成します。これは、さまざまな言語のクライアント ライブラリによって生成されます。

ただし、特定の質問に戻ります。search-cmd ツールを使用して test_1 バケットのインデックスをインストールしましたか? もしそうなら、そうする前にバケットにデータがありましたか? Riak Search は、データをさかのぼってインデックスに登録することはありません。これを行うにはいくつかの方法がありますが、これが単なる実験的なアプリである場合、どちらも時間がかかります.

データが少ない場合は、インデックスを設定した後に再入力することをお勧めします。それ以外の場合は、データの読み取り/書き込み時に、セカンダリ インデックスを追加するか、検索 API を介して処理する必要があります。時間はかかりますが、Riak を通じて現在利用できるものです。

お役に立てれば。

于 2012-01-25T18:25:05.447 に答える