private static CypherResult ExecuteMirrorGremlin(string script, AlgoContext context, int[] productIds) { try { Neo4jContext client = new Neo4jContext(false); Dictionary <string, object> parameters = new Dictionary <string, object>(); foreach (RecommendationContext item in context.Context.Keys) { parameters["pMap" + item.ToString()] = context.Context[item]; } if (productIds != null && productIds.Count() > 0) { parameters["pMapProductsId"] = productIds; } string response = client.ExecuteGremlinScript(new Script { ScriptStr = script, ParameterMap = parameters }); return(JsonConvert.DeserializeObject <CypherResult>(response)); } catch (Exception e) { Log.Error("ExecuteMirrorQuery", "Error executing query", e); throw; } }
public static CypherResult ExecuteMirrorQuery(GraphAction ga, AlgoContext context, int[] productIds) { if (ga.MirrorQuery != null) { return(ExecuteMirrorCypherQuery(ga.MirrorQuery.QueryContent, context, productIds)); } else if (ga.MirrorScript != null) { return(ExecuteMirrorGremlin(ga.MirrorScript.MirrorScript, context, productIds)); } return(null); }
private static CypherResult ExecuteMirrorCypherQuery(string query, AlgoContext context, int[] productIds) { try { Log.Debug("ExecuteMirrorQuery", "Building query from parameters", query); string filteredQuery = BuildMirrorQuery(query, productIds); Log.Debug("ExecuteMirrorQuery", "Query built from parameters", filteredQuery); Neo4jContext client = new Neo4jContext(false); Dictionary <string, string> parameters = new Dictionary <string, string>(); foreach (RecommendationContext item in context.Context.Keys) { parameters[item.ToString()] = context.Context[item]; } string response = client.GetWithCypherQuery(filteredQuery, parameters); return(JsonConvert.DeserializeObject <CypherResult>(response)); } catch (Exception e) { Log.Error("ExecuteMirrorQuery", "Error executing query", e); throw; } }
public static CypherResult ExecuteGremlinRecommendation(string query, ContentTypeDistribution distribution, AggregateFilter filters, AlgoContext context, out string requestString) { try { string filteredQuery = BuildGremlinQuery(query, filters, distribution); Log.Debug("ExecuteGremlinRecommendation", "Query built from parameters"); Neo4jContext client = new Neo4jContext(false); Dictionary <string, object> parameters = new Dictionary <string, object>(); foreach (RecommendationContext item in context.Context.Keys) { parameters["pMap" + item.ToString()] = context.Context[item]; } Script gremlinScript = new Script { ScriptStr = filteredQuery, ParameterMap = parameters }; string response = client.ExecuteGremlinScript(gremlinScript, out requestString); if (!string.IsNullOrEmpty(response)) { return(JsonConvert.DeserializeObject <CypherResult>(response)); } else { return(null); } } catch (Exception e) { Log.Error("ExecuteRecommendationQuery", "Error executing query", e); throw; } }
public static CypherResult ExecuteRecommendationQuery(GraphAction graphAction, ContentTypeDistribution distribution, AggregateFilter filters, AlgoContext context, out string requestString) { try { if (graphAction.Query != null) { return(ExecuteCypherRecommendation(graphAction.Query.QueryContent, distribution, filters, context, out requestString)); } else if (graphAction.Script != null) { return(ExecuteGremlinRecommendation(graphAction.Script.Script, distribution, filters, context, out requestString)); } else { Log.Error("ExecuteRecommendationQuery", "This graph actions defines neither a Cypher query, nor a Gremlin query", graphAction.Id); requestString = null; return(null); } } catch (Exception e) { Log.Error("ExecuteRecommendationQuery", "Error executing query", e); throw; } }
private static CypherResult ExecuteCypherRecommendation(string query, ContentTypeDistribution distribution, AggregateFilter filters, AlgoContext context, out string requestString) { try { Log.Debug("ExecuteRecommendationQuery", "Building query from parameters", query); string filteredQuery = BuildCypherRecommendationQuery(query, filters, distribution); Log.Debug("ExecuteRecommendationQuery", "Query built from parameters", filteredQuery); Neo4jContext client = new Neo4jContext(false); Dictionary <string, string> parameters = new Dictionary <string, string>(); foreach (RecommendationContext item in context.Context.Keys) { parameters[item.ToString()] = context.Context[item]; } string response = client.GetWithCypherQuery(filteredQuery, parameters, out requestString); return(JsonConvert.DeserializeObject <CypherResult>(response)); } catch (Exception e) { Log.Error("ExecuteRecommendationQuery", "Error executing query", e); throw; } }