-1

inv=0 (0 から 1000 までの可能な値) を持つすべてのドキュメントを結果セットの最後に降格させたいと考えています。クエリの一部として、name desc などの他の並べ替えオプションもあります。

たとえば、以下は私のsolrドキュメントです

Doc1 : name=apple , Inv=2
Doc2 : name=ball , Inv=1
Doc3 : name=cat , Inv=0
Doc4 : name=dog , Inv=0
Doc5 : name=fish , Inv=4
Doc6 : name=Goat , Inv=5

以下のソートを実現したい...ここでは、inv=0 のすべてのドキュメントを下にプッシュしてから、「name asc」ソートを適用します。

Doc1
Doc2
Doc5
Doc6
Doc3
Doc4

私のsolrリクエストは次のようなものです

bq: "( : AND -inv:"0")^999.0" & defType: "edismax"

ここで 999 は、結果を降格するために付けたランクです。

このブースティング クエリは正常に機能します。inv=0 のすべてのドキュメントを一番下に移動します。

しかし、&sort=name asc を solr クエリに追加すると、bq よりも "sort" が優先されます。以下の結果に "name asc" が表示されています。

Doc1 : name=apple , Inv=2
Doc2 : name=ball , Inv=1
Doc3 : name=cat , Inv=0
Doc4 : name=dog , Inv=0
Doc5 : name=fish , Inv=4
Doc6 : name=Goat , Inv=5

誰でも私を助けてください。?

4

1 に答える 1