traP-jp / qtunes-backend

21 春 ハッカソン 02 班のバックエンドリポジトリ
0 stars 0 forks source link

検索 API がほしい #63

Open SSlime-s opened 3 years ago

SSlime-s commented 3 years ago

DB にのったので

xxarupakaxx commented 3 years ago

やりたい

xxarupakaxx commented 3 years ago

ユーザー名の検索ってdbからusersテーブルのnameカラム持ってくるだけですか? あと曲のタイトルはfileテーブルのtitleのカラムを持ってくるだけですか?

ras0q commented 3 years ago

userテーブルじゃなくてfilesテーブルのcomposer_nameかな userはログインしたユーザーが入ってる(使ってなさそうだけど)

xxarupakaxx commented 3 years ago

今になってプッシュしました:bowing_man:

ras0q commented 3 years ago

@SSlime-s これってユーザー名とタイトル別のエンドポイントで検索するの想定してる?それともusername=hoge or title=hogeみたいな感じ?

ras0q commented 3 years ago

あとワイルドカードつけるなら*と?くらい?

SSlime-s commented 3 years ago

これは2つあって、

  1. ユーザー名の検索 uyne で uynet さんを取るみたいな感じで、ユーザー自体を検索したい
  2. 曲のタイトル検索 ちゃんとした想定はないけど、
    • 最低限 Hyperbolic で Hyperbolic Bloom がとってこれる
    • できたら Hyp*bolic で Hyperbolic Bloom がとってこれる
    • 重い <expr> ::= <term> | '(' + <expr> + ')' | <expr> + '&&' + <expr> | <expr> + '||' + <expr> <term> ::= <factor> | 'username=' + <factor> <factor> ::= 1文字以上の文字列 的なの
SSlime-s commented 3 years ago

個人的には ? 使わないから * だけでもいい気がする

SSlime-s commented 3 years ago

↑↑まぁ現実的には 2. は できたら までかなと思ってる

SSlime-s commented 3 years ago

モチベーションとしては

  1. -> (特にスマホで) 大量のユーザーから特定のユーザーを見つけるのがつらい
  2. -> (スマホに限らず) traQ とかで気になった曲を Qtunes で見つけるのがつらい
SSlime-s commented 3 years ago

ごめんこれうまく伝わってなかったかもしれないけど ユーザー名の検索 は ユーザー自体を検索したい からそれも実装してくれるとたすかる (なんならユーザー名から曲検索するのはいらない気がする) https://github.com/hackathon-21-spring-02/back-end/issues/63#issuecomment-913476530

これは2つあって、

  1. ユーザー名の検索 uyne で uynet さんを取るみたいな感じで、ユーザー自体を検索したい
  2. 曲のタイトル検索 ちゃんとした想定はないけど、
  • 最低限 Hyperbolic で Hyperbolic Bloom がとってこれる
  • できたら Hyp*bolic で Hyperbolic Bloom がとってこれる
  • 重い <expr> ::= <term> | '(' + <expr> + ')' | <expr> + '&&' + <expr> | <expr> + '||' + <expr> <term> ::= <factor> | 'username=' + <factor> <factor> ::= 1文字以上の文字列 的なの
xxarupakaxx commented 3 years ago

エンドポイントは/users/{user_name}

SSlime-s commented 3 years ago

なんでもいいけど query だから user_name ってのは違和感が

xxarupakaxx commented 3 years ago

まちがえた ​/composers​/search​/{composerName}のエンドポイントを作成すればいいのかな

xxarupakaxx commented 3 years ago

@Ras96 どうですか?

ras0q commented 3 years ago

/composers?name=Rasみたいにクエリパラメータ付けるのはどう? /composersとわけたかったらそれでいいと思う

ras0q commented 3 years ago

てかすでに完全一致で探せるエンドポイントはあるけどユーザー名部分一致で検索したい場面ってそんなにある? 忘れててめっちゃ今更だけど

https://github.com/hackathon-21-spring-02/back-end/blob/da91d88bc9a748f8fa2dea777c35d16d631117e9/router/composer.go#L62-L77

SSlime-s commented 3 years ago

takku_bobshiroshiro_titech_trap を僕は手打ちしたくないです

xxarupakaxx commented 3 years ago

ユーザー名の検索って作曲者の検索だよね?そういう外れ値が作曲者としてこれから存在しないと思うと....

SSlime-s commented 3 years ago

別に takku_bobshiroshiro_titech_trap に限らずちょっと長い ID とかを 1字1句間違えずに覚えていないといけないというのがかなり厳しい (liquid[1-9]+ さんとか SolunaEureka とか) だけど入力に対して検索結果を動的に出したいから front-end で絞ったほうがいいかもしれない

xxarupakaxx commented 3 years ago

いったん保留?