From 0aef48f3bc8ef7e78c5f15f05c054a3643aa875f Mon Sep 17 00:00:00 2001 From: emeric Date: Fri, 19 Apr 2019 13:01:57 +0200 Subject: [PATCH] Fallback on the cluster similarity searcher if no song is classified --- src/similarity/SimilaritySearcher.cpp | 4 +++- src/similarity/features/SimilarityFeaturesSearcher.cpp | 6 ++++++ src/similarity/features/SimilarityFeaturesSearcher.hpp | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/similarity/SimilaritySearcher.cpp b/src/similarity/SimilaritySearcher.cpp index 190fc89a..20e183f1 100644 --- a/src/similarity/SimilaritySearcher.cpp +++ b/src/similarity/SimilaritySearcher.cpp @@ -45,7 +45,9 @@ Searcher::getSimilarTracks(Wt::Dbo::Session& session, const std::setisTrackClassified(trackId); } ))) { return somSearcher->getSimilarTracks(trackIds, maxCount); } diff --git a/src/similarity/features/SimilarityFeaturesSearcher.cpp b/src/similarity/features/SimilarityFeaturesSearcher.cpp index 02479a5a..67ef6486 100644 --- a/src/similarity/features/SimilarityFeaturesSearcher.cpp +++ b/src/similarity/features/SimilarityFeaturesSearcher.cpp @@ -221,6 +221,12 @@ FeaturesSearcher::isValid() const return _network.get() != nullptr; } +bool +FeaturesSearcher::isTrackClassified(Database::IdType trackId) const +{ + return (_trackPositions.find(trackId) != _trackPositions.end()); +} + bool FeaturesSearcher::isReleaseClassified(Database::IdType releaseId) const { diff --git a/src/similarity/features/SimilarityFeaturesSearcher.hpp b/src/similarity/features/SimilarityFeaturesSearcher.hpp index b311cf98..386f3496 100644 --- a/src/similarity/features/SimilarityFeaturesSearcher.hpp +++ b/src/similarity/features/SimilarityFeaturesSearcher.hpp @@ -43,8 +43,9 @@ class FeaturesSearcher bool isValid() const; + bool isTrackClassified(Database::IdType trackId) const; bool isReleaseClassified(Database::IdType releaseId) const; - bool isArtistClassified(Database::IdType releaseId) const; + bool isArtistClassified(Database::IdType artistId) const; std::vector getSimilarTracks(const std::set& tracksId, std::size_t maxCount) const; std::vector getSimilarReleases(Database::IdType releaseId, std::size_t maxCount) const;