今、私はいくつかの比較を行う必要があり、結果のフィルタリングを行う必要がありますが、これは非常に簡単ではありません。私が欲しいのはLucenes検索のようなものですが、それを開発するのは私だけです.Luceneを使っていたとしても、それは私の決定ではありません. .
私がすることは次のとおりです。
- 特定のフィールドの完全な単語一致に従って要素を検索し、そうでない場合は、それで始まるかどうかを確認し、それが含まれているかどうかを確認します。
- すべてのフィールドには、一致するケース (full->begins->contains) と優先順位に従って重みがあります。
- 1 つが一致した後、他のフィールドの重みもチェックして、最終的な合計行の重みを作成します。
- 次に、行とその重みの両方のマップを返します。
これは、休止状態の HQL では簡単に実行できないことに気付きました。つまり、これを行うには複数のクエリを実行する必要があります。
したがって、私の質問は、すべてのレコードを取得してターゲットを見つけるために計算を行う必要があることを意味する Java で実行する必要があるか、または複数のクエリを実行して休止状態で実行する必要があるかということです。性能と速度でどっちがいい?