Следующая рекомендация использует очень большую базу данных клиентов (миллионы записей) и занимает слишком много времени для загрузки в файл.
public static void main(String[] args) throws Exception {
MysqlDataSource dataSource = new MysqlDataSource ();
dataSource.setServerName("localhost");
dataSource.setUser("root");
dataSource.setPassword("");
dataSource.setDatabaseName("db_recommend");
ReloadFromJDBCDataModel model = new ReloadFromJDBCDataModel(new MySQLBooleanPrefJDBCDataModel(dataSource, "table_recommend", "cust_id","item_id" , null));
UserSimilarity similarity = new LogLikelihoodSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
Recommender recommender = new GenericBooleanPrefUserBasedRecommender(model, neighborhood, similarity);
Recommender cachingrecommender = new CachingRecommender(recommender);
cachingrecommender.refresh(null);
List<RecommendedItem>recommendations = cachingrecommender.recommend(10001, 3);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
Проблема в том, что для выработки рекомендации требуется около двух минут.Это очень медленно, если развертывается в веб-приложении.Любое предложение о том, как заставить его работать быстрее?