Ich habe eine Titan-Datenbank mit Cassandra Storage-Backend, und ich versuche, einen gemischten Index basierend auf zwei Eigenschaftsschlüssel zu erstellen.Elasticsearch Indizierung ist sehr langsam
Ich kann den Index mit folgenden Kommandos registrieren:
graph=TitanFactory.open(config);
graph.tx().rollback()
m = graph.openManagement();
m.buildIndex("titleBodyMixed", Vertex.class).addKey(m.getPropertyKey("title")).addKey(m.getPropertyKey("body")).buildMixedIndex("search");
m.commit();
m.awaitGraphIndexStatus(graph, 'titleBodyMixed').status(SchemaStatus.REGISTERED).timeout(3, java.time.temporal.ChronoUnit.MINUTES).call();
Und wenn ich überprüft, wird der Index nach wenigen Sekunden erfolgreich registriert. Im nächsten Schritt, ich versuche, die Datenbank mit den folgenden Befehlen indizieren:
m = graph.openManagement();
m.updateIndex(m.getGraphIndex('titleBodyMixed'), SchemaAction.REINDEX).get();
ist jedoch UPDATE Befehl nicht Finishing, (nach 12 Stunden).
Ich habe etwa 300k Dateneingabe in der Datenbank und jeder Dateneintrag hat einen Titel und einen Körper zu indizieren.
Meine Frage ist, wie kann ich die Indizierung beschleunigen?
Wenn ich oben Befehl verwende ich sehe, dass meine CPU durch Indexierungsprozesse nicht gesättigt ist:
Datei My Titan Config wie unten ist:
config =new BaseConfiguration();
config.setProperty("storage.backend","cassandra");
config.setProperty("storage.hostname", "127.0.0.1");
config.setProperty("storage.cassandra.keyspace", "smartgraph");
config.setProperty("index.search.elasticsearch.interface", "NODE");
config.setProperty("index.search.backend", "elasticsearch");
Hier finden Sie zeigen elasticsearch service Eigenschaften:
curl -X GET 'http://localhost:9200'
{
"status" : 200,
"name" : "Ms. Marvel",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.2",
"build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec",
"build_timestamp" : "2015-09-14T09:49:53Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}