レコードをランク付けするという考えにかなり取り組んだ後、私は最終的にドキュメントの数値ベースのスコアに落ち着きました。これは、これらのスコアに基づいてソートするために発行するものです。
これらの数字には意味があり、最初の 2 桁が特定のタイプのドキュメントを表します。
したがって、スコアに基づいてソートされたタイプ 22 のドキュメントを取得するには、開始キーが 220000 で終了キーが 229999 のビューをクエリするだけです。
これはすべてうまく機能します。URLの書き換えを使用しようとすると問題が発生します。
私は基本的にルートを変更しようとしています:
/_rewrite/rankings/{doctype}
に
/_list/rankings?startkey=xx0000&endkeyxx9999
xx は {doctype} です
私の問題は、書き換えルールを指定することです:
[
{ "from":"rankings/:doctype",
"to":"_list/rankings",
"query": ??? //what will this be?
]
それぞれ 0000 と 9999 を追加して開始キーと終了キーを作成するにはどうすればよいですか?
数値を指定するにはどうすればよいですか? プレースホルダー ":doctype" を使用すると、数値型ではなく文字列型になるため、きれいな URL を変更して開始キーと終了キーの両方を入力したとしても、クエリが失敗します。
リストビューで結果をフィルタリングすることで問題を回避しました(getRow()から興味のないドキュメントを無視します)。
私のソート戦略についても自由にコメントしてください..他の人がcouchdbでソートとスライスの問題をどのように解決したか知りたいです