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