2016-07-11 7 views
0

У меня есть следующий код, это для создания графика из индекса Википедии. Этот код пытается импортировать граф Википедии в каталог graph.db.Как решить следующую ошибку в Eclipse?

// Copyright (c) 2012 Mirko Nasato 
// 

package org.graphipedia.dataimport.neo4j; 

import java.util.HashMap; 
import java.util.Map; 

import org.neo4j.unsafe.batchinsert.BatchInserter; 
import org.neo4j.unsafe.batchinsert.BatchInserters; 

public class ImportGraph { 

    private final BatchInserter inserter; 
    private final Map<String, Long> inMemoryIndex; 

    public ImportGraph(String dataDir) { 
     inserter = BatchInserters.inserter(dataDir); 
     inserter.createDeferredSchemaIndex(WikiLabel.Page).on("title").create(); 
     inMemoryIndex = new HashMap<String, Long>(); 
    } 

    public static void main(String[] args) throws Exception { 
     if (args.length < 2) { 
      System.out.println("USAGE: ImportGraph <input-file> <data-dir>"); 
      System.exit(255); 
     } 
     String inputFile = args[0]; 
     String dataDir = args[1]; 
     ImportGraph importer = new ImportGraph(dataDir); 
     importer.createNodes(inputFile); 
     importer.createRelationships(inputFile); 
     importer.finish(); 
    } 

    public void createNodes(String fileName) throws Exception { 
     System.out.println("Importing pages..."); 
     NodeCreator nodeCreator = new NodeCreator(inserter, inMemoryIndex); 
     long startTime = System.currentTimeMillis(); 
     nodeCreator.parse(fileName); 
     long elapsedSeconds = (System.currentTimeMillis() - startTime)/1000; 
     System.out.printf("\n%d pages imported in %d seconds.\n", nodeCreator.getPageCount(), elapsedSeconds); 
    } 

    public void createRelationships(String fileName) throws Exception { 
     System.out.println("Importing links..."); 
     RelationshipCreator relationshipCreator = new RelationshipCreator(inserter, inMemoryIndex); 
     long startTime = System.currentTimeMillis(); 
     relationshipCreator.parse(fileName); 
     long elapsedSeconds = (System.currentTimeMillis() - startTime)/1000; 
     System.out.printf("\n%d links imported in %d seconds; %d broken links ignored\n", 
       relationshipCreator.getLinkCount(), elapsedSeconds, relationshipCreator.getBadLinkCount()); 
    } 

    public void finish() { 
     inserter.shutdown(); 
    } 

} 

Однако каждый раз, когда я запускаю этот код, у меня возникает следующая ошибка.

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method inserter(File) in the type BatchInserters is not applicable for the arguments (String) 

    at org.graphipedia.dataimport.neo4j.ImportGraph.<init>(ImportGraph.java:36) 
    at org.graphipedia.dataimport.neo4j.ImportGraph.main(ImportGraph.java:48) 

ответ

1

На основе этого Javadoc https://neo4j.com/docs/java-reference/current/javadocs/org/neo4j/unsafe/batchinsert/BatchInserters.html

BatchInserters нужен файл, а не "путь/к/реж" строки. Вам нужно будет создать файл-файл и передать его.

Код: Добавьте импорт вверху.

import java.io.File 

Затем замените следующую строку

inserter = BatchInserters.inserter(dataDir); 

с этим

inserter = BatchInserters.inserter(new File(dataDir)); 
+0

Я новичок в Java, как я должен делать это в среде Eclipse? – Technologic27

Смежные вопросы