2013-08-29 3 views
0

나는 Titan 0.3.2를 임베디드 모드로 실행 중이며 Gremlin 쉘 (see previous question)을 통해 ElasticSearch 인덱스를 만들고 쿼리 할 수있었습니다. ES 인덱스 "search"를 호출하는 기본 구성을 사용하고 있습니다. Rexster를 통해 Titan ElasticSearch 백엔드 쿼리

이 검색

가 그렘린 쉘을 통해 오류없이 올바른 노드를 반환 :

g.query().has('my_label','abc').vertices() 
g.query().has('my_label',CONTAINS,'abc').vertices() 

을 그러나, 나는 RexPro를 통해이 같은 그렘린 쿼리를 실행하려고하면, Rexster는 위의 첫 번째 쿼리에 대해이 오류를 다시 보냅니다

제위한
java.util.concurrent.ExecutionException: 
javax.script.ScriptException: 
javax.script.ScriptException: 
java.lang.IllegalArgumentException: Index is unknown or not configured: search 

이 :

java.util.concurrent.ExecutionException: 
javax.script.ScriptException: 
javax.script.ScriptException: 
groovy.lang.MissingPropertyException: No such property: CONTAINS for class: Script3 

마찬가지로 I F 나는 (GET)이 REST API를 통해 인덱스 키를 조회하려고 : 나는 깨끗한 데이터베이스를 시작하려고하면,

{"message":"Index is unknown or not configured: search","error":"Index is unknown or not configured: search"} 

마지막 :

http://localhost:8182/graphs/graph/vertices?key=my_key&value=abc 

내가 같은 오류 응답을 수신 rexpro을 통해 인덱스 생성 스크립트를 실행

g.makeType().name("my_label").dataType(String.class).indexed("search", Vertex.class).unique(Direction.OUT).makePropertyKey(); 

나는 같은 알 수없는 인덱스 오류 참조 :

java.util.concurrent.ExecutionException: 
javax.script.ScriptException: 
javax.script.ScriptException: 
java.lang.IllegalArgumentException: Index is unknown or not configured: search 

Rexster는 인덱싱 백엔드에 대한 추가 정보를 필요로합니다. 아마도 구성 파일에 Rexster가 설치에 포함 된 기본값을 사용하고있을 가능성이 있습니다. 이 문제에 익숙한 사람이라면 누구입니까? 더 많은 정보를 제공해 주시면 기쁘게 생각합니다.

답변

2

당신은 여러 가지 일들이 벌어 지지만 중요한 것은 Titan 0.3.2에서 Rexster가 Titan 클래스를 자동으로 가져 오지 않으므로 CONTAINS으로 질의 할 수 없다는 것입니다. 이렇게하면 전체 패키지 이름을 지정해야합니다 내가 잘못 밖의 무엇을 확실히 말할 수

com.thinkaurelius.titan.core.attribute.Text.CONTAINS 

하지만, 탄성 검색 인덱스가 제대로 구성되지 않은 것 같습니다. Titan Server의 Rexster 구성 파일과 관련이 없습니다. Titan 구성 정보가 들어있는 titan.sh에 전달하는 두 번째 인수와 더 관련이 있습니다. 탄성 검색이 여기에 표시된 파일 (설치시 기본 설정)에 맞게 올바르게 구성되었는지 확인하십시오. https://github.com/thinkaurelius/titan/blob/master/config/titan-server-cassandra-es.properties

+0

스티븐, 다시 한 번 도움을 주셔서 감사합니다. 나는이 질문들 중 일부가 미래 타이탄 사용자들에게 도움이되기를 바라고 있습니다. 당신이 묘사 한대로 완전한'CONTAINS'가 작동했습니다. 그러나 필자의 Titan 구성 파일은 연결된 파일과 정확하게 일치하며 Gremlin 셸을 통해 Titan을 쿼리하면 ES가 올바르게 작동합니다. 이 문제가 Rexster에만 국한된 것이 아니라면, RexPro를 통해 쿼리 할 때'인덱스는 알 수 없거나 설정되지 않았습니다 : 검색'이라고 표시되는 이유는 무엇입니까? – bcm360

+0

나는 문제가 titan.sh에게 먹이를주고있는 rexster.xml과 관련이 없다는 것을 의미했습니다. 이것은 인덱스 나'titan-server-cassandra-es.properties' 파일의 생성과 관련이 있습니다. 'titan-server-cassandra-es.properties'와는 달리'titan-server-cassandra.properties'를'titan.sh'에 대한 호출로 지정함으로써 그 오류를 재현 할 수있었습니다. 탄성 검색이 구성되지 않은 경우 그래프에 대해 유형 메이커를 사용하려고하면 오류가 발생하는 것으로 보입니다. –

+0

배치 스크립트에 문제가 있다는 것은 옳았습니다.Titan은 내가 통과 한 환경 설정 파일을 제대로 읽지 못했지만, gremlin 쉘은'cassandra-es.local' 설정 파일 때문에 elasticsearch 색인을 알아낼 수있었습니다 (g = TitanFactory.open ("cassandra-es.local")'). 다시 한번 감사합니다. – bcm360