2016-07-06 25 views
0

私が知る限りSolrBigDecimalsのサポートを持っていません。 だから私は "数字"の代わりに "文字列"を格納すると思った。 問題は、範囲クエリが 全文を数字として扱わないということです。 "10 TO 1"SOLR:文字列を含む数値範囲クエリ

だから私の範囲クエリ が原因 文字列の順序付けの{10、1}のようなものを返します - > 1、10、2、3、4、5、6,7、8私は 何とかSolrのがアナライザー か何かを通じて数としてテキストを扱う作ることができれば、9

私は、思っていました。

おかげで、

+0

これで、myField:[0.111 TO 1.646]のような範囲クエリを実行しようとしていますか? – TMBT

答えて

1

は、すべての文字列と同じサイズになって、あなたは0で、文字列の前に付けストレージ用に別のフィールドを作成します。これはdecimal(x、2)の定義と同じです。ここでは、各パーツに必要な精度(ポイントの前と後ろ)が求められます。

もう1つの方法は、長い値(64ビット)を使用して、値を2^53の範囲内に収めることができる限り、再度検索するときに100(または必要な精度)で除算することです。

これらのフィールドは両方とも、インデックスを作成して保存する必要はありません(既存のフィールドのメタバージョンであるため、範囲の検索にのみ使用されます)。

関連する問題