Author: srowen
Date: Sun Jun 26 08:09:25 2011
New Revision: 1139728

URL: http://svn.apache.org/viewvc?rev=1139728&view=rev
Log:
MAHOUT-740 SQL92 implementation for similarities

Added:
    
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCInMemoryItemSimilarity.java
      - copied, changed from r1138659, 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java
    
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCItemSimilarity.java
      - copied, changed from r1138659, 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java
Modified:
    
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java
    
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java

Modified: 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java?rev=1139728&r1=1139727&r2=1139728&view=diff
==============================================================================
--- 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java
 (original)
+++ 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java
 Sun Jun 26 08:09:25 2011
@@ -18,30 +18,20 @@
 package org.apache.mahout.cf.taste.impl.similarity.jdbc;
 
 import org.apache.mahout.cf.taste.common.TasteException;
-import org.apache.mahout.cf.taste.impl.common.jdbc.AbstractJDBCComponent;
 
 import javax.sql.DataSource;
 
-public class MySQLJDBCInMemoryItemSimilarity extends 
AbstractJDBCInMemoryItemSimilarity {
-
-  static final String DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL =
-      "SELECT " + AbstractJDBCItemSimilarity.DEFAULT_ITEM_A_ID_COLUMN + ", "
-      + AbstractJDBCItemSimilarity.DEFAULT_ITEM_B_ID_COLUMN + ", "
-      + AbstractJDBCItemSimilarity.DEFAULT_SIMILARITY_COLUMN + " FROM "
-      + AbstractJDBCItemSimilarity.DEFAULT_SIMILARITY_TABLE;
-
+public class MySQLJDBCInMemoryItemSimilarity extends 
SQL92JDBCInMemoryItemSimilarity {
 
   public MySQLJDBCInMemoryItemSimilarity() throws TasteException {
-    
this(AbstractJDBCComponent.lookupDataSource(AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME),
-        DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL);
   }
 
   public MySQLJDBCInMemoryItemSimilarity(String dataSourceName) throws 
TasteException {
-    this(AbstractJDBCComponent.lookupDataSource(dataSourceName), 
DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL);
+    super(dataSourceName);
   }
 
   public MySQLJDBCInMemoryItemSimilarity(DataSource dataSource) {
-    this(dataSource, DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL);
+    super(dataSource);
   }
 
   public MySQLJDBCInMemoryItemSimilarity(DataSource dataSource, String 
getAllItemSimilaritiesSQL) {
@@ -53,4 +43,5 @@ public class MySQLJDBCInMemoryItemSimila
     // Need to return this for MySQL Connector/J to make it use streaming mode
     return Integer.MIN_VALUE;
   }
+
 }

Modified: 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java?rev=1139728&r1=1139727&r2=1139728&view=diff
==============================================================================
--- 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java
 (original)
+++ 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java
 Sun Jun 26 08:09:25 2011
@@ -73,37 +73,25 @@ import org.apache.mahout.cf.taste.common
  * @see 
org.apache.mahout.cf.taste.impl.recommender.slopeone.jdbc.MySQLJDBCDiffStorage
  * @see org.apache.mahout.cf.taste.impl.model.jdbc.MySQLJDBCDataModel
  */
-public final class MySQLJDBCItemSimilarity extends AbstractJDBCItemSimilarity {
-  
+public class MySQLJDBCItemSimilarity extends SQL92JDBCItemSimilarity {
+
   public MySQLJDBCItemSimilarity() throws TasteException {
-    this(DEFAULT_DATASOURCE_NAME);
   }
-  
+
   public MySQLJDBCItemSimilarity(String dataSourceName) throws TasteException {
-    this(lookupDataSource(dataSourceName));
+    super(dataSourceName);
   }
-  
+
   public MySQLJDBCItemSimilarity(DataSource dataSource) {
-    this(dataSource,
-         DEFAULT_SIMILARITY_TABLE,
-         DEFAULT_ITEM_A_ID_COLUMN,
-         DEFAULT_ITEM_B_ID_COLUMN,
-         DEFAULT_SIMILARITY_COLUMN);
+    super(dataSource);
   }
-  
+
   public MySQLJDBCItemSimilarity(DataSource dataSource,
                                  String similarityTable,
                                  String itemAIDColumn,
                                  String itemBIDColumn,
                                  String similarityColumn) {
-    super(dataSource,
-          similarityTable,
-          itemAIDColumn,
-          itemBIDColumn, similarityColumn,
-          "SELECT " + similarityColumn + " FROM " + similarityTable + " WHERE "
-              + itemAIDColumn + "=? AND " + itemBIDColumn + "=?",
-          "SELECT " + itemAIDColumn + ", " + itemBIDColumn + " FROM " + 
similarityTable + " WHERE "
-              + itemAIDColumn + "=? OR " + itemBIDColumn + "=?");
+    super(dataSource, similarityTable, itemAIDColumn, itemBIDColumn, 
similarityColumn);
   }
   
   @Override

Copied: 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCInMemoryItemSimilarity.java
 (from r1138659, 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java)
URL: 
http://svn.apache.org/viewvc/mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCInMemoryItemSimilarity.java?p2=mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCInMemoryItemSimilarity.java&p1=mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java&r1=1138659&r2=1139728&rev=1139728&view=diff
==============================================================================
--- 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCInMemoryItemSimilarity.java
 (original)
+++ 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCInMemoryItemSimilarity.java
 Sun Jun 26 08:09:25 2011
@@ -22,7 +22,7 @@ import org.apache.mahout.cf.taste.impl.c
 
 import javax.sql.DataSource;
 
-public class MySQLJDBCInMemoryItemSimilarity extends 
AbstractJDBCInMemoryItemSimilarity {
+public class SQL92JDBCInMemoryItemSimilarity extends 
AbstractJDBCInMemoryItemSimilarity {
 
   static final String DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL =
       "SELECT " + AbstractJDBCItemSimilarity.DEFAULT_ITEM_A_ID_COLUMN + ", "
@@ -31,26 +31,21 @@ public class MySQLJDBCInMemoryItemSimila
       + AbstractJDBCItemSimilarity.DEFAULT_SIMILARITY_TABLE;
 
 
-  public MySQLJDBCInMemoryItemSimilarity() throws TasteException {
+  public SQL92JDBCInMemoryItemSimilarity() throws TasteException {
     
this(AbstractJDBCComponent.lookupDataSource(AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME),
-        DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL);
+         DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL);
   }
 
-  public MySQLJDBCInMemoryItemSimilarity(String dataSourceName) throws 
TasteException {
+  public SQL92JDBCInMemoryItemSimilarity(String dataSourceName) throws 
TasteException {
     this(AbstractJDBCComponent.lookupDataSource(dataSourceName), 
DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL);
   }
 
-  public MySQLJDBCInMemoryItemSimilarity(DataSource dataSource) {
+  public SQL92JDBCInMemoryItemSimilarity(DataSource dataSource) {
     this(dataSource, DEFAULT_GET_ALL_ITEMSIMILARITIES_SQL);
   }
 
-  public MySQLJDBCInMemoryItemSimilarity(DataSource dataSource, String 
getAllItemSimilaritiesSQL) {
+  public SQL92JDBCInMemoryItemSimilarity(DataSource dataSource, String 
getAllItemSimilaritiesSQL) {
     super(dataSource, getAllItemSimilaritiesSQL);
   }
 
-  @Override
-  protected int getFetchSize() {
-    // Need to return this for MySQL Connector/J to make it use streaming mode
-    return Integer.MIN_VALUE;
-  }
 }

Copied: 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCItemSimilarity.java
 (from r1138659, 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java)
URL: 
http://svn.apache.org/viewvc/mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCItemSimilarity.java?p2=mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCItemSimilarity.java&p1=mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java&r1=1138659&r2=1139728&rev=1139728&view=diff
==============================================================================
--- 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/MySQLJDBCItemSimilarity.java
 (original)
+++ 
mahout/trunk/integration/src/main/java/org/apache/mahout/cf/taste/impl/similarity/jdbc/SQL92JDBCItemSimilarity.java
 Sun Jun 26 08:09:25 2011
@@ -17,81 +17,29 @@
 
 package org.apache.mahout.cf.taste.impl.similarity.jdbc;
 
+import org.apache.mahout.cf.taste.common.TasteException;
+
 import javax.sql.DataSource;
 
-import org.apache.mahout.cf.taste.common.TasteException;
+public class SQL92JDBCItemSimilarity extends AbstractJDBCItemSimilarity {
 
-/**
- * <p>
- * An {@link org.apache.mahout.cf.taste.similarity.ItemSimilarity} backed by a 
MySQL database
- * and accessed via JDBC. It may work with other JDBC
- * databases. By default, this class assumes that there is a {@link 
DataSource} available under the JNDI name
- * "jdbc/taste", which gives access to a database with a 
"taste_item_similarity" table with the following
- * schema:
- * </p>
- * 
- * <table>
- * <tr>
- * <th>item_id_a</th>
- * <th>item_id_b</th>
- * <th>similarity</th>
- * </tr>
- * <tr>
- * <td>ABC</td>
- * <td>DEF</td>
- * <td>0.9</td>
- * </tr>
- * <tr>
- * <td>DEF</td>
- * <td>EFG</td>
- * <td>0.1</td>
- * </tr>
- * </table>
- * 
- * <p>
- * For example, the following command sets up a suitable table in MySQL, 
complete with primary key and
- * indexes:
- * </p>
- * 
- * <p>
- * 
- * <pre>
- * CREATE TABLE taste_item_similarity (
- *   item_id_a BIGINT NOT NULL,
- *   item_id_b BIGINT NOT NULL,
- *   similarity FLOAT NOT NULL,
- *   PRIMARY KEY (item_id_a, item_id_b),
- * )
- * </pre>
- * 
- * </p>
- * 
- * <p>
- * Note that for each row, item_id_a should be less than item_id_b. It is 
redundant to store it both ways,
- * so the pair is always stored as a pair with the lesser one first.
- * 
- * @see 
org.apache.mahout.cf.taste.impl.recommender.slopeone.jdbc.MySQLJDBCDiffStorage
- * @see org.apache.mahout.cf.taste.impl.model.jdbc.MySQLJDBCDataModel
- */
-public final class MySQLJDBCItemSimilarity extends AbstractJDBCItemSimilarity {
-  
-  public MySQLJDBCItemSimilarity() throws TasteException {
+  public SQL92JDBCItemSimilarity() throws TasteException {
     this(DEFAULT_DATASOURCE_NAME);
   }
-  
-  public MySQLJDBCItemSimilarity(String dataSourceName) throws TasteException {
+
+  public SQL92JDBCItemSimilarity(String dataSourceName) throws TasteException {
     this(lookupDataSource(dataSourceName));
   }
-  
-  public MySQLJDBCItemSimilarity(DataSource dataSource) {
+
+  public SQL92JDBCItemSimilarity(DataSource dataSource) {
     this(dataSource,
          DEFAULT_SIMILARITY_TABLE,
          DEFAULT_ITEM_A_ID_COLUMN,
          DEFAULT_ITEM_B_ID_COLUMN,
          DEFAULT_SIMILARITY_COLUMN);
   }
-  
-  public MySQLJDBCItemSimilarity(DataSource dataSource,
+
+  public SQL92JDBCItemSimilarity(DataSource dataSource,
                                  String similarityTable,
                                  String itemAIDColumn,
                                  String itemBIDColumn,
@@ -105,11 +53,5 @@ public final class MySQLJDBCItemSimilari
           "SELECT " + itemAIDColumn + ", " + itemBIDColumn + " FROM " + 
similarityTable + " WHERE "
               + itemAIDColumn + "=? OR " + itemBIDColumn + "=?");
   }
-  
-  @Override
-  protected int getFetchSize() {
-    // Need to return this for MySQL Connector/J to make it use streaming mode
-    return Integer.MIN_VALUE;
-  }
-  
+
 }
\ No newline at end of file


Reply via email to