I am a complete novice with this and really need help configuring the
engine.json for my app.
This is what i know…..
I have these events.
New user sign-up with one parameter - “social-status”
“Rate item” event
“Mark as favourite event”
“Buy” event
I have 36000 recipes (food) that have the following parameters.
id, main ingredient, diet type, cooking time, meal type.
These last 4 are user as a filter when making queries to the engine.
So my question is first, how do I construct the engine.json . I have read a lot
of documentation but I am still unsure how to construct it.
This is what I have so far but there json is invalid because of duplicate keys.
(“name”)
{
"comment":" This config file uses default settings for all but the required
values see README.md for docs",
"id": "iqmotor",
"description": "Default settings",
"engineFactory": "org.template.RecommendationEngine",
"datasource": {
"params" : {
"name": "iqchef-motor",
"appName": "iqmotor",
"eventNames": ["rate", "buy", "favourite"],
},
"sparkConf": {
"spark.serializer": "org.apache.spark.serializer.KryoSerializer",
"spark.kryo.registrator":
"org.apache.mahout.sparkbindings.io.MahoutKryoRegistrator",
"spark.kryo.referenceTracking": "false",
"spark.kryoserializer.buffer": "300m",
"es.index.auto.create": "true"
},
"algorithms": [
{
"comment": "simplest setup where all values are default, popularity based
backfill, must add eventsNames",
"name": "ur",
"params": {
"appName": "iqmotor",
"indexName": "urindex",
"typeName": "items",
"comment": "must have data for the first event or the model will not
build, other events are optional",
"eventNames": ["rate","buy","favourite"],
"num" : 200,
"fields" : [
{
"name" : "mainingredient",
"values" : ["9","10","12","13","7","11","5","4","15"],
"name" : "diettype",
"values" : ["1","25","20","18","17","16","9","7","3"],
"name" : "cookingtime",
"values" : ["fast" , "slow" ],
"name" : "mealtype",
"values" : ["76","48","26","17","29","47","3","2","14"],
}
]
}
}
]
}