engine.json
{
"comment":" This config file uses default settings for all but the required values see README.md for docs",
"id": "default",
"description": "Default settings",
"engineFactory": "org.template.RecommendationEngine",
"datasource": {
"params" : {
"name": "some-data",
"appName": "myapp",
"eventNames": ["purchase", "view", "addtocart"]
"eventWindow": {
"duration": "365 days",
"removeDuplicates": false,
"compressProperties": false
}
}
},
"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",
"spark.executor.memory": "11g",
"spark.driver.memory": "11g",
"spark.executor.cores": "8",
"spark.task.cpus": "4",
"spark.default.parallelism": "16",
"es.index.auto.create": "true"
},
"algorithms": [
{
"comment": "simplest setup where all values are default, popularity based backfill, must add eventsNames",
"name": "ur",
"params": {
"appName": "myapp",
"indexName": "urindex",
"typeName": "items",
"comment": "must have data for the first event or the model will not build, other events are optional",
"eventNames": ["purchase", "view", "addtocart"],
"backfillField": {
"name": "popRank"
"backfillType": "trending",
"eventNames": ["purchase", "view"],
"duration": "3 days",
},
}
}
]