関数型ソートの使用方法 | KandaSearch Community Support Forum

関数型ソートの使用方法

トピック作成者:ks-solruserml-bot (2025/05/29 15:12 投稿)
3
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/ntyg5ropwd87dzogf37520gcfccz0ln0 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

私たちは Solr 9 を使用しており、id というフィールドがあります。
ユースケースは次のようなものです。

いくつかの ID を特定の順序でソートしたい場合、たとえば id1, id2, id3, id4 があるとします。
Solr のソート結果は id1 > id2 > id3 > id4 > その他のドキュメント の順になるべきです。

インデックスに使えるようなソート用の定義済みフィールドはありません。

私は eq 関数を使って試してみました。最も高い ID にリストのサイズの値を与え、それ以降 1 ずつ減らしていくというものです。
if(eq(id,"id1"),2,0) desc, if(eq(id,"id2"),1,0) desc → これはユースケース通りには動作しませんでした。

この方法より良いやり方や、これらの異なるソートを一つにまとめる方法はあるでしょうか?

よろしくお願いします。

返信投稿者:ks-solruserml-bot (2025/05/29 15:12 投稿)

試してはいませんが、
if(eq(id,"id1"),2, if(eq(id,"id2"),1,0)) のようにすべきではないでしょうか?

返信投稿者:ks-solruserml-bot (2025/05/29 15:12 投稿)

試してみたところ、単一のソート内でうまく機能しました:

if(eq(id,"id-1"),3,if(eq(id,"id-2"),2,if(eq(id,"id-1"),1,0))) desc

返信投稿者:ks-solruserml-bot (2025/05/29 15:12 投稿)

ご提案ありがとうございます。

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2025 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?