org.apache.mahout.cf.taste.impl.model.jdbc
Class SQL92BooleanPrefJDBCDataModel

java.lang.Object
  extended by org.apache.mahout.cf.taste.impl.common.jdbc.AbstractJDBCComponent
      extended by org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
          extended by org.apache.mahout.cf.taste.impl.model.jdbc.AbstractBooleanPrefJDBCDataModel
              extended by org.apache.mahout.cf.taste.impl.model.jdbc.SQL92BooleanPrefJDBCDataModel
All Implemented Interfaces:
Serializable, Refreshable, DataModel, JDBCDataModel
Direct Known Subclasses:
PostgreSQLBooleanPrefJDBCDataModel

public class SQL92BooleanPrefJDBCDataModel
extends AbstractBooleanPrefJDBCDataModel

See also SQL92JDBCDataModel -- same except deals with a table without preference info:

 CREATE TABLE taste_preferences (
   user_id BIGINT NOT NULL,
   item_id BIGINT NOT NULL,
   PRIMARY KEY (user_id, item_id)
 );
 CREATE INDEX taste_preferences_user_id_index ON taste_preferences (user_id);
 CREATE INDEX taste_preferences_item_id_index ON taste_preferences (item_id);
 

See Also:
SQL92JDBCDataModel, Serialized Form

Field Summary
 
Fields inherited from class org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
DEFAULT_ITEM_ID_COLUMN, DEFAULT_PREFERENCE_COLUMN, DEFAULT_PREFERENCE_TABLE, DEFAULT_PREFERENCE_TIME_COLUMN, DEFAULT_USER_ID_COLUMN
 
Fields inherited from class org.apache.mahout.cf.taste.impl.common.jdbc.AbstractJDBCComponent
DEFAULT_DATASOURCE_NAME
 
Constructor Summary
SQL92BooleanPrefJDBCDataModel()
           Creates a using the default DataSource (named AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME and default table/column names.
SQL92BooleanPrefJDBCDataModel(DataSource dataSource)
           Creates a using the given DataSource and default table/column names.
SQL92BooleanPrefJDBCDataModel(DataSource dataSource, String preferenceTable, String userIDColumn, String itemIDColumn, String timestampColumn)
           Creates a using the given DataSource and default table/column names.
SQL92BooleanPrefJDBCDataModel(String dataSourceName)
           Creates a using the default DataSource found under the given name, and using default table/column names.
 
Method Summary
protected  String getVerifyPreferenceSQL()
           
 void setPreference(long userID, long itemID, float value)
          Override since PostgreSQL doesn't have the same non-standard capability that MySQL has, to optionally ignore an insert that fails since the row exists already.
 
Methods inherited from class org.apache.mahout.cf.taste.impl.model.jdbc.AbstractBooleanPrefJDBCDataModel
buildPreference, getMaxPreference, getMinPreference, hasPreferenceValues
 
Methods inherited from class org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
doGetPreferencesForItem, exportWithIDsOnly, exportWithPrefs, getDataSource, getItemIDColumn, getItemIDs, getItemIDsFromUser, getLongColumn, getNumItems, getNumUsers, getNumUsersWithPreferenceFor, getNumUsersWithPreferenceFor, getPreferenceColumn, getPreferencesForItem, getPreferencesFromUser, getPreferenceTable, getPreferenceTime, getPreferenceValue, getUserIDColumn, getUserIDs, refresh, removePreference, setLongParameter
 
Methods inherited from class org.apache.mahout.cf.taste.impl.common.jdbc.AbstractJDBCComponent
checkNotNullAndLog, checkNotNullAndLog, getFetchSize, lookupDataSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SQL92BooleanPrefJDBCDataModel

public SQL92BooleanPrefJDBCDataModel()
                              throws TasteException

Creates a using the default DataSource (named AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME and default table/column names.

Throws:
TasteException - if DataSource can't be found

SQL92BooleanPrefJDBCDataModel

public SQL92BooleanPrefJDBCDataModel(String dataSourceName)
                              throws TasteException

Creates a using the default DataSource found under the given name, and using default table/column names.

Parameters:
dataSourceName - name of DataSource to look up
Throws:
TasteException - if DataSource can't be found

SQL92BooleanPrefJDBCDataModel

public SQL92BooleanPrefJDBCDataModel(DataSource dataSource)

Creates a using the given DataSource and default table/column names.

Parameters:
dataSource - DataSource to use

SQL92BooleanPrefJDBCDataModel

public SQL92BooleanPrefJDBCDataModel(DataSource dataSource,
                                     String preferenceTable,
                                     String userIDColumn,
                                     String itemIDColumn,
                                     String timestampColumn)

Creates a using the given DataSource and default table/column names.

Parameters:
dataSource - DataSource to use
preferenceTable - name of table containing preference data
userIDColumn - user ID column name
itemIDColumn - item ID column name
timestampColumn - timestamp column name (may be null)
Method Detail

getVerifyPreferenceSQL

protected String getVerifyPreferenceSQL()

setPreference

public void setPreference(long userID,
                          long itemID,
                          float value)
                   throws TasteException
Override since PostgreSQL doesn't have the same non-standard capability that MySQL has, to optionally ignore an insert that fails since the row exists already.

Specified by:
setPreference in interface DataModel
Overrides:
setPreference in class AbstractBooleanPrefJDBCDataModel
Throws:
TasteException


Copyright © 2008–2014 The Apache Software Foundation. All rights reserved.