omote009 / mfc

For Mfc Project
Apache License 2.0
0 stars 0 forks source link

類似アーティスト取得第一版 #6

Open omote009 opened 8 years ago

omote009 commented 8 years ago

これからは、こっちにコメントして。

omote009 commented 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) で得る。

omote009 commented 8 years ago

一度表示したアーティストを除外する使い方。 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());

omote007 commented 8 years ago

●ONE OK ROCK ONE OK ROCK - The Way Back - Japanese Ver. - [Official Music Video]

取得できるようにしてほしい」

omote009 commented 8 years ago

ONE OK ROCK - The Way Back - Japanese Ver. - [Official Music Video] は、正常に処理される。 ただ、いったん、100件の検索結果を取得して、それをチェックしているのだけど、ONE OK ROCKは、Youtubeで取得できる検索結果が多すぎて、その100件からもれてるっぽい。単純に件数を増やすのも考えもんだし、どうしたもんかな?

omote009 commented 8 years ago

ところで、変更して、おすすめアーティストのリストのタイトルを「類似アーティスト」ってしてるみたいだけど、たまに類似というには違和感がある時がある。キャラだけではなくて、同じBOXに登録されている件数で上位にくるからなんだけど。もともと、「このアーティストが好きな人は、この人も気に入る可能性が高い人」を検索する機能なので、タイトルも「これもおすすめ!」とかみたいな感じのほうが良くないかな?っって思った。

omote009 commented 8 years ago

類似アーティスト検索のバグ対応をした。差し替えて。 「ベリーグッドマン」というアーティストを開こうとしたら、致命的エラーが起きた。 調べてみたら、「キャラ」が未登録のアーティストの時にNULL例外が発生するバグがあった。 (SimilarArtistService.java の77行目の「String[] appeals = specifiedArtist.getArtistApeal().split("[,、]");」の部分)

直したソースをアップしたから、SimilarArtistService.java を差し替えて。

omote009 commented 8 years ago

機能強化した。 表示しているアーティスト自身の名前がキャラにはいっている場合に加えて、 表示しているアーティストのキャラに名前がはいっているアーティストを上位にするようにした。 たとえば、ヘンリーヘンリーズのキャラに「クロマニヨンズが好きな人にはいいかも・・」って書いてあったら、 クロマニヨンズを上位にもってくるようにした。

直したソースをアップしたから、SimilarArtistService.java を差し替えて。

omote009 commented 8 years ago

ArtistMrEntryAction.java の91行目の artistMrSessionControlDto.artistCode = keyValue; の下あたりに、 artistMasterService.addEvaluatePointFromView(artistMrSessionControlDto.artistCode); というコードを加えて。 そしたら、閲覧数で人気順にカウントされるようになる。