0

全文検索には Apache SOLR を使用しています。検索結果の並べ替えには特定の要件があります。基本的にデータのクエリを実行する場合、A と B の 2 つのデータ セットが必要ですが、各セットには独自の並べ替え基準が必要であり、2 つの異なる呼び出しを行うことはできません。OR 条件を使用して 2 つのセットを取得できますが、各セットを異なる方法で並べ替えるにはどうすればよいでしょうか。説明すると、次の場合:

セット A = {3,1,2} セット B = {8,5,9}

したがって、予想される応答では、セット A が昇順 {1,2,3} で返される可能性がありますが、セット B は降順 {9,8,5} で返される可能性があります。

SOLR のデフォルトの並べ替えでは、結果セット全体が並べ替えられると思います。提案や質問が明確でない場合は、お知らせください。

4

1 に答える 1

0

FieldCollapsingを使用してこれを達成できる可能性があります

もう少し作業を行う必要があるかもしれません。つまり、Solr がソートする必要のある 1 つのフィールドを認識できるように、表示順序フィールド (整数の場合もあります) を用意します。

次に、次のようなクエリを使用できます-

&q=*&group=true&group.field=set&group.sort=display_order

このようなロジックを Solr から除外することをお勧めします。これは、リレーショナル データベースの代わりになることを意図したものではなく、複雑な SQL のような操作 (一部は可能ですが) を行うのは難しいでしょう。

ところで、Solr の JIRA には、複数のクエリのバッチ処理に対処する未解決の問題があります。つまり、リリースにマージされると、n 個の異なるクエリを起動して、Solr への 1 回の呼び出しでこれらのセットを取得できます。

SOLR にこのタスクを実行してもらいたい場合は、パッチが JIRA カードで利用可能です。自分でビルドを作成して、それがどうなるかをお知らせください:)

于 2013-03-26T02:59:21.283 に答える