2016-07-14 9 views
1

Ich versuche, die lucene Suche Backend mit Titan zu verwenden. Ich setze die index.search.backend Eigenschaft auf lucene als so.Titan - Wie ‚Lucene‘ verwenden Suche Backend

TitanFactory.Builder config = TitanFactory.build(); 
config.set("storage.backend", "hbase"); 
config.set("storage.hostname", "node1"); 
config.set("storage.hbase.table", "titan"); 
config.set("index.search.backend", "lucene"); 
config.set("index.search.directory", "/tmp/foo"); 

TitanGraph graph = config.open(); 
GraphOfTheGodsFactory.load(graph); 
graph.getVertices().forEach(v -> System.out.println(v.toString())); 

Natürlich ist dies nicht funktioniert, weil diese Einstellung der GLOBAL_OFFLINE Sorte ist. Die Protokolle machen mich darauf aufmerksam. Titan ignoriert meine "Lucene" -Einstellung und versucht dann, Elasticsearch als Such-Backend zu verwenden.

WARN com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration 
- Local setting index.search.backend=lucene (Type: GLOBAL_OFFLINE) 
is overridden by globally managed value (elasticsearch). Use 
the ManagementSystem interface instead of the local configuration to control 
this setting. 

Nach einiger Lektüre verstehe ich, dass ich das Management-System verwenden, müssen die index.search.backend einzustellen. Ich brauche Code, der ungefähr wie folgt aussieht.

graph.getManagementSystem().set("index.search.backend", "lucene"); 
graph.getManagementSystem().set("index.search.directory", "/tmp/foo"); 
graph.getManagementSystem().commit(); 

Ich bin verwirrt, wie man das in meinem ursprünglichen Beispielcode oben integriert. Da dies eine GLOBAL_OFFLINE Einstellung ist, kann ich dies nicht auf eine offene Grafik einstellen. Zur gleichen Zeit weiß ich nicht, wie man einen Graphen bekommt, wenn ich nicht erst einen öffne. Wie lege ich das Such-Backend richtig fest?

Antwort

0

Es gibt keine inmemory Suche Backend. Die supported search backends sind Lucene, Solr und Elasticsearch.

Lucene ist eine gute Wahl für einen kleinen, einzelne Maschine Suche Backend. Sie müssen zwei Eigenschaften festlegen dies, index.search.backend und index.search.directory zu tun:

index.search.backend=lucene 
index.search.directory=/path/to/titansearchindexdir 

Wie Sie bemerkt haben, die Suche Backend ist ein GLOBAL_OFFLINE, so dass Sie diese vor dem zunächst die Erstellung Ihrer Graphen konfigurieren sollten. Da erstellt haben Sie bereits eine titan Tabelle in Ihrer HBase, entweder deaktivieren und löschen Sie die titan Tabelle oder stellen Sie Ihre Graph Konfiguration Punkt, an einem neuen storage.hbase.table.

+0

ich ein Problem eröffnet dieser https://github.com/thinkaurelius/titan/issues/1332 Zusammenhang –

+0

Sie sind richtig, aber ich misspoke. Das gleiche passiert, wenn ich versuche, Lucene zu benutzen. Danke, dass Sie das verstanden haben. Ich werde die Frage aktualisieren. –

+0

Haben Sie die HBase-Tabelle gelöscht? –