Oracle9iAS Personalization Recommendation Engine API Programmer's Guide Release 9.0.1 Part Number A87536-01 |
|
This appendix contains ProxyTest.java
, a sample Java program that illustrates using REAPI. You can find the source code for this example in TBS
${ORACLE_HOME}/dmt/reapi/rt/
on the system where Oracle9iAS is installed.
// Copyright (c) 2001 Oracle Corp /////////////////////////////////////////////////////////////////////// // // Test program exercises the functionality of // REAPI. // // Step 1 creates a unique session ID // Step 2 creates a proxy instance // Step 3 creates a session // Step 4 creates settings data (IdentificationData, TuningSettings, // FilteringSettings, hotPick list, item list) // Step 5 gets recomendations and ratings // Step 6 closes session // Step 7 destroys the proxy and flushes data cache //////////////////////////////////////////////////////////////////////// import java.math.BigDecimal; import java.lang.Long; import java.sql.*; import java.io.IOException; import java.io.StringWriter; import java.io.PrintWriter; import oracle.jdeveloper.cm.CMException; import oracle.dmt.op.re.reapi.rt.*; import oracle.dmt.op.re.reapi.batch.*; import oracle.dmt.op.re.reexception.*; import oracle.dmt.op.re.base.*; import oracle.dmt.oputil.exceptions.MessageLogException; import oracle.dmt.oputil.exceptions.StringTooLongException; /** * Class ProxyTest * <P> * @author Oracle Corporation */ public class ProxyTest { static boolean bVerbose; static final String SESSIONEXISTS = ""; /** * Constructor */ public ProxyTest() { } /** * main * @param args */ public static void main(String[] args) throws ClassNotFoundException { long lStart; long lTotal = 0; String sProxyName = "REP1"; String sdbURL = "jdbc:oracle:thin:@server-name:1521:darw900"; // sdbURL must be correct for your installation String sUser = "RE01"; String sPass = "REPW"; int cSize = 3000; // Kbytes int interval = 10000; // in millisec new ProxyTest(); REProxyRT proxy; // Step 1: Create a unique Session ID. String custID = "1"; java.util.Date tmp = new java.util.Date(); Long tmpInt = new Long(tmp.getTime()); String sessionID = tmpInt.toString(); String trace = null; lStart = System.currentTimeMillis(); try { // Step 2: Get a proxy instance. if ((proxy = REProxyManager.getProxy(sProxyName)) == null) proxy = REProxyManager.createProxy(sProxyName, sdbURL, sUser, sPass, cSize, interval); // Step 3: create OP session proxy.createCustomerSession(custID, sessionID); // Step 4: create settings data IdentificationData idData = IdentificationData.createSessionful( sessionID, Enum.User.CUSTOMER); TuningSettings tunings = new TuningSettings( Enum.DataSource.NAVIGATION, Enum.InterestDimension.NAVIGATION, Enum.PersonalizationIndex.HIGH, Enum.ProfileDataBalance.BALANCED, Enum.ProfileUsage.EXCLUDE); long[] hotPickGroups = {1,2,3,4,5,6,7,10,11}; long[] m_catList = {1,2,3,4,5}; FilteringSettings filters = new FilteringSettings(1); int taxonomy=1; filters.setItemFiltering( taxonomy, m_catList); RecommendationContent recContent = new RecommendationContent(Enum.Sorting.ASCENDING); try{ //Create list of items for testing DataItem[] items = new DataItem[4]; items[0] = new DataItem( "MOVIE", 72, Enum.DataSource.RATING, "1.5"); items[1] = new DataItem( "MOVIE", 287, Enum.DataSource.RATING, "1.5"); items[2] = new DataItem( "MOVIE", 122, Enum.DataSource.RATING, "1.5"); items[3] = new DataItem( "MOVIE", 1300, Enum.DataSource.RATING, "1.5"); int count = 1; // Step 5: Get recomendations and ratings and print them out. // Note use of toString. try{ System.out.println("\n################ " + count++ + " ################"); //Call recommendBottonItems RecommendationList es1 = proxy.recommendBottomItems( idData, 10, tunings, filters, recContent); System.out.println(""); es1.toString(); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); //Call rateItems RecommendationList es2 = proxy.rateItems( idData, items, 1, tunings, recContent); System.out.println(""); System.out.println(es2.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); //call selectFromHotPicks RecommendationList es3 = proxy.selectFromHotPicks( idData, 10, hotPickGroups, tunings, filters, recContent); System.out.println(""); System.out.println(""); System.out.println(es3.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); //Call crossSellForItemFromHotPicks RecommendationList es4 = proxy.crossSellForItemFromHotPicks( idData, items[0], 10, hotPickGroups, tunings, filters, recContent); System.out.println(""); System.out.println(es4.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); //Call recommendCrossSellForItem RecommendationList es5 = proxy.recommendCrossSellForItem( idData, items[0], 10, tunings, filters, recContent); System.out.println(""); System.out.println(es5.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); RecommendationList es6 = proxy.recommendCrossSellForItems( idData, items, 10, tunings, filters, recContent); System.out.println(""); System.out.println(es6.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); RecommendationList es7 = proxy.crossSellForItemsFromHotPicks( idData, items, 10, hotPickGroups, tunings, filters, recContent); System.out.println(""); System.out.println(es7.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); float es9 = proxy.rateItem( idData, items[2], 1, tunings, recContent ); System.out.println(""); System.out.println("Result for recomend item: " + es9); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); RecommendationList es10 = proxy.recommendFromHotPicks( idData, 10, hotPickGroups, tunings, filters, recContent); System.out.println(""); System.out.println(es10.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } try{ System.out.println("\n################ " + count++ + " ################"); RecommendationList es11 = proxy.recommendTopItems( idData, 10, tunings, filters, recContent); System.out.println(""); System.out.println(es11.toString()); } catch(ErrorExecutingRE e) { e.printStackTrace(); } } catch(BadDBConnectionException bdbe) { bdbe.printStackTrace(); }catch (ClassNotFoundException exc) { exc.printStackTrace(); } // Step 6: Close session proxy.closeSession(idData); // Step 7: Call destroy proxy (will flush data cache) REProxyManager.destroyProxy(sProxyName); } catch (ErrorExecutingRE se) { System.err.println(se); } catch (InvalidIDException iie) { System.err.println(iie); } catch(BadDBConnectionException bdbe) { bdbe.printStackTrace(); } catch (Exception e) { System.err.println(e); e.printStackTrace(); } } }
|
Copyright © 2001 Oracle Corporation. All Rights Reserved. |
|