Neo4j.org ダウンロード ページでダウンロードできる Neo4j サーバー v2.0 M06 ビルドでは、Cypher クエリで JSON を直接 Neo4j サーバーに使用できます。
例:
CREATE
(view0:event:view
{
key:'view0',
verb:'view',
past:'has viewed',
present:'is viewing',
future:'will view'
})-[:event]->d16
私の GitHub リポジトリから次の C# クラス ファイルを取得して、Neo4j サーバーに直接 Cypher クエリを送信できるようにします。
https://github.com/kbastani/predictive-autocomplete/blob/master/predictive-autocomplete/PredictiveAutocomplete/CypherQueryCreator.cs
GitHub から次の C# クラス ファイルにアクセスすると、その使用法を確認できます。
https://github.com/kbastani/predictive-autocomplete/blob/master/predictive-autocomplete/PredictiveAutocomplete/Processor.cs
「GetRankedNodesForQuery」に移動します。ここにコードをコピーしました。
public static List<IGraphNode> GetRankedNodesForQuery(string index, string luceneQuery, string relationshipLabel, string labelPropertyName, int skip, int limit)
{
var sb = new StringBuilder();
sb.AppendLine("START node=node:{0}(\"{1}\")");
sb.AppendLine("WITH node");
sb.AppendLine("SKIP {2}");
sb.AppendLine("LIMIT {3}");
sb.AppendLine("WITH node");
sb.AppendLine("MATCH n-[{4}]->node");
sb.AppendLine("WITH node, count(distinct n) as size");
sb.AppendLine("RETURN node.{5}? as label, size");
sb.AppendLine("ORDER BY id(node)");
sb.AppendLine("LIMIT {3}");
string commandQuery = sb.ToString();
commandQuery = string.Format(commandQuery, index, luceneQuery, skip, limit, !string.IsNullOrEmpty(relationshipLabel) ? string.Format(":{0}", relationshipLabel) : string.Empty, labelPropertyName);
GraphClient graphClient = GetNeo4jGraphClient();
var cypher = new CypherFluentQueryCreator(graphClient, new CypherQueryCreator(commandQuery), new Uri(Configuration.GetDatabaseUri()));
var resulttask = cypher.ExecuteGetCypherResults<GraphNode>();
var graphNodeResults = resulttask.Result.ToList().Select(gn => (IGraphNode)gn).ToList();
return graphNodeResults;
}
他のバージョンでは、ラッパーを作成する必要があります。現時点で最も簡単な方法は、2.0 バージョンにアップグレードすることです。これが実行できない場合はお知らせください。.NET C# ラッパーを作成します。