2つの要因に基づいて、apachesolrから取得した結果を並べ替える必要があります。
私たちのシステムには、solr(グループ、プロジェクト、データセット)によってインデックス付けされた3つのエンティティがあり、結果では、最初にデータセットを表示し、次にプロジェクト、次にグループを表示します。しかし、それでも各タイプのスコア値を尊重したいと思います。
したがって、たとえば:結果は次のようになります
- スコア0.325のデータセット
- 0.282のスコアを持つデータセット
- 0.200のスコアのデータセット
- スコア0.298のプロジェクト
- 0.186のスコアを持つプロジェクト
- スコアが0.360のグループ
- 0.270のスコアを持つグループ
私はこれをJavaで実行し、 solrjを使用してsolrクエリを作成しています。問題は、SolrQueryオブジェクトに2つの並べ替えフィールドを追加しようとすると、そのうちの1つしか使用していないように見えることです。また、Solrドキュメントにはエンティティの種類を示すものはありませんが、ドキュメントのIDの前にエンティティ名が付いているので、それを使用することを計画していました。
私がこれをどのように達成できるかについて誰かが何かアイデアを持っているなら、私はこれにしばらく立ち往生しているので、それは大いにありがたいです!
よろしくお願いします、-ジェイク。