3
からの値が、私はキーとしてstart_ip使用し、値として休むLevelDBでこれらを格納していますフィールドLevelDBキー、CSV
start_ip,end_ip,country,city,lat,long
下回った〜5M行の巨大なCSVファイルのデータベースをしました。
にはどうすればいいのキー
(ip_key > start_ip and ip_key < end_ip)
どれ代替ソリューションのためのレコードを取得することができます。
fuseource(https://github.com/fusesource/leveldbjni)のleveldb-jniバインディングを使用しています。それは論理の問題ではありませんが。キーでipv4/ipv6バイトを使用しており、入力クエリがある範囲に属しているかどうかを調べる必要があります。 –
ああ、まあ、私はC++ライブラリに精通しているだけなので、Javaでそれをどうやって行うのかは分かりませんが、ソースコードを見ています。 DBの 'iterator(...)'メソッドを呼び出して 'DBIterator'を呼び出します。そこから、私はあなたが上記と同じロジックを使用できると仮定します。キーがある範囲に属しているかどうかを調べるには、 'NativeComparator'を使用して、キーが指定された範囲内にあるかどうかをテストします。ありがとうございます。 – Kiril
それはもう一方の方法です。私は入力が属する範囲を探したい。範囲の開始のみをキーとして格納しています。重複範囲がないので、これはうまくいくはずです。 –