Solrインデックスへの追加がどのように機能するかを理解し、正しい方向に向かっていることを確認しようとしています。
データセットには約40000個のNetCDFファイルが含まれており、それぞれ平均で250KB程度です。ファイルごとに、メタデータとデータのサブセットにインデックスを付ける必要があります。
{
'metadata' :
{
'file' : [id, date, ...],
'identifiers' : [[a, b, c, ...]]
},
'data' :
[[idx, time, lat, lon, a, b, c, ...]]
}
いくつかのクエリ文字列を使用してデータサブセットWebサービスを呼び出し、すべてのデータをフィルタリングしてjsonオブジェクト(上記のスキーマを使用)を生成するPythonスクリプトを作成しました。これは単一のファイル用です。すべてがここでチェックアウトされます(ただし、より高速になる可能性があります)。
私の計画は、このjsonオブジェクトをスクリプトから直接Solrに送信することでしたが、ここでいくつか懸念事項があります。
--〜160KBのjsonファイルを作成しました。私はメモリを意識する必要があるので、疑問に思っていました... solrが機能するために、このjsonオブジェクトをファイル内に置いておく必要がありますか?jsonファイルを生成し、インデックスを付けてからファイルを削除するとどうなりますか?
--Pythonスクリプト内からドキュメントを追加できますか?有望に見えるライブラリをいくつか見ました。また、ドキュメントから、それをsolrurlに送信する方法を思い出します。jsonファイルを保存する必要がある場合、solrのpostコマンドをシステムコールして、後でファイルを削除できますか?
インデックスに必要なのは、元のNetCDFファイルへのURLを提供することだけです。エンドユーザーは、インデックスを使用して関連情報を収集できます。
これは合理的に聞こえますか?パフォーマンスの提案はありますか?
インデックス作成方法に関係なく、JSONファイルを保持する必要はありません。データのインデックスを再作成する場合を除いて、スペースを解放することはできます。Solrは、スキーマに定義されているように、すべてのデータを内部に格納します。スキーマを固定している場合は、solrに格納するすべてのフィールドと、インデックスを作成するすべてのフィールドをスキーマに定義します。すべてのフィールドを保存済みフィールドとして定義すると、ソースデータがなくてもいつでもインデックスを再作成できます。これがサンプルフィールド宣言です。詳しくはお問い合わせください。リンク
<field name="firstname" type="string" indexed="true" stored="true" multivalued="false"/>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加