学习
package com.abc.def;
import java.io.IOException;
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.model.jdbc.ReloadFromJDBCDataModel;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.similarity.LogLikelihoodSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.model.JDBCDataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
import com.ibm.taste.example.movie.recommender.BooleanMovieDataModel;
public final class MovieRecommenderSingleton {
private final UserNeighborhood neighborhood;
private static MovieRecommenderSingleton instance;
private ReloadFromJDBCDataModel rfjdm;
private ReloadFromJDBCIdImgurl rfjii;
public ReloadFromJDBCIdImgurl getRfjii() {
return rfjii;
}
public static synchronized MovieRecommenderSingleton getInstance()
{
return instance;
}
public static synchronized void initialize() throws TasteException, IOException
{
if( instance == null )
{
instance = new MovieRecommenderSingleton();
}
}
private MovieRecommenderSingleton() throws TasteException, IOException
{
//reload from jdbc data model
UserSimilarity userSimilarity;
DataModel model = new BooleanMovieDataModel();
rfjdm = new ReloadFromJDBCDataModel((JDBCDataModel) model);
userSimilarity = new LogLikelihoodSimilarity(rfjdm);
neighborhood = new NearestNUserNeighborhood(20, userSimilarity, rfjdm);
//reload from jdbc id imgurl
rfjii = new ReloadFromJDBCIdImgurl("192.168.3.84", "movie", "111111", "mymovie", "id_imgurl" );
}
/**
* @return the neighborhood
*/
public UserNeighborhood getNeighborhood() {
return neighborhood;
}
public void refresh()
{
neighborhood.refresh( null );
//rfjdm.refresh(null);
rfjii.refresh();
}
}