2016-07-07 46 views
0

我有一個Titan數據庫與Cassandra存儲後端,我試圖創建基於兩個屬性鍵的混合索引。Elasticsearch索引是非常緩慢的

我可以使用下面的命令來註冊指數:

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(); 

,當我檢查時,指數成功幾秒鐘後註冊。在下一步驟中,我嘗試使用下面的命令來重新索引數據庫:

m = graph.openManagement(); 
m.updateIndex(m.getGraphIndex('titleBodyMixed'), SchemaAction.REINDEX).get(); 

然而,UpdateIndex中命令不被精加工,(12小時後)。

我在數據庫中有大約300k的數據輸入,每個數據輸入都有一個Title和一個Body來索引。

我的問題是,我該如何加快索引?

當我使用top命令我看到我的CPU不被索引進程飽和:

enter image description here

我泰坦配置文件是波紋管:

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"); 

以下是顯示elasticsearch服務屬性:

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" 
} 

回答

0

這個想法是,除非所有會話都關閉,否則索引重新索引過程不會啓動。您最有可能會與數據庫打開會話。因此,reindex作業永遠不會被觸發。

隨着this Gremlin script,您可以關閉所有會話。你應該看到索引會在後面發生。

請問有幫助嗎?