2014-11-25 2 views
1

Я новичок в Neo4j, и я разрабатываю проект, используя C# (Neo4jClient).Neo4j Batch Insertion in C#

В моем проекте я хочу создать примерно 3000 узлов за раз. Теперь я создаю единый узел по узлу, потому что во избежание дублирования (i.e i проверяю каждый раз, когда узлы существуют или нет, если только не существует, то я создаю узлы.). теперь в neo4j есть 1,60,000 узлов. поэтому для завершения работы 3000 узлов потребуется 2 часа. Я хотел бы использовать пакетную вставку. Пожалуйста, поделитесь мной кодом, чтобы использовать пакетную вставку, чтобы проверить узел дублирования. Заранее спасибо.

ответ

1

Example

public class Neo4jDataProvider<T> 
    { 
     IGraphClient _client = null; 

     public Neo4jDataProvider(IGraphClient client) 
     { 
      _client = client; 
     } 

    public void CreateAll(IEnumerable<T> records) 
    { 
     if (_client != null) 
     { 
      var propKey = string.Format("{0}s", typeof (T).Name.ToLower()); 
      var query = _client.Cypher; 
      var createString = string.Format("({0}:{1} {{{2}}})", "record", typeof(T).Name, propKey); 
      query = query.Create(createString); 
      query = query.WithParam(propKey, records.ToList()); 
      query.ExecuteWithoutResults(); 
     } 
    } 
} 
+0

Благодаря ответить. –