1

ソート済みセットを使用して Redis でインデックスを作成しています。一致する結果には次の順序が必要です (小さい文字列が最初)。

a
ar
art
artu
artur
arturo

Redisのドキュメントから、スコアを使用してデータを保存します。

要素は、最高スコアから最低スコアの順に並べられていると見なされます。

これを達成するために私が書いたコードには魔法の数 1000 がありますが、これは任意の数であり、保存しなければならない最大の文字列よりも十分に大きくなります (また、正確な最大文字列の長さはわかりませんが、私は.確かに1000未満です)

Hash[
  'elem'  => string
  'score' => 1000 - string.size
]

このマジックナンバーをどのように削除しますか?

4

1 に答える 1

2

スコアは正である必要がありますか? そうでない場合:

'score' => -string.size

基本的に、これは 1000 を 0 に置き換えています。0 は、魔法と見なされずに使用できる数字の 1 つです。

于 2013-07-10T10:27:03.703 に答える