より大きな問題は、solrがこれをサポートできるかどうかです。私は、luceneがこれを実行できることを確認しており、solrはlucene上に構築されています。
どこかでグーグルを使った例を見たことがありますが、それを再び見つけることができないようです。また、luceneのクエリステートメントの記述方法に関するクエリ部分がないと思われるという点で、例は完全ではありませんでした。NumericFieldを見たのを覚えていますが、このNumericComparatorがあります。
基本的に、私はインデックス作成(github上)を提供するnoSQL ormソリューションを試しています(ただし、クライアントはテーブルごとのインデックス数とパーティション分割方法を決定しますが、インデックスにエンティティを追加して自分で削除し、namedQueriesを使用できます。 1つのテーブルに数百万のインデックスがある可能性があるため、クエリの前に最初に名前でインデックスを作成します)。私が達成したい2つの主なことは、すべてがメモリ内のnosql偽のdbとメモリ内のインデックス(luceneのRAMDirectory)で機能することです。次に、それらをcassandraとSOLRのプラグインに切り替えます。
私は基本的にする必要があります
- 整数、浮動小数点数などを格納する方法を理解します。
- ターゲットが文字列、float、intなどの場合にluceneクエリを作成する方法を理解します。
現在、詳細が必要な場合は、プロジェクトのメインクエリコードが https://github.com/deanhiller/nosqlORM/blob/master/input/javasrc/com/alvazan/orm/layer3/spi/index/にあります。 inmemory / MemoryIndexWriter.java
172行目では、毎回新しいフィールドを追加していることがわかりますが、残念ながら、これらの一部はintである可能性があります。
大きな質問:SOLRはintとstringをサポートすることもできますか?(そうでない場合は、int、longなどの前に0をパディングするハックを使用する必要があるため、すべてのintが同じ長さになります)。
SOLRがそれをサポートできる場合、Luceneで最良の方法は何ですか、またはこれの良い例はありますか?
NoSqlEntityManager.getIndex(Class clazz、String indexPartitionName)から取得されたメインのインデックスインターフェイスは(重要かどうかはわかりませんが)です 。https://github.com/deanhiller/nosqlORM/blob/master/input/javasrc/com/alvazan/ orm / api / Index.java
ありがとう、ディーン