fix(backend): より多くの人に使われているハッシュタグが検索結果上位に来るように (#11498) #13318
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
このPRではIssue #11498 を解決します。
/api/hashtags/search
でのハッシュタグの検索において、mentionedLocalUsersCount
の降順ソートを行うようにしました。Why
/api/hashtags/search
は投稿するノートのテキストを編集しているときに、ハッシュタグのサジェスト候補を取得するために使われるAPIです。現在のMisskeyではこの候補は正しい並び替えがされていないため、あまり使われていないハッシュタグがサジェスト候補上位に来てしまうというUX上の問題があります。このPRでは、結果として得られるハッシュタグの配列が、そのハッシュタグを使用したローカルユーザーの数が多いものから順番に並ぶように変更しました。これにより上記の問題が解決します。
Additional info (optional)
これまでのコードには
count
というカラムで降順ソートをするように書かれていましたが、そのようなカラムは存在しないはずです。この変更により、たくさんのハッシュタグがデータベースに登録されているような大規模なサーバーではパフォーマンスが問題になるかもしれません。(ただ、目当てのハッシュタグがサジェストされるまでにかかるAPI呼び出し回数は多くのシチュエーションで減るはずです。)
MiHashtag
にはmentionedLocalUsersCount
の他にmentionedUsersCount
(ローカル・リモート問わずそのハッシュタグを使用したユーザーの数)やmentionedRemoteUsersCount
(リモートユーザーのみ)といったカラムもあり、そちらで並び替えることもできますが、とりあえずローカルユーザーの数で並び替えるようにしてみました。Checklist