2017-05-12 3 views
0

카산드라에 타이탄 그래프를 저장했습니다. 아래는 코드입니다.색인 방법 카산드라에 존재하는 타이탄 그래프 solr에

public class Example1 { 

public static void main(String[] args) { 
    //Initliase graph 
    BaseConfiguration baseConfiguration = new BaseConfiguration(); 
    baseConfiguration.setProperty("storage.backend", "cassandra"); 
    baseConfiguration.setProperty("storage.hostname", "192.168.3.82"); 
    baseConfiguration.setProperty("storage.cassandra.keyspace", "mycustomerdata"); 
    TitanGraph graph = TitanFactory.open(baseConfiguration); 

    //---------------- Adding Data ------------------- 
    //Create some customers 
    Vertex alice = graph.addVertex("customer"); 
    alice.property("name", "Alice Mc Alice"); 
    alice.property("birthdat", "100000 BC"); 

    Vertex bob = graph.addVertex("customer"); 
    bob.property("name", "Bob Mc Bob"); 
    bob.property("birthdat", "1000 BC"); 

    //Create Some Products 
    Vertex meat = graph.addVertex("product"); 
    meat.property("name", "Meat"); 
    meat.property("description", "Delicious Meat"); 

    Vertex lettuce = graph.addVertex("product"); 
    lettuce.property("name", "Lettuce"); 
    lettuce.property("description", "Delicious Lettuce which is green"); 

    //Alice Bought some meat: 
    alice.addEdge("bought", meat); 
    //Bob Bought some meat and lettuce: 
    bob.addEdge("bought",lettuce); 

    //---------------- Querying (aka traversing whcih is what you do in graph dbs) Data ------------------- 
    //Now who has bought meat? 
    graph.traversal().V().has("name", "meat").in("bought").forEachRemaining(v -> System.out.println(v.value("name"))); 

    //Who are all our customers 
    /*graph.traversal().V().hasLabel("customer").forEachRemaining(v -> System.out.println(v.value("name"))); 

    //What products do we have 
    graph.traversal().V().hasLabel("product").forEachRemaining(v -> System.out.println(v.value("name")));*/ 


    graph.close(); 

} 
} 

나는 solr에서 같은 그래프를 색인하고 싶습니다.

  1. java를 사용하는 방법?
  2. 키 공간 및 색인의 테이블을 쿼리합니까? 같은 그래프가 solr에 색인되어있는 접근 방식은 무엇입니까?

답변

1

타이탄은 solr과 직접 통합됩니다. 즉, 은 solr과 직접 대화 할 필요가 없습니다. 오히려, 당신은 타이탄에게 당신을 위해 이야기하게하고 이것은 그래프를 통과 할 때마다 자연스럽게 일어납니다.

정의해야 할 일은 색인 번호 here입니다. Solr/Elastic 검색 here에 의해 최적화 된 혼합 인덱스를 사용하는 예를 제공합니다.

그래서 위의 예에서 특정 유형의 순회를 실행할 때마다 titan과 solr이 빠르게 반응합니다.

혼합 색인을 만들어야한다는 것을 기억하십시오.

색인을 정의하는 것 외에도 solan으로 titan을 실행해야합니다. 불행히도 이것은 그렇게 간단하지 않습니다. 당신은 solr을 달려야하고, 내가했던 것처럼 솔직히 말하는 titan에게 달려야한다 here

+0

나는 당신이 지적했던 재료를 따라 갔다. $ SOLR_HOME/server/solr/configsets/{config_set} 아래 titan/conf/solr의 하위 디렉토리를 포함한 내용을 복사했습니다. 나는 Solr에서 코어를 만들지 않았지만 다음과 같은 구성을위한 코드를 만든다. BaseConfiguration baseConfiguration = new BaseConfiguration(); baseConfiguration.setProperty ("index.search.backend", "solr"); baseConfiguration.setProperty ("index.search.solr.mode", "http"); baseConfiguration.setProperty ("index.search.solr.httpurls", "http://192.168.2.189:8983/solr"); –

+0

하지만 원인은 다음과 같습니다. java.lang.ClassNotFoundException : com.thinkaurelius.titan.diskstorage.es.ElasticSearchIndex. ES는 사용하고 싶지는 않지만 저장 용으로는 Cassandra 만, 색인 용으로는 Solr 만 사용하고 싶습니다. 예제 코드를 공유 할 수 있습니까? –