http://git-wip-us.apache.org/repos/asf/predictionio-site/blob/6e02047e/templates/similarproduct/quickstart/index.html
----------------------------------------------------------------------
diff --git a/templates/similarproduct/quickstart/index.html
b/templates/similarproduct/quickstart/index.html
index 0b06678..aa2ab2c 100644
--- a/templates/similarproduct/quickstart/index.html
+++ b/templates/similarproduct/quickstart/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html><head><title>Quick Start - Similar Product Engine
Template</title><meta charset="utf-8"/><meta content="IE=edge,chrome=1"
http-equiv="X-UA-Compatible"/><meta name="viewport"
content="width=device-width, initial-scale=1.0"/><meta class="swiftype"
name="title" data-type="string" content="Quick Start - Similar Product Engine
Template"/><link rel="canonical"
href="https://predictionio.apache.org/templates/similarproduct/quickstart/"/><link
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
rel="stylesheet"/><link
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css"
rel="stylesheet"/><link href="/stylesheets/application-eccfc6cb.css"
rel="stylesheet" type="text/css"/><script
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5sh
iv.min.js"></script><script
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><script
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async:
true });}catch(e){}</script></head><body><div id="global"><header><div
class="container" id="header-wrapper"><div class="row"><div
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a
href="#"></a><a href="http://predictionio.apache.org/"><img alt="Apache
PredictionIO" id="logo"
src="/images/logos/logo-ee2b9bb3.png"/></a><span>®</span></div><div
id="menu-wrapper"><div id="pill-wrapper"><a class="pill left"
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right"
href="//github.com/apache/predictionio/">OPEN SOURCE</a></div></div><img
class="mobile-search-bar-toggler hidden-md hidden-lg"
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div
id="search-bar-row-wrapper"><div class="container-fluid"
id="search-bar-row"><div clas
s="row"><div class="col-md-9 col-sm-11 col-xs-11"><div class="hidden-md
hidden-lg" id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Quick
Start - Similar Product Engine Template</h4></div><h4 class="hidden-sm
hidden-xs">PredictionIO Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1
hidden-md hidden-lg"><img id="left-menu-indicator"
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm"
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img
src="/images/icons/search-glass-704bd4ff.png"/><input type="text"
id="st-search-input" class="st-search-input" placeholder="Search
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg"
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div
class="mobile-left-menu-toggler hidden-md
hidden-lg"></div></div></div></div><div id
="page" class="container-fluid"><div class="row"><div id="left-menu-wrapper"
class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a
class="expandible" href="/"><span>Apache PredictionIO®
Documentation</span></a><ul><li class="level-2"><a class="final"
href="/"><span>Welcome to Apache PredictionIO®</span></a></li></ul></li><li
class="level-1"><a class="expandible" href="#"><span>Getting
Started</span></a><ul><li class="level-2"><a class="final"
href="/start/"><span>A Quick Intro</span></a></li><li class="level-2"><a
class="final" href="/install/"><span>Installing Apache
PredictionIO</span></a></li><li class="level-2"><a class="final"
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your
First Engine</span></a></li><li class="level-2"><a class="final"
href="/start/customize/"><span>Customizing the
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" href
="#"><span>Integrating with Your App</span></a><ul><li class="level-2"><a
class="final" href="/appintegration/"><span>App Integration
Overview</span></a></li><li class="level-2"><a class="expandible"
href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a
class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li
class="level-3"><a class="final" href="/sdk/php/"><span>PHP
SDK</span></a></li><li class="level-3"><a class="final"
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web
Service</span></a></li><li class="level-2"><a class="final"
href="/batchpredict/"><span>Batch Predictions<
/span></a></li><li class="level-2"><a class="final"
href="/deploy/monitoring/"><span>Monitoring Engine</span></a></li><li
class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting
Engine Parameters</span></a></li><li class="level-2"><a class="final"
href="/deploy/enginevariants/"><span>Deploying Multiple Engine
Variants</span></a></li><li class="level-2"><a class="final"
href="/deploy/plugin/"><span>Engine Server Plugin</span></a></li></ul></li><li
class="level-1"><a class="expandible" href="#"><span>Customizing an
Engine</span></a><ul><li class="level-2"><a class="final"
href="/customize/"><span>Learning DASE</span></a></li><li class="level-2"><a
class="final" href="/customize/dase/"><span>Implement DASE</span></a></li><li
class="level-2"><a class="final"
href="/customize/troubleshooting/"><span>Troubleshooting Engine
Development</span></a></li><li class="level-2"><a class="final"
href="/api/current/#package"><span>Engine Scala
APIs</span></a></li></ul></li><li cl
ass="level-1"><a class="expandible" href="#"><span>Collecting and Analyzing
Data</span></a><ul><li class="level-2"><a class="final"
href="/datacollection/"><span>Event Server Overview</span></a></li><li
class="level-2"><a class="final"
href="/datacollection/eventapi/"><span>Collecting Data with
REST/SDKs</span></a></li><li class="level-2"><a class="final"
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li
class="level-2"><a class="final"
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with
Webhooks</span></a></li><li class="level-2"><a class="final"
href="/datacollection/channel/"><span>Channel</span></a></li><li
class="level-2"><a class="final"
href="/datacollection/batchimport/"><span>Importing Data in
Batch</span></a></li><li class="level-2"><a class="final"
href="/datacollection/analytics/"><span>Using Analytics
Tools</span></a></li><li class="level-2"><a class="final"
href="/datacollection/plugin/"><span>Event Server Plugin</span></a><
/li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>Choosing an Algorithm</span></a><ul><li class="level-2"><a
class="final" href="/algorithm/"><span>Built-in Algorithm
Libraries</span></a></li><li class="level-2"><a class="final"
href="/algorithm/switch/"><span>Switching to Another
Algorithm</span></a></li><li class="level-2"><a class="final"
href="/algorithm/multiple/"><span>Combining Multiple
Algorithms</span></a></li><li class="level-2"><a class="final"
href="/algorithm/custom/"><span>Adding Your Own
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>Tuning and Evaluation</span></a><ul><li class="level-2"><a
class="final" href="/evaluation/"><span>Overview</span></a></li><li
class="level-2"><a class="final"
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li
class="level-2"><a class="final"
href="/evaluation/evaluationdashboard/"><span>Evaluation
Dashboard</span></a></li><li class="level-2"><
a class="final" href="/evaluation/metricchoose/"><span>Choosing Evaluation
Metrics</span></a></li><li class="level-2"><a class="final"
href="/evaluation/metricbuild/"><span>Building Evaluation
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a
class="final" href="/system/"><span>Architecture Overview</span></a></li><li
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using
Another Data Store</span></a></li></ul></li><li class="level-1"><a
class="expandible" href="#"><span>PredictionIO® Official
Templates</span></a><ul><li class="level-2"><a class="final"
href="/templates/"><span>Intro</span></a></li><li class="level-2"><a
class="expandible" href="#"><span>Recommendation</span></a><ul><li
class="level-3"><a class="final"
href="/templates/recommendation/quickstart/"><span>Quick
Start</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/
dase/"><span>DASE</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/evaluation/"><span>Evaluation
Explained</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/how-to/"><span>How-To</span></a></li><li
class="level-3"><a class="final"
href="/templates/recommendation/reading-custom-events/"><span>Read Custom
Events</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/customize-data-prep/"><span>Customize Data
Preparator</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/customize-serving/"><span>Customize
Serving</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/training-with-implicit-preference/"><span>Train
with Implicit Preference</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/blacklist-items/"><span>Filter Recommended
Items by Blacklist in Query</span></a></li><li class="level-3"><a
class="final" href="/templates/recommendation/batch-evaluator/"><span>Batch
Persistable Evaluator</span></a></li></ul></li><li class="level-2"><a
class="expandible" href="#"><span>E-Commerce Recommendation</span></a><ul><li
class="level-3"><a class="final"
href="/templates/ecommercerecommendation/quickstart/"><span>Quick
Start</span></a></li><li class="level-3"><a class="final"
href="/templates/ecommercerecommendation/dase/"><span>DASE</span></a></li><li
class="level-3"><a class="final"
href="/templates/ecommercerecommendation/how-to/"><span>How-To</span></a></li><li
class="level-3"><a class="final"
href="/templates/ecommercerecommendation/train-with-rate-event/"><span>Train
with Rate Event</span></a></li><li class="level-3"><a class="final"
href="/templates/ecommercerecommendation/adjust-score/"><span>Adjust
Score</span></a></li></ul></li><li class="level-2"><a class="expandible"
href="#"><span>Similar Product</span></a><ul><li class="level-3"><a
class="final active" href="/templat
es/similarproduct/quickstart/"><span>Quick Start</span></a></li><li
class="level-3"><a class="final"
href="/templates/similarproduct/dase/"><span>DASE</span></a></li><li
class="level-3"><a class="final"
href="/templates/similarproduct/how-to/"><span>How-To</span></a></li><li
class="level-3"><a class="final"
href="/templates/similarproduct/multi-events-multi-algos/"><span>Multiple
Events and Multiple Algorithms</span></a></li><li class="level-3"><a
class="final"
href="/templates/similarproduct/return-item-properties/"><span>Returns Item
Properties</span></a></li><li class="level-3"><a class="final"
href="/templates/similarproduct/train-with-rate-event/"><span>Train with Rate
Event</span></a></li><li class="level-3"><a class="final"
href="/templates/similarproduct/rid-user-set-event/"><span>Get Rid of Events
for Users</span></a></li><li class="level-3"><a class="final"
href="/templates/similarproduct/recommended-user/"><span>Recommend
Users</span></a></li></ul></li><li class="level-2"
><a class="expandible" href="#"><span>Classification</span></a><ul><li
>class="level-3"><a class="final"
>href="/templates/classification/quickstart/"><span>Quick
>Start</span></a></li><li class="level-3"><a class="final"
>href="/templates/classification/dase/"><span>DASE</span></a></li><li
>class="level-3"><a class="final"
>href="/templates/classification/how-to/"><span>How-To</span></a></li><li
>class="level-3"><a class="final"
>href="/templates/classification/add-algorithm/"><span>Use Alternative
>Algorithm</span></a></li><li class="level-3"><a class="final"
>href="/templates/classification/reading-custom-properties/"><span>Read Custom
>Properties</span></a></li></ul></li></ul></li><li class="level-1"><a
>class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li
>class="level-2"><a class="final"
>href="/gallery/template-gallery/"><span>Browse</span></a></li><li
>class="level-2"><a class="final"
>href="/community/submit-template/"><span>Submit your Engine as a
>Template</span></a
></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Demo
>Tutorials</span></a><ul><li class="level-2"><a class="final"
>href="/demo/tapster/"><span>Comics Recommendation Demo</span></a></li><li
>class="level-2"><a class="final" href="/demo/community/"><span>Community
>Contributed Demo</span></a></li><li class="level-2"><a class="final"
>href="/demo/textclassification/"><span>Text Classification Engine
>Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible"
>href="/community/"><span>Getting Involved</span></a><ul><li
>class="level-2"><a class="final"
>href="/community/contribute-code/"><span>Contribute Code</span></a></li><li
>class="level-2"><a class="final"
>href="/community/contribute-documentation/"><span>Contribute
>Documentation</span></a></li><li class="level-2"><a class="final"
>href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li
>class="level-2"><a class="final"
>href="/community/contribute-webhook/"><span>Contribute a Webho
ok</span></a></li><li class="level-2"><a class="final"
href="/community/projects/"><span>Community
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final"
href="/resources/faq/"><span>FAQs</span></a></li><li class="level-2"><a
class="final" href="/support/"><span>Support</span></a></li></ul></li><li
class="level-1"><a class="expandible"
href="#"><span>Resources</span></a><ul><li class="level-2"><a class="final"
href="/cli/"><span>Command-line Interface</span></a></li><li class="level-2"><a
class="final" href="/resources/release/"><span>Release
Cadence</span></a></li><li class="level-2"><a class="final"
href="/resources/intellij/"><span>Developing Engines with IntelliJ
IDEA</span></a></li><li class="level-2"><a class="final"
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li
class="level-2"><a class="final"
href="/resources/glossary/"><span>Glossary</span></a></li>
</ul></li><li class="level-1"><a class="expandible" href="#"><span>Apache
Software Foundation</span></a><ul><li class="level-2"><a class="final"
href="https://www.apache.org/"><span>Apache Homepage</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/licenses/"><span>License</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/foundation/sponsorship.html"><span>Sponsorship</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/foundation/thanks.html"><span>Thanks</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/security/"><span>Security</span></a></li></ul></li></ul></nav></div><div
class="col-md-9 col-sm-12"><div class="content-header hidden-md
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a
href="#">PredictionIO® Official Templates</a><span
class="spacer">></span></li><li><a href="#">Similar Product</a><span
class="spacer">></span></li><l
i><span class="last">Quick Start</span></li></ul></div><div
id="page-title"><h1>Quick Start - Similar Product Engine
Template</h1></div></div><div id="table-of-content-wrapper"><h5>On this
page</h5><aside id="table-of-contents"><ul> <li> <a
href="#overview">Overview</a> </li> <li> <a href="#usage">Usage</a> </li> <li>
<a href="#1-install-and-run-predictionio">1. Install and Run PredictionIO</a>
</li> <li> <a href="#2-create-a-new-engine-from-an-engine-template">2. Create a
new Engine from an Engine Template</a> </li> <li> <a
href="#3-generate-an-app-id-and-access-key">3. Generate an App ID and Access
Key</a> </li> <li> <a href="#4-collecting-data">4. Collecting Data</a> </li>
<li> <a href="#5-deploy-the-engine-as-a-service">5. Deploy the Engine as a
Service</a> </li> <li> <a href="#6-use-the-engine">6. Use the Engine</a> </li>
<li> <a href="#advanced-query">Advanced Query</a> </li> </ul> </aside><hr/><a
id="edit-page-link" href="https://github.com/apache/predictionio/tree/livedoc/do
cs/manual/source/templates/similarproduct/quickstart.html.md.erb"><img
src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs"
class="hidden-sm hidden xs"><ul><li><a href="#">PredictionIO® Official
Templates</a><span class="spacer">></span></li><li><a href="#">Similar
Product</a><span class="spacer">></span></li><li><span class="last">Quick
Start</span></li></ul></div><div id="page-title"><h1>Quick Start - Similar
Product Engine Template</h1></div></div><div class="content"> <h2 id='overview'
class='header-anchors'>Overview</h2><p>This engine template recommends products
that are "similar" to the input product(s). Similarity is not defined
by user or item attributes but by users' previous actions. By default, it
uses 'view' action such that product A and B are considered similar if
most users who view A also view B. The template can be customized to support
other action t
ypes such as buy, rate, like..etc.</p><p>This template is ideal for
recommending products to customers based on their recent actions. Using the IDs
of the recently viewed products of a customer as the <em>Query</em>, the engine
will predict other products that this customer may also like.</p><p>This
approach works perfectly for customers who are <strong>first-time
visitors</strong> or have not signed in. Recommendations are made dynamically
in <em>real-time</em> based on the most recent product preference you provide
in the <em>Query</em>. You can, therefore, recommend products to visitors
without knowing a long history about them.</p><p>You can also use this template
to build the popular feature of Amazon: <strong>"Customers Who Viewed This
Item Also Viewed..."</strong> quickly. Help your customers explore more
products that they like, and sell more products.</p><h2 id='usage'
class='header-anchors'>Usage</h2><h3 id='event-data-requirements'
class='header-anchors'>Event D
ata Requirements</h3><p>By default, this template takes the following data
from Event Server as Training Data:</p> <ul> <li>User <em>$set</em> events</li>
<li>Item <em>$set</em> events with <em>categories</em> properties</li>
<li>Users' <em>view</em> item events</li> </ul> <div class="alert-message
info"><p>This template can easily be customized to consider more user events
such as <em>buy</em>, <em>rate</em> and <em>like</em>. You can offer features
like "Customers Who Bought This Item Also Bought....".</p></div><h3
id='input-query' class='header-anchors'>Input Query</h3> <ul> <li>List of
ItemIDs, which are the targeted products</li> <li>N (number of items to be
recommended)</li> <li>List of white-listed item categories (optional)</li>
<li>List of white-listed ItemIds (optional)</li> <li>List of black-listed
ItemIds (optional)</li> </ul> <p>The template also supports black-list and
white-list. If a white-list is provided, the engine will include only those
products in
the recommendation. Likewise, if a black-list is provided, the engine will
exclude those products in the recommendation.</p><h3
id='output-predictedresult' class='header-anchors'>Output PredictedResult</h3>
<ul> <li>a ranked list of recommended itemIDs</li> </ul> <h2
id='1.-install-and-run-predictionio' class='header-anchors'>1. Install and Run
PredictionIO</h2> <p>First you need to <a href="/install">install PredictionIO
0.12.1</a> (if you haven't done it).</p><p>Let's say you have installed
PredictionIO at <code>/home/yourname/PredictionIO/</code>. For convenience, add
PredictionIO's binary command path to your <code>PATH</code>, i.e.
<code>/home/yourname/PredictionIO/bin</code>:</p><div class="highlight
shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl"
style="text-align: right"><pre class="lineno">1</pre></td><td
class="code"><pre><span class="gp">$ </span><span class="nv">PATH</span><span
class="o">=</span><span class="nv">$PATH</span>:/home/y
ourname/PredictionIO/bin; <span class="nb">export </span>PATH
+<!DOCTYPE html><html><head><title>Quick Start - Similar Product Engine
Template</title><meta charset="utf-8"/><meta content="IE=edge,chrome=1"
http-equiv="X-UA-Compatible"/><meta name="viewport"
content="width=device-width, initial-scale=1.0"/><meta class="swiftype"
name="title" data-type="string" content="Quick Start - Similar Product Engine
Template"/><link rel="canonical"
href="https://predictionio.apache.org/templates/similarproduct/quickstart/"/><link
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
rel="stylesheet"/><link
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css"
rel="stylesheet"/><link href="/stylesheets/application-eccfc6cb.css"
rel="stylesheet" type="text/css"/><script
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5sh
iv.min.js"></script><script
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><script
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async:
true });}catch(e){}</script></head><body><div id="global"><header><div
class="container" id="header-wrapper"><div class="row"><div
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a
href="#"></a><a href="http://predictionio.apache.org/"><img alt="Apache
PredictionIO" id="logo"
src="/images/logos/logo-ee2b9bb3.png"/></a><span>®</span></div><div
id="menu-wrapper"><div id="pill-wrapper"><a class="pill left"
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right"
href="//github.com/apache/predictionio/">OPEN SOURCE</a></div></div><img
class="mobile-search-bar-toggler hidden-md hidden-lg"
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div
id="search-bar-row-wrapper"><div class="container-fluid"
id="search-bar-row"><div clas
s="row"><div class="col-md-9 col-sm-11 col-xs-11"><div class="hidden-md
hidden-lg" id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Quick
Start - Similar Product Engine Template</h4></div><h4 class="hidden-sm
hidden-xs">PredictionIO Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1
hidden-md hidden-lg"><img id="left-menu-indicator"
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm"
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img
src="/images/icons/search-glass-704bd4ff.png"/><input type="text"
id="st-search-input" class="st-search-input" placeholder="Search
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg"
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div
class="mobile-left-menu-toggler hidden-md
hidden-lg"></div></div></div></div><div id
="page" class="container-fluid"><div class="row"><div id="left-menu-wrapper"
class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a
class="expandible" href="/"><span>Apache PredictionIO®
Documentation</span></a><ul><li class="level-2"><a class="final"
href="/"><span>Welcome to Apache PredictionIO®</span></a></li></ul></li><li
class="level-1"><a class="expandible" href="#"><span>Getting
Started</span></a><ul><li class="level-2"><a class="final"
href="/start/"><span>A Quick Intro</span></a></li><li class="level-2"><a
class="final" href="/install/"><span>Installing Apache
PredictionIO</span></a></li><li class="level-2"><a class="final"
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your
First Engine</span></a></li><li class="level-2"><a class="final"
href="/start/customize/"><span>Customizing the
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" href
="#"><span>Integrating with Your App</span></a><ul><li class="level-2"><a
class="final" href="/appintegration/"><span>App Integration
Overview</span></a></li><li class="level-2"><a class="expandible"
href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a
class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li
class="level-3"><a class="final" href="/sdk/php/"><span>PHP
SDK</span></a></li><li class="level-3"><a class="final"
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web
Service</span></a></li><li class="level-2"><a class="final"
href="/batchpredict/"><span>Batch Predictions<
/span></a></li><li class="level-2"><a class="final"
href="/deploy/monitoring/"><span>Monitoring Engine</span></a></li><li
class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting
Engine Parameters</span></a></li><li class="level-2"><a class="final"
href="/deploy/enginevariants/"><span>Deploying Multiple Engine
Variants</span></a></li><li class="level-2"><a class="final"
href="/deploy/plugin/"><span>Engine Server Plugin</span></a></li></ul></li><li
class="level-1"><a class="expandible" href="#"><span>Customizing an
Engine</span></a><ul><li class="level-2"><a class="final"
href="/customize/"><span>Learning DASE</span></a></li><li class="level-2"><a
class="final" href="/customize/dase/"><span>Implement DASE</span></a></li><li
class="level-2"><a class="final"
href="/customize/troubleshooting/"><span>Troubleshooting Engine
Development</span></a></li><li class="level-2"><a class="final"
href="/api/current/#package"><span>Engine Scala
APIs</span></a></li></ul></li><li cl
ass="level-1"><a class="expandible" href="#"><span>Collecting and Analyzing
Data</span></a><ul><li class="level-2"><a class="final"
href="/datacollection/"><span>Event Server Overview</span></a></li><li
class="level-2"><a class="final"
href="/datacollection/eventapi/"><span>Collecting Data with
REST/SDKs</span></a></li><li class="level-2"><a class="final"
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li
class="level-2"><a class="final"
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with
Webhooks</span></a></li><li class="level-2"><a class="final"
href="/datacollection/channel/"><span>Channel</span></a></li><li
class="level-2"><a class="final"
href="/datacollection/batchimport/"><span>Importing Data in
Batch</span></a></li><li class="level-2"><a class="final"
href="/datacollection/analytics/"><span>Using Analytics
Tools</span></a></li><li class="level-2"><a class="final"
href="/datacollection/plugin/"><span>Event Server Plugin</span></a><
/li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>Choosing an Algorithm</span></a><ul><li class="level-2"><a
class="final" href="/algorithm/"><span>Built-in Algorithm
Libraries</span></a></li><li class="level-2"><a class="final"
href="/algorithm/switch/"><span>Switching to Another
Algorithm</span></a></li><li class="level-2"><a class="final"
href="/algorithm/multiple/"><span>Combining Multiple
Algorithms</span></a></li><li class="level-2"><a class="final"
href="/algorithm/custom/"><span>Adding Your Own
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>Tuning and Evaluation</span></a><ul><li class="level-2"><a
class="final" href="/evaluation/"><span>Overview</span></a></li><li
class="level-2"><a class="final"
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li
class="level-2"><a class="final"
href="/evaluation/evaluationdashboard/"><span>Evaluation
Dashboard</span></a></li><li class="level-2"><
a class="final" href="/evaluation/metricchoose/"><span>Choosing Evaluation
Metrics</span></a></li><li class="level-2"><a class="final"
href="/evaluation/metricbuild/"><span>Building Evaluation
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a
class="final" href="/system/"><span>Architecture Overview</span></a></li><li
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using
Another Data Store</span></a></li></ul></li><li class="level-1"><a
class="expandible" href="#"><span>PredictionIO® Official
Templates</span></a><ul><li class="level-2"><a class="final"
href="/templates/"><span>Intro</span></a></li><li class="level-2"><a
class="expandible" href="#"><span>Recommendation</span></a><ul><li
class="level-3"><a class="final"
href="/templates/recommendation/quickstart/"><span>Quick
Start</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/
dase/"><span>DASE</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/evaluation/"><span>Evaluation
Explained</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/how-to/"><span>How-To</span></a></li><li
class="level-3"><a class="final"
href="/templates/recommendation/reading-custom-events/"><span>Read Custom
Events</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/customize-data-prep/"><span>Customize Data
Preparator</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/customize-serving/"><span>Customize
Serving</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/training-with-implicit-preference/"><span>Train
with Implicit Preference</span></a></li><li class="level-3"><a class="final"
href="/templates/recommendation/blacklist-items/"><span>Filter Recommended
Items by Blacklist in Query</span></a></li><li class="level-3"><a
class="final" href="/templates/recommendation/batch-evaluator/"><span>Batch
Persistable Evaluator</span></a></li></ul></li><li class="level-2"><a
class="expandible" href="#"><span>E-Commerce Recommendation</span></a><ul><li
class="level-3"><a class="final"
href="/templates/ecommercerecommendation/quickstart/"><span>Quick
Start</span></a></li><li class="level-3"><a class="final"
href="/templates/ecommercerecommendation/dase/"><span>DASE</span></a></li><li
class="level-3"><a class="final"
href="/templates/ecommercerecommendation/how-to/"><span>How-To</span></a></li><li
class="level-3"><a class="final"
href="/templates/ecommercerecommendation/train-with-rate-event/"><span>Train
with Rate Event</span></a></li><li class="level-3"><a class="final"
href="/templates/ecommercerecommendation/adjust-score/"><span>Adjust
Score</span></a></li></ul></li><li class="level-2"><a class="expandible"
href="#"><span>Similar Product</span></a><ul><li class="level-3"><a
class="final active" href="/templat
es/similarproduct/quickstart/"><span>Quick Start</span></a></li><li
class="level-3"><a class="final"
href="/templates/similarproduct/dase/"><span>DASE</span></a></li><li
class="level-3"><a class="final"
href="/templates/similarproduct/how-to/"><span>How-To</span></a></li><li
class="level-3"><a class="final"
href="/templates/similarproduct/multi-events-multi-algos/"><span>Multiple
Events and Multiple Algorithms</span></a></li><li class="level-3"><a
class="final"
href="/templates/similarproduct/return-item-properties/"><span>Returns Item
Properties</span></a></li><li class="level-3"><a class="final"
href="/templates/similarproduct/train-with-rate-event/"><span>Train with Rate
Event</span></a></li><li class="level-3"><a class="final"
href="/templates/similarproduct/rid-user-set-event/"><span>Get Rid of Events
for Users</span></a></li><li class="level-3"><a class="final"
href="/templates/similarproduct/recommended-user/"><span>Recommend
Users</span></a></li></ul></li><li class="level-2"
><a class="expandible" href="#"><span>Classification</span></a><ul><li
>class="level-3"><a class="final"
>href="/templates/classification/quickstart/"><span>Quick
>Start</span></a></li><li class="level-3"><a class="final"
>href="/templates/classification/dase/"><span>DASE</span></a></li><li
>class="level-3"><a class="final"
>href="/templates/classification/how-to/"><span>How-To</span></a></li><li
>class="level-3"><a class="final"
>href="/templates/classification/add-algorithm/"><span>Use Alternative
>Algorithm</span></a></li><li class="level-3"><a class="final"
>href="/templates/classification/reading-custom-properties/"><span>Read Custom
>Properties</span></a></li></ul></li></ul></li><li class="level-1"><a
>class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li
>class="level-2"><a class="final"
>href="/gallery/template-gallery/"><span>Browse</span></a></li><li
>class="level-2"><a class="final"
>href="/community/submit-template/"><span>Submit your Engine as a
>Template</span></a
></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Demo
>Tutorials</span></a><ul><li class="level-2"><a class="final"
>href="/demo/tapster/"><span>Comics Recommendation Demo</span></a></li><li
>class="level-2"><a class="final" href="/demo/community/"><span>Community
>Contributed Demo</span></a></li><li class="level-2"><a class="final"
>href="/demo/textclassification/"><span>Text Classification Engine
>Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible"
>href="/community/"><span>Getting Involved</span></a><ul><li
>class="level-2"><a class="final"
>href="/community/contribute-code/"><span>Contribute Code</span></a></li><li
>class="level-2"><a class="final"
>href="/community/contribute-documentation/"><span>Contribute
>Documentation</span></a></li><li class="level-2"><a class="final"
>href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li
>class="level-2"><a class="final"
>href="/community/contribute-webhook/"><span>Contribute a Webho
ok</span></a></li><li class="level-2"><a class="final"
href="/community/projects/"><span>Community
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible"
href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final"
href="/resources/faq/"><span>FAQs</span></a></li><li class="level-2"><a
class="final" href="/support/"><span>Support</span></a></li></ul></li><li
class="level-1"><a class="expandible"
href="#"><span>Resources</span></a><ul><li class="level-2"><a class="final"
href="/cli/"><span>Command-line Interface</span></a></li><li class="level-2"><a
class="final" href="/resources/release/"><span>Release
Cadence</span></a></li><li class="level-2"><a class="final"
href="/resources/intellij/"><span>Developing Engines with IntelliJ
IDEA</span></a></li><li class="level-2"><a class="final"
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li
class="level-2"><a class="final"
href="/resources/glossary/"><span>Glossary</span></a></li>
</ul></li><li class="level-1"><a class="expandible" href="#"><span>Apache
Software Foundation</span></a><ul><li class="level-2"><a class="final"
href="https://www.apache.org/"><span>Apache Homepage</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/licenses/"><span>License</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/foundation/sponsorship.html"><span>Sponsorship</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/foundation/thanks.html"><span>Thanks</span></a></li><li
class="level-2"><a class="final"
href="https://www.apache.org/security/"><span>Security</span></a></li></ul></li></ul></nav></div><div
class="col-md-9 col-sm-12"><div class="content-header hidden-md
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a
href="#">PredictionIO® Official Templates</a><span
class="spacer">></span></li><li><a href="#">Similar Product</a><span
class="spacer">></span></li><l
i><span class="last">Quick Start</span></li></ul></div><div
id="page-title"><h1>Quick Start - Similar Product Engine
Template</h1></div></div><div id="table-of-content-wrapper"><h5>On this
page</h5><aside id="table-of-contents"><ul> <li> <a
href="#overview">Overview</a> </li> <li> <a href="#usage">Usage</a> </li> <li>
<a href="#1-install-and-run-predictionio">1. Install and Run PredictionIO</a>
</li> <li> <a href="#2-create-a-new-engine-from-an-engine-template">2. Create a
new Engine from an Engine Template</a> </li> <li> <a
href="#3-generate-an-app-id-and-access-key">3. Generate an App ID and Access
Key</a> </li> <li> <a href="#4-collecting-data">4. Collecting Data</a> </li>
<li> <a href="#5-deploy-the-engine-as-a-service">5. Deploy the Engine as a
Service</a> </li> <li> <a href="#6-use-the-engine">6. Use the Engine</a> </li>
<li> <a href="#advanced-query">Advanced Query</a> </li> </ul> </aside><hr/><a
id="edit-page-link" href="https://github.com/apache/predictionio/tree/livedoc/do
cs/manual/source/templates/similarproduct/quickstart.html.md.erb"><img
src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs"
class="hidden-sm hidden xs"><ul><li><a href="#">PredictionIO® Official
Templates</a><span class="spacer">></span></li><li><a href="#">Similar
Product</a><span class="spacer">></span></li><li><span class="last">Quick
Start</span></li></ul></div><div id="page-title"><h1>Quick Start - Similar
Product Engine Template</h1></div></div><div class="content"> <h2 id='overview'
class='header-anchors'>Overview</h2><p>This engine template recommends products
that are "similar" to the input product(s). Similarity is not defined
by user or item attributes but by users' previous actions. By default, it
uses 'view' action such that product A and B are considered similar if
most users who view A also view B. The template can be customized to support
other action t
ypes such as buy, rate, like..etc.</p><p>This template is ideal for
recommending products to customers based on their recent actions. Using the IDs
of the recently viewed products of a customer as the <em>Query</em>, the engine
will predict other products that this customer may also like.</p><p>This
approach works perfectly for customers who are <strong>first-time
visitors</strong> or have not signed in. Recommendations are made dynamically
in <em>real-time</em> based on the most recent product preference you provide
in the <em>Query</em>. You can, therefore, recommend products to visitors
without knowing a long history about them.</p><p>You can also use this template
to build the popular feature of Amazon: <strong>"Customers Who Viewed This
Item Also Viewed..."</strong> quickly. Help your customers explore more
products that they like, and sell more products.</p><h2 id='usage'
class='header-anchors'>Usage</h2><h3 id='event-data-requirements'
class='header-anchors'>Event D
ata Requirements</h3><p>By default, this template takes the following data
from Event Server as Training Data:</p> <ul> <li>User <em>$set</em> events</li>
<li>Item <em>$set</em> events with <em>categories</em> properties</li>
<li>Users' <em>view</em> item events</li> </ul> <div class="alert-message
info"><p>This template can easily be customized to consider more user events
such as <em>buy</em>, <em>rate</em> and <em>like</em>. You can offer features
like "Customers Who Bought This Item Also Bought....".</p></div><h3
id='input-query' class='header-anchors'>Input Query</h3> <ul> <li>List of
ItemIDs, which are the targeted products</li> <li>N (number of items to be
recommended)</li> <li>List of white-listed item categories (optional)</li>
<li>List of white-listed ItemIds (optional)</li> <li>List of black-listed
ItemIds (optional)</li> </ul> <p>The template also supports black-list and
white-list. If a white-list is provided, the engine will include only those
products in
the recommendation. Likewise, if a black-list is provided, the engine will
exclude those products in the recommendation.</p><h3
id='output-predictedresult' class='header-anchors'>Output PredictedResult</h3>
<ul> <li>a ranked list of recommended itemIDs</li> </ul> <h2
id='1.-install-and-run-predictionio' class='header-anchors'>1. Install and Run
PredictionIO</h2> <p>First you need to <a href="/install">install PredictionIO
0.13.0</a> (if you haven't done it).</p><p>Let's say you have installed
PredictionIO at <code>/home/yourname/PredictionIO/</code>. For convenience, add
PredictionIO's binary command path to your <code>PATH</code>, i.e.
<code>/home/yourname/PredictionIO/bin</code>:</p><div class="highlight
shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl"
style="text-align: right"><pre class="lineno">1</pre></td><td
class="code"><pre><span class="gp">$ </span><span class="nv">PATH</span><span
class="o">=</span><span class="nv">$PATH</span>:/home/y
ourname/PredictionIO/bin; <span class="nb">export </span>PATH
</pre></td></tr></tbody></table> </div> <div class="alert-message note"><p>If
you launched <strong>PredictionIO AWS instance</strong>, the path is located at
<code>/opt/PredictionIO/bin</code>.</p></div><p>Once you have completed the
installation process, please make sure all the components (PredictionIO Event
Server, Elasticsearch, and HBase) are up and running.</p><div
class="alert-message note"><p>If you launched <strong>PredictionIO AWS
instance</strong>, you can skip <code>pio-start-all</code>. All components
should have been started automatically.</p></div><p>If you are using PostgreSQL
or MySQL, run the following to start PredictionIO Event Server:</p><div
class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td
class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td
class="code"><pre><span class="gp">$ </span>pio eventserver &
</pre></td></tr></tbody></table> </div> <p>If instead you are running HBase
and Elasticsearch, run the following to start all PredictionIO Event Server,
HBase, and Elasticsearch:</p><div class="highlight shell"><table
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align:
right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$
</span>pio-start-all
</pre></td></tr></tbody></table> </div> <p>You can check the status by
running:</p><div class="highlight shell"><table style="border-spacing:
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre
class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>pio
status
@@ -32,7 +32,7 @@ Your system is all ready to go.
<span class="o">[</span>INFO] <span class="o">[</span>App<span
class="nv">$]</span> MyApp1 | 1 |
3mZWDzci2D5YsqAnqNnXH9SB6Rg3dsTBs8iHkK6X2i54IQsIZI1eEeQQyMfs7b3F | <span
class="o">(</span>all<span class="o">)</span>
<span class="o">[</span>INFO] <span class="o">[</span>App<span
class="nv">$]</span> MyApp2 | 2 |
io5lz6Eg4m3Xe4JZTBFE13GMAf1dhFl6ZteuJfrO84XpdOz9wRCrDU44EUaYuXq5 | <span
class="o">(</span>all<span class="o">)</span>
<span class="o">[</span>INFO] <span class="o">[</span>App<span
class="nv">$]</span> Finished listing 2 app<span class="o">(</span>s<span
class="o">)</span>.
-</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p> <h2
id='4.-collecting-data' class='header-anchors'>4. Collecting Data</h2><p>Next,
let's collect some training data for the app of this Engine. By default,
the Similar Product Engine Template supports 2 types of entities:
<strong>user</strong> and <strong>item</strong>, and event
<strong>view</strong>. An item has the <strong>categories</strong> property,
which is a list of category names (String). A user can view an item.
Respectively, this template requires '$set' user event, '$set'
item event, and user-view-item events.</p><div class="alert-message
info"><p>This template can easily be customized to consider more user events
such as <em>buy</em>, <em>rate</em> and <em>like</em>.</p></div> <p>You can
send these events to PredictionIO Event Server in real-time easily by making a
HTTP request or through the provided SDK. Please see <a
href="/appintegration/">App Integration Overview</a> for more detai
ls how to integrate your app with SDK.</p><p>Let's try sending events to
EventServer with the following <code>curl</code> commands (The corresponding
SDK code is showed in other tabs).</p><p>Replace
<code><ACCCESS_KEY></code> by the Access Key generated in above steps.
Note that <code>localhost:7070</code> is the default URL of the Event
Server.</p><p>For convenience, set your access key to the shell variable,
run:</p><p><code>$ ACCESS_KEY=<ACCESS_KEY></code></p> <p><a
href="#"></a></p> <p>For example, when a new user with id "u0" is
created in your app on time <code>2014-11-02T09:39:45.618-08:00</code> (current
time will be used if eventTime is not specified), you can send a
<code>$set</code> event for this user. To send this event, run the following
<code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li
data-lang="json"><a href="#tab-342dddb8-5991-4845-908c-639f9961184f">REST
API</a></li> <li data-lang="python"><a href="#tab-d84a36ca-48
4a-4ca5-952b-6adbc4b5d4b8">Python SDK</a></li> <li data-lang="php"><a
href="#tab-db7c78fd-2185-42f7-bed3-9b965f1b1baf">PHP SDK</a></li> <li
data-lang="ruby"><a href="#tab-040b3679-f1dd-4c36-8f53-f839a7abd75d">Ruby
SDK</a></li> <li data-lang="java"><a
href="#tab-b2ef4fb1-bac9-4224-a3c1-87a17a10ab35">Java SDK</a></li> </ul> <div
data-tab="REST API" data-lang="json"
id="tab-342dddb8-5991-4845-908c-639f9961184f"> <div class="highlight shell">
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl"
style="text-align: right"><pre class="lineno">1
+</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p> <h2
id='4.-collecting-data' class='header-anchors'>4. Collecting Data</h2><p>Next,
let's collect some training data for the app of this Engine. By default,
the Similar Product Engine Template supports 2 types of entities:
<strong>user</strong> and <strong>item</strong>, and event
<strong>view</strong>. An item has the <strong>categories</strong> property,
which is a list of category names (String). A user can view an item.
Respectively, this template requires '$set' user event, '$set'
item event, and user-view-item events.</p><div class="alert-message
info"><p>This template can easily be customized to consider more user events
such as <em>buy</em>, <em>rate</em> and <em>like</em>.</p></div> <p>You can
send these events to PredictionIO Event Server in real-time easily by making a
HTTP request or through the provided SDK. Please see <a
href="/appintegration/">App Integration Overview</a> for more detai
ls how to integrate your app with SDK.</p><p>Let's try sending events to
EventServer with the following <code>curl</code> commands (The corresponding
SDK code is showed in other tabs).</p><p>Replace
<code><ACCCESS_KEY></code> by the Access Key generated in above steps.
Note that <code>localhost:7070</code> is the default URL of the Event
Server.</p><p>For convenience, set your access key to the shell variable,
run:</p><p><code>$ ACCESS_KEY=<ACCESS_KEY></code></p> <p><a
href="#"></a></p> <p>For example, when a new user with id "u0" is
created in your app on time <code>2014-11-02T09:39:45.618-08:00</code> (current
time will be used if eventTime is not specified), you can send a
<code>$set</code> event for this user. To send this event, run the following
<code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li
data-lang="json"><a href="#tab-00f10558-479b-4ff2-904b-d150e1c9f5ca">REST
API</a></li> <li data-lang="python"><a href="#tab-2219753d-59
2d-40e1-84c8-871483b626a2">Python SDK</a></li> <li data-lang="php"><a
href="#tab-0f8e65ce-0c0b-4be4-89ee-8bcfb3dc2e3b">PHP SDK</a></li> <li
data-lang="ruby"><a href="#tab-5c1d8428-82d7-4483-bb09-f5331b910639">Ruby
SDK</a></li> <li data-lang="java"><a
href="#tab-7a9f48ab-eebc-4576-959c-9cdf66c799f6">Java SDK</a></li> </ul> <div
data-tab="REST API" data-lang="json"
id="tab-00f10558-479b-4ff2-904b-d150e1c9f5ca"> <div class="highlight shell">
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl"
style="text-align: right"><pre class="lineno">1
2
3
4
@@ -47,7 +47,7 @@ Your system is all ready to go.
"entityId" : "u0",
"eventTime" : "2014-11-02T09:39:45.618-08:00"
}'</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-d84a36ca-484a-4ca5-952b-6adbc4b5d4b8"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-2219753d-592d-40e1-84c8-871483b626a2"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -86,7 +86,7 @@ Your system is all ready to go.
<span class="n">event_time</span><span class="o">=</span><span
class="n">datetime</span><span class="p">(</span>
<span class="mi">2014</span><span class="p">,</span> <span
class="mi">11</span><span class="p">,</span> <span class="mo">02</span><span
class="p">,</span> <span class="mi">09</span><span class="p">,</span> <span
class="mi">39</span><span class="p">,</span> <span class="mi">45</span><span
class="p">,</span> <span class="mi">618000</span><span class="p">,</span> <span
class="n">pytz</span><span class="o">.</span><span
class="n">timezone</span><span class="p">(</span><span
class="s">'US/Pacific'</span><span class="p">)</span>
<span class="p">)</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-db7c78fd-2185-42f7-bed3-9b965f1b1baf"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-0f8e65ce-0c0b-4be4-89ee-8bcfb3dc2e3b"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -111,7 +111,7 @@ Your system is all ready to go.
<span class="s1">'entityId'</span> <span class="o">=></span> <span
class="o"><</span><span class="nx">USER</span> <span
class="nx">ID</span><span class="o">></span>
<span class="p">));</span>
<span class="cp">?></span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-040b3679-f1dd-4c36-8f53-f839a7abd75d"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-5c1d8428-82d7-4483-bb09-f5331b910639"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -128,7 +128,7 @@ Your system is all ready to go.
<span class="s1">'user'</span><span class="p">,</span>
<span class="o"><</span><span class="no">USER</span> <span
class="no">ID</span><span class="o">></span>
<span class="p">)</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-b2ef4fb1-bac9-4224-a3c1-87a17a10ab35"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-7a9f48ab-eebc-4576-959c-9cdf66c799f6"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -153,7 +153,7 @@ Your system is all ready to go.
<span class="o">.</span><span class="na">entityType</span><span
class="o">(</span><span class="s">"user"</span><span class="o">)</span>
<span class="o">.</span><span class="na">entityId</span><span
class="o">(<</span><span class="n">USER_ID</span><span
class="o">>);</span>
<span class="n">client</span><span class="o">.</span><span
class="na">createEvent</span><span class="o">(</span><span
class="n">userEvent</span><span class="o">);</span>
-</pre></td> </tr></tbody></table> </div> </div> </div> <p>When a new item
"i0" is created in your app on time
<code>2014-11-02T09:39:45.618-08:00</code> (current time will be used if
eventTime is not specified), you can send a <code>$set</code> event for the
item. Note that the item is set with categories properties:
<code>"c1"</code> and <code>"c2"</code>. Run the following
<code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li
data-lang="json"><a href="#tab-8e55b0f0-5e83-4024-a3ab-087b12099f22">REST
API</a></li> <li data-lang="python"><a
href="#tab-bc95e648-ebfd-4ade-8b99-b439749078a1">Python SDK</a></li> <li
data-lang="php"><a href="#tab-f500c76c-fd4e-4bfb-b4cf-62cee92acd5f">PHP
SDK</a></li> <li data-lang="ruby"><a
href="#tab-d18adff4-080d-4afe-8436-8994d21bee1c">Ruby SDK</a></li> <li
data-lang="java"><a href="#tab-c35c8143-ddf0-40bc-9dff-8867385d348c">Java
SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-8e55b0
f0-5e83-4024-a3ab-087b12099f22"> <div class="highlight shell"> <table
style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align:
right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> </div> <p>When a new item
"i0" is created in your app on time
<code>2014-11-02T09:39:45.618-08:00</code> (current time will be used if
eventTime is not specified), you can send a <code>$set</code> event for the
item. Note that the item is set with categories properties:
<code>"c1"</code> and <code>"c2"</code>. Run the following
<code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li
data-lang="json"><a href="#tab-a9d976fd-3d57-4b1d-874e-9c9e37473e6e">REST
API</a></li> <li data-lang="python"><a
href="#tab-04197b14-1278-420a-8f41-671bdcc1b644">Python SDK</a></li> <li
data-lang="php"><a href="#tab-d12a5bd0-2297-4a81-9ce7-96ef37cb71ce">PHP
SDK</a></li> <li data-lang="ruby"><a
href="#tab-dc63da51-e247-4874-8f3c-4662cfcb3dbe">Ruby SDK</a></li> <li
data-lang="java"><a href="#tab-2e82a1c6-4ab0-4512-bd9e-79d718425e74">Java
SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-a9d976
fd-3d57-4b1d-874e-9c9e37473e6e"> <div class="highlight shell"> <table
style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align:
right"><pre class="lineno">1
2
3
4
@@ -174,7 +174,7 @@ Your system is all ready to go.
}
"eventTime" : "2014-11-02T09:39:45.618-08:00"
}'</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-bc95e648-ebfd-4ade-8b99-b439749078a1"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-04197b14-1278-420a-8f41-671bdcc1b644"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -193,7 +193,7 @@ Your system is all ready to go.
<span class="s">"categories"</span> <span class="p">:</span> <span
class="p">[</span><span class="s">"<CATEGORY_1>"</span><span
class="p">,</span> <span class="s">"<CATEGORY_2>"</span><span
class="p">]</span>
<span class="p">}</span>
<span class="p">)</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-f500c76c-fd4e-4bfb-b4cf-62cee92acd5f"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-d12a5bd0-2297-4a81-9ce7-96ef37cb71ce"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -214,7 +214,7 @@ Your system is all ready to go.
<span class="p">));</span>
<span class="cp">?></span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-d18adff4-080d-4afe-8436-8994d21bee1c"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-dc63da51-e247-4874-8f3c-4662cfcb3dbe"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -231,7 +231,7 @@ Your system is all ready to go.
<span class="p">}</span>
<span class="p">)</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-c35c8143-ddf0-40bc-9dff-8867385d348c"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-2e82a1c6-4ab0-4512-bd9e-79d718425e74"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -244,7 +244,7 @@ Your system is all ready to go.
<span class="o">.</span><span class="na">entityId</span><span
class="o">(<</span><span class="n">ITEM_ID</span><span class="o">>)</span>
<span class="o">.</span><span class="na">property</span><span
class="o">(</span><span class="s">"categories"</span><span class="o">,</span>
<span class="n">ImmutableList</span><span class="o">.</span><span
class="na">of</span><span class="o">(</span><span
class="s">"<CATEGORY_1>"</span><span class="o">,</span> <span
class="s">"<CATEGORY_2>"</span><span class="o">));</span>
<span class="n">client</span><span class="o">.</span><span
class="na">createEvent</span><span class="o">(</span><span
class="n">itemEvent</span><span class="o">)</span>
-</pre></td> </tr></tbody></table> </div> </div> </div> <p>When the user
"u0" view item "i0" on time
<code>2014-11-10T12:34:56.123-08:00</code> (current time will be used if
eventTime is not specified), you can send a view event. Run the following
<code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li
data-lang="json"><a href="#tab-3ae9a84d-79dd-4fe9-8c74-d1472c0d61af">REST
API</a></li> <li data-lang="python"><a
href="#tab-740de5fa-e2d5-4757-b8b0-7a385c566e8e">Python SDK</a></li> <li
data-lang="php"><a href="#tab-2acd5be5-5a7b-4487-aa93-158e4729a16f">PHP
SDK</a></li> <li data-lang="ruby"><a
href="#tab-625e17c5-938b-4c3d-a8c3-8470e36e96e2">Ruby SDK</a></li> <li
data-lang="java"><a href="#tab-9ac4d826-ef7b-459a-b684-2d65ce9cbfce">Java
SDK</a></li> </ul> <div data-tab="REST API" data-lang="json"
id="tab-3ae9a84d-79dd-4fe9-8c74-d1472c0d61af"> <div class="highlight shell">
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text
-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> </div> <p>When the user
"u0" view item "i0" on time
<code>2014-11-10T12:34:56.123-08:00</code> (current time will be used if
eventTime is not specified), you can send a view event. Run the following
<code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li
data-lang="json"><a href="#tab-c870e1e6-d78d-414e-b8e5-9997d6e3668f">REST
API</a></li> <li data-lang="python"><a
href="#tab-7b5e683a-7641-4999-9923-37924a78e2a8">Python SDK</a></li> <li
data-lang="php"><a href="#tab-bee6d49f-3763-433c-942f-02a58cbb6f6a">PHP
SDK</a></li> <li data-lang="ruby"><a
href="#tab-bd61fe05-0b41-47e2-8a6a-d1569404a451">Ruby SDK</a></li> <li
data-lang="java"><a href="#tab-e786ee29-2933-4268-bfcc-1aa85fdec514">Java
SDK</a></li> </ul> <div data-tab="REST API" data-lang="json"
id="tab-c870e1e6-d78d-414e-b8e5-9997d6e3668f"> <div class="highlight shell">
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text
-align: right"><pre class="lineno">1
2
3
4
@@ -263,7 +263,7 @@ Your system is all ready to go.
"targetEntityId" : "i0",
"eventTime" : "2014-11-10T12:34:56.123-08:00"
}'</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-740de5fa-e2d5-4757-b8b0-7a385c566e8e"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-7b5e683a-7641-4999-9923-37924a78e2a8"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -280,7 +280,7 @@ Your system is all ready to go.
<span class="n">target_entity_type</span><span class="o">=</span><span
class="s">"item"</span><span class="p">,</span>
<span class="n">target_entity_id</span><span class="o">=<</span><span
class="n">ITEM</span> <span class="n">ID</span><span class="o">></span>
<span class="p">)</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-2acd5be5-5a7b-4487-aa93-158e4729a16f"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-bee6d49f-3763-433c-942f-02a58cbb6f6a"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -299,7 +299,7 @@ Your system is all ready to go.
<span class="s1">'targetEntityId'</span> <span class="o">=></span> <span
class="o"><</span><span class="nx">ITEM</span> <span
class="nx">ID</span><span class="o">></span>
<span class="p">));</span>
<span class="cp">?></span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-625e17c5-938b-4c3d-a8c3-8470e36e96e2"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-bd61fe05-0b41-47e2-8a6a-d1569404a451"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -316,7 +316,7 @@ Your system is all ready to go.
<span class="s1">'targetEntityId'</span> <span class="o">=></span>
<span class="o"><</span><span class="no">ITEM</span> <span
class="no">ID</span><span class="o">></span>
<span class="p">}</span>
<span class="p">)</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-9ac4d826-ef7b-459a-b684-2d65ce9cbfce"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-e786ee29-2933-4268-bfcc-1aa85fdec514"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -376,19 +376,19 @@ User u10 views item i29
</pre></td></tr></tbody></table> </div> <p>When the engine is deployed
successfully and running, you should see a console message similar to the
following:</p><div class="highlight shell"><table style="border-spacing:
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre
class="lineno">1
2</pre></td><td class="code"><pre><span class="o">[</span>INFO] <span
class="o">[</span>HttpListener] Bound to /0.0.0.0:8000
<span class="o">[</span>INFO] <span class="o">[</span>MasterActor] Bind
successful. Ready to serve.
-</pre></td></tr></tbody></table> </div> <p>Do not kill the deployed engine
process.</p><p>By default, the deployed engine binds to <a
href="http://localhost:8000"><a
href="http://localhost:8000">http://localhost:8000</a></a>. You can visit that
page in your web browser to check its status.</p><p><img alt="Engine Status"
src="/images/engine-server-3246414b.png"/></p></p><h2 id='6.-use-the-engine'
class='header-anchors'>6. Use the Engine</h2><p>Now, You can retrieve predicted
results. To retrieve 4 items which are similar to item ID "i1". You
send this JSON <code>{ "items": ["i1"], "num": 4
}</code> to the deployed engine and it will return a JSON of the recommended
items. Simply send a query by making a HTTP request or through the
<code>EngineClient</code> of an SDK.</p><p>With the deployed engine running,
open another terminal and run the following <code>curl</code> command or use
SDK to send the query:</p><div class="tabs"> <ul class="control
"> <li data-lang="json"><a
href="#tab-9afe3f91-7b28-4c9e-9a58-9fa0019c5dc4">REST API</a></li> <li
data-lang="python"><a href="#tab-422120a6-c6e5-4cd7-8c0d-bb5acdbf1ef3">Python
SDK</a></li> <li data-lang="php"><a
href="#tab-c889c1fd-355a-400f-af57-2ee97392215b">PHP SDK</a></li> <li
data-lang="ruby"><a href="#tab-be27b122-55e8-46ab-9f4a-ee67266fcb4d">Ruby
SDK</a></li> <li data-lang="java"><a
href="#tab-adcd4d52-c107-4534-bb69-fbb17400f822">Java SDK</a></li> </ul> <div
data-tab="REST API" data-lang="json"
id="tab-9afe3f91-7b28-4c9e-9a58-9fa0019c5dc4"> <div class="highlight shell">
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl"
style="text-align: right"><pre class="lineno">1
+</pre></td></tr></tbody></table> </div> <p>Do not kill the deployed engine
process.</p><p>By default, the deployed engine binds to <a
href="http://localhost:8000"><a
href="http://localhost:8000">http://localhost:8000</a></a>. You can visit that
page in your web browser to check its status.</p><p><img alt="Engine Status"
src="/images/engine-server-3246414b.png"/></p></p><h2 id='6.-use-the-engine'
class='header-anchors'>6. Use the Engine</h2><p>Now, You can retrieve predicted
results. To retrieve 4 items which are similar to item ID "i1". You
send this JSON <code>{ "items": ["i1"], "num": 4
}</code> to the deployed engine and it will return a JSON of the recommended
items. Simply send a query by making a HTTP request or through the
<code>EngineClient</code> of an SDK.</p><p>With the deployed engine running,
open another terminal and run the following <code>curl</code> command or use
SDK to send the query:</p><div class="tabs"> <ul class="control
"> <li data-lang="json"><a
href="#tab-a8c4992f-3395-497b-8998-1e21bac7d64a">REST API</a></li> <li
data-lang="python"><a href="#tab-efe3ac80-1b67-4236-a856-05228eaf3071">Python
SDK</a></li> <li data-lang="php"><a
href="#tab-4e6e86cf-9ef6-4149-8249-43f090ec65d7">PHP SDK</a></li> <li
data-lang="ruby"><a href="#tab-b474510a-7c07-400b-9eb8-9c5b819b897f">Ruby
SDK</a></li> <li data-lang="java"><a
href="#tab-ec3d6786-b15b-4054-96b4-78801947ae44">Java SDK</a></li> </ul> <div
data-tab="REST API" data-lang="json"
id="tab-a8c4992f-3395-497b-8998-1e21bac7d64a"> <div class="highlight shell">
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl"
style="text-align: right"><pre class="lineno">1
2
3
4</pre></td> <td class="code"><pre><span class="gp">$ </span>curl -H <span
class="s2">"Content-Type: application/json"</span> <span class="se">\</span>
-d <span class="s1">'{ "items": ["i1"], "num": 4 }'</span> <span
class="se">\</span>
http://localhost:8000/queries.json
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-422120a6-c6e5-4cd7-8c0d-bb5acdbf1ef3"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK"
data-lang="python" id="tab-efe3ac80-1b67-4236-a856-05228eaf3071"> <div
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3</pre></td> <td class="code"><pre><span class="kn">import</span> <span
class="nn">predictionio</span>
<span class="n">engine_client</span> <span class="o">=</span> <span
class="n">predictionio</span><span class="o">.</span><span
class="n">EngineClient</span><span class="p">(</span><span
class="n">url</span><span class="o">=</span><span
class="s">"http://localhost:8000"</span><span class="p">)</span>
<span class="k">print</span> <span class="n">engine_client</span><span
class="o">.</span><span class="n">send_query</span><span
class="p">({</span><span class="s">"items"</span><span class="p">:</span> <span
class="p">[</span><span class="s">"i1"</span><span class="p">],</span> <span
class="s">"num"</span><span class="p">:</span> <span class="mi">4</span><span
class="p">})</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-c889c1fd-355a-400f-af57-2ee97392215b"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK"
data-lang="php" id="tab-4e6e86cf-9ef6-4149-8249-43f090ec65d7"> <div
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -407,7 +407,7 @@ http://localhost:8000/queries.json
<span class="nb">print_r</span><span class="p">(</span><span
class="nv">$response</span><span class="p">);</span>
<span class="cp">?></span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-be27b122-55e8-46ab-9f4a-ee67266fcb4d"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK"
data-lang="ruby" id="tab-b474510a-7c07-400b-9eb8-9c5b819b897f"> <div
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
@@ -420,7 +420,7 @@ http://localhost:8000/queries.json
<span class="n">response</span> <span class="o">=</span> <span
class="n">client</span><span class="p">.</span><span
class="nf">send_query</span><span class="p">(</span><span
class="s1">'items'</span> <span class="o">=></span> <span
class="p">[</span><span class="s1">'i1'</span><span class="p">],</span> <span
class="s1">'num'</span> <span class="o">=></span> <span
class="mi">4</span><span class="p">)</span>
<span class="nb">puts</span> <span class="n">response</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-adcd4d52-c107-4534-bb69-fbb17400f822"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK"
data-lang="java" id="tab-ec3d6786-b15b-4054-96b4-78801947ae44"> <div
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td
class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4