新しいプロジェクトに取り組んでおり、ファイル データベース (CouchDB など) に格納できる逆インデックスを開発する必要があります。Ruby 1.8.7 でコーディングしています。
これは、転置インデックスの形式です。
{
"en": {
"#linux": {
"re": 144,
"patch": 142,
"1": 55,
"to": 53
},
"#something": {
"word": 20
}
},
"fr": {},
"es": {}
}
CouchDB のようなものを使用して、次のような一連のチェックでエントリを作成できる方法が必要です。
- 2 番目のハッシュ キー (つまり
#linux
) が作成されていない場合は、作成します。 - 3 番目のハッシュ キー (つまり
patch
) が作成されていない場合は、作成してその値を1
- 同じ単語が再び出現するたびに、
['en']['#linux']
または変数が何であれ、繰り返し、カウント (最も右の値) を 1 ずつ増やします。
私は基本的なハッシュを使用するだけで問題を解決しましたが、スクリプトを約 1TB 以上のテキストを処理するように設定した場合、これらをメモリに保持してもあまりうまくいきません。
選択された回答
選択した回答は、これに最適です。唯一の違いは、構文のわずかな変更であり、次のように機能します。
@db.collection.update({"_id" => lang}, {"$inc" => {"#{tag}.#{word}" => 1}}, { :upsert => true })