You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sr...@apache.org on 2012/02/07 21:25:04 UTC
svn commit: r1241597 -
/mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/model/mongodb/MongoDBDataModel.java
Author: srowen
Date: Tue Feb 7 20:25:04 2012
New Revision: 1241597
URL: http://svn.apache.org/viewvc?rev=1241597&view=rev
Log:
MAHOUT-965 Add ability to specify mapping collection
Modified:
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/model/mongodb/MongoDBDataModel.java
Modified: mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/model/mongodb/MongoDBDataModel.java
URL: http://svn.apache.org/viewvc/mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/model/mongodb/MongoDBDataModel.java?rev=1241597&r1=1241596&r2=1241597&view=diff
==============================================================================
--- mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/model/mongodb/MongoDBDataModel.java (original)
+++ mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/model/mongodb/MongoDBDataModel.java Tue Feb 7 20:25:04 2012
@@ -156,7 +156,7 @@ public final class MongoDBDataModel impl
private static final DateFormat DEFAULT_DATE_FORMAT =
new SimpleDateFormat("EE MMM dd yyyy HH:mm:ss 'GMT'Z (zzz)", Locale.ENGLISH);
- private static final String MONGO_MAP_COLLECTION = "mongo_data_model_map";
+ public static final String DEFAULT_MONGO_MAP_COLLECTION = "mongo_data_model_map";
private static final Pattern ID_PATTERN = Pattern.compile("[a-f0-9]{24}");
@@ -177,6 +177,8 @@ public final class MongoDBDataModel impl
private String mongoPassword = DEFAULT_MONGO_PASSWORD;
/** MongoDB table/collection */
private String mongoCollection = DEFAULT_MONGO_COLLECTION;
+ /** MongoDB mapping table/collection */
+ private String mongoMapCollection = DEFAULT_MONGO_MAP_COLLECTION;
/**
* MongoDB update flag. When this flag is activated, the
* DataModel updates both model and database
@@ -263,7 +265,8 @@ public final class MongoDBDataModel impl
DateFormat format,
String userIDField,
String itemIDField,
- String preferenceField) throws UnknownHostException, MongoException {
+ String preferenceField,
+ String mappingCollection) throws UnknownHostException, MongoException {
mongoHost = host;
mongoPort = port;
mongoDB = database;
@@ -274,6 +277,7 @@ public final class MongoDBDataModel impl
mongoUserID = userIDField;
mongoItemID = itemIDField;
mongoPreference = preferenceField;
+ mongoMapCollection = mappingCollection;
this.reloadLock = new ReentrantLock();
buildModel();
}
@@ -315,7 +319,6 @@ public final class MongoDBDataModel impl
* (with authentication)
*
* @throws UnknownHostException if the database host cannot be resolved
- * @see #MongoDBDataModel(String, int, String, String, boolean, boolean, DateFormat, String, String, String)
* @see #MongoDBDataModel(String, int, String, String, boolean, boolean, DateFormat, String, String)
*/
public MongoDBDataModel(String host,
@@ -329,7 +332,8 @@ public final class MongoDBDataModel impl
String password,
String userIDField,
String itemIDField,
- String preferenceField) throws UnknownHostException, MongoException {
+ String preferenceField,
+ String mappingCollection) throws UnknownHostException, MongoException {
mongoHost = host;
mongoPort = port;
mongoDB = database;
@@ -343,6 +347,7 @@ public final class MongoDBDataModel impl
mongoUserID = userIDField;
mongoItemID = itemIDField;
mongoPreference = preferenceField;
+ mongoMapCollection = mappingCollection;
this.reloadLock = new ReentrantLock();
buildModel();
}
@@ -551,7 +556,7 @@ public final class MongoDBDataModel impl
FastByIDMap<Collection<Preference>> userIDPrefMap = new FastByIDMap<Collection<Preference>>();
if (!mongoAuth || (mongoAuth && db.authenticate(mongoUsername, mongoPassword.toCharArray()))) {
collection = db.getCollection(mongoCollection);
- collectionMap = db.getCollection(MONGO_MAP_COLLECTION);
+ collectionMap = db.getCollection(mongoMapCollection);
DBObject indexObj = new BasicDBObject();
indexObj.put("element_id", 1);
collectionMap.ensureIndex(indexObj);
@@ -776,6 +781,13 @@ public final class MongoDBDataModel impl
}
}
+ /**
+ * Cleanup mapping collection.
+ */
+ public void cleanupMappingCollection() {
+ collectionMap.drop();
+ }
+
@Override
public LongPrimitiveIterator getUserIDs() throws TasteException {
return delegate.getUserIDs();