アルファベットを優先するソート

トピック作成者:ks-solruserml-bot (2024/06/09 20:46 投稿)
2
CloseClose

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

こんにちは、

結果をアルファベット順に並べた後、数値順に並べる必要があります。
以下のような感じです。

現在の結果の順序:
1test
2test
3test
Abctext
Bbctext
Cbctext

期待される結果の順序:
Abctext
Bbctext
Cbctext
1test
2test
3test

上記のような結果の順序を実現するために、助けてください。
ありがとうございます。

Thamizh

返信投稿者:ks-solruserml-bot (2024/06/09 20:47 投稿)

これは、現代のプログラミング言語で利用できる「自然な」ソート順序すべてに反しています。ASCIIテーブルでは、数字は文字の前に来ます。もしかしたら存在するかもしれませんが、Javaでこれを行う方法については聞いたことがありません。

この結果を達成するためには、カスタムソートコードを書く(または見つける)必要があります。そして、それをSolrに統合する必要がありますが、カスタムソートアルゴリズムを統合する方法は分かりません。

代替として、ユーザーが実際に要求する以上の結果を返し、関連性スコアなどの別の方法でソートし、その後クライアントコード(例えばWebアプリ)で自分でソートするという方法があります。

ありがとうございます、
Shawn

返信投稿者:ks-solruserml-bot (2024/06/09 20:47 投稿)

こんにちは、Thamizhさん

ソート可能なフラグとして機能するフィールドをインデックスに追加することができます。例えば、アルファベットには0、数値には1、その他の最初の文字には2と設定します。その後、両方のフィールドでソートし、「フラグ」フィールドを最初に並べるようにできます。

Thomas

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

KandaSearch

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

投稿の削除

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