Open omote009 opened 8 years ago
類似アーティスト検索機能をアップした。 結構、結果がいい感じにはなったので。
使い方は以下の通り。
<宣言>
@Resource
protected SimilarArtistService similarArtistService;
<使い方>
XXXXXXXXXXはアーティストコード。
List<String> artistList = similarArtistService.getListSimilarArtist("XXXXXXXXXX");
または
List<String> artistList = similarArtistService.getListSimilarArtist("XXXXXXXXXX",30);
アーティストコードだけ指定したら、上位10件のアーティストのリストを返す。
数字を指定したら、その件数分のアーティストのリストを返す。
トップを取得するには、artistList.get(0)
で得る。
一度表示したアーティストを除外する使い方。 XXXXXXXXXXはアーティストコード。 <準備> AbstractActionに以下の定義を追加する。
@Resource
public ExclusionArtistListDto exclusionArtistListDto;
<表示したアーティストコードの追加>
exclusionArtistListDto.addExclusionArtistList("XXXXXXXXXX");
こうするとセッション(クッキー)にアーティストコードのリストが追加される。
<追加したアーティストコードを除く類似アーティストリストを取得する>
10件取得する。
List<String> artistList = similarArtistService.getListSimilarArtist("XXXXXXXXXX",exclusionArtistListDto.getExclusionArtistList());
100件取得する。
List<String> artistList = similarArtistService.getListSimilarArtist("XXXXXXXXXX",100,exclusionArtistListDto.getExclusionArtistList());
●ONE OK ROCK ONE OK ROCK - The Way Back - Japanese Ver. - [Official Music Video]
取得できるようにしてほしい」
ONE OK ROCK - The Way Back - Japanese Ver. - [Official Music Video] は、正常に処理される。 ただ、いったん、100件の検索結果を取得して、それをチェックしているのだけど、ONE OK ROCKは、Youtubeで取得できる検索結果が多すぎて、その100件からもれてるっぽい。単純に件数を増やすのも考えもんだし、どうしたもんかな?
ところで、変更して、おすすめアーティストのリストのタイトルを「類似アーティスト」ってしてるみたいだけど、たまに類似というには違和感がある時がある。キャラだけではなくて、同じBOXに登録されている件数で上位にくるからなんだけど。もともと、「このアーティストが好きな人は、この人も気に入る可能性が高い人」を検索する機能なので、タイトルも「これもおすすめ!」とかみたいな感じのほうが良くないかな?っって思った。
類似アーティスト検索のバグ対応をした。差し替えて。
「ベリーグッドマン」というアーティストを開こうとしたら、致命的エラーが起きた。
調べてみたら、「キャラ」が未登録のアーティストの時にNULL例外が発生するバグがあった。
(SimilarArtistService.java
の77行目の「String[] appeals = specifiedArtist.getArtistApeal().split("[,、]");
」の部分)
直したソースをアップしたから、SimilarArtistService.java を差し替えて。
機能強化した。 表示しているアーティスト自身の名前がキャラにはいっている場合に加えて、 表示しているアーティストのキャラに名前がはいっているアーティストを上位にするようにした。 たとえば、ヘンリーヘンリーズのキャラに「クロマニヨンズが好きな人にはいいかも・・」って書いてあったら、 クロマニヨンズを上位にもってくるようにした。
直したソースをアップしたから、SimilarArtistService.java を差し替えて。
ArtistMrEntryAction.java の91行目の artistMrSessionControlDto.artistCode = keyValue; の下あたりに、 artistMasterService.addEvaluatePointFromView(artistMrSessionControlDto.artistCode); というコードを加えて。 そしたら、閲覧数で人気順にカウントされるようになる。
これからは、こっちにコメントして。