public final class CachingUserSimilarity extends Object implements UserSimilarity
UserSimilarity
implementation.Constructor and Description |
---|
CachingUserSimilarity(UserSimilarity similarity,
DataModel dataModel)
Creates this on top of the given
UserSimilarity . |
CachingUserSimilarity(UserSimilarity similarity,
int maxCacheSize)
Creates this on top of the given
UserSimilarity . |
Modifier and Type | Method and Description |
---|---|
void |
clearCacheForUser(long userID) |
void |
refresh(Collection<Refreshable> alreadyRefreshed)
Triggers "refresh" -- whatever that means -- of the implementation.
|
void |
setPreferenceInferrer(PreferenceInferrer inferrer)
Attaches a
PreferenceInferrer to the UserSimilarity implementation. |
double |
userSimilarity(long userID1,
long userID2)
Returns the degree of similarity, of two users, based on the their preferences.
|
public CachingUserSimilarity(UserSimilarity similarity, DataModel dataModel) throws TasteException
UserSimilarity
.
The cache is sized according to properties of the given DataModel
.TasteException
public CachingUserSimilarity(UserSimilarity similarity, int maxCacheSize)
UserSimilarity
.
The cache size is capped by the given size.public double userSimilarity(long userID1, long userID2) throws TasteException
UserSimilarity
Returns the degree of similarity, of two users, based on the their preferences.
userSimilarity
in interface UserSimilarity
userID1
- first user IDuserID2
- second user IDDouble.NaN
similarity is unknownNoSuchUserException
- if either user is known to be non-existent in the dataTasteException
- if an error occurs while accessing the datapublic void setPreferenceInferrer(PreferenceInferrer inferrer)
UserSimilarity
Attaches a PreferenceInferrer
to the UserSimilarity
implementation.
setPreferenceInferrer
in interface UserSimilarity
inferrer
- PreferenceInferrer
public void clearCacheForUser(long userID)
public void refresh(Collection<Refreshable> alreadyRefreshed)
Refreshable
Triggers "refresh" -- whatever that means -- of the implementation. The general contract is that any
Refreshable
should always leave itself in a consistent, operational state, and that the refresh
atomically updates internal state from old to new.
refresh
in interface Refreshable
alreadyRefreshed
- Refreshable
s that are known to have already been
refreshed as a result of an initial call to a {#refresh(Collection)} method on some
object. This ensure that objects in a refresh dependency graph aren't refreshed twice
needlessly.Copyright © 2008–2017 The Apache Software Foundation. All rights reserved.