먼저 당신이 인덱스를 만들 수있는 옵션이 있습니다. 옵션 2의 경우 g.V().has('employee','employeeId','emp123')
을 사용해야합니다.
g.V().hasLabel('employee').has('employeeId','emp123')
모든 직원을 먼저 선택하십시오. Titan은 먼저 색인을 활용할 수있는 필터 조건을 적용 할만큼 똑똑합니다.
내가 지적하고자하는 또 하나의 점은 다음과 같습니다. indexOnly()
의 요점은 다른 유형의 정점 사이에서 속성을 공유 할 수 있도록하는 것입니다. 그래서 등, 대신 재산 employeeId
를 호출, 당신은 그것을 uuid
를 호출 할 수 있고 또한 고용주, 회사를 위해 그것을 사용 g.V().has('<label>','<prop-key>','<prop-value>')
:
mgmt.buildIndex('employeeById', Vertex.class).addKey(uuid).indexOnly(employee).buildCompositeIndex()
mgmt.buildIndex('employerById', Vertex.class).addKey(uuid).indexOnly(employer).buildCompositeIndex()
mgmt.buildIndex('companyById', Vertex.class).addKey(uuid).indexOnly(company).buildCompositeIndex()
쿼리는 다음 항상이 패턴을해야합니다.우리가 글로벌 인덱스을 완전히 없애 버렸기 때문에 이것이 실제로 DSE 그래프로 갈 수있는 유일한 방법입니다. 모든 유형의 정점에 걸쳐 있습니다. 처음에 나는이 결정을 정말로 좋아하지 않았지만, 한편으로 이것은 훨씬 더 깨끗하다는 데 동의해야합니다.
대니얼 덕분에 정말 도움이되었습니다. –
대니얼, 그런 좋은 설명을 고맙습니다. 그것은 나를 위해 구름을 깨끗이 닦았다. 이제 우리는 gremlin 쿼리를 가능한 한 타이탄과 DSE 구문에 적합한 방식으로 작성하여 DSE로 마이그레이션 할 수 있습니다 (필연적 인 경우). 최소한 tussle로 수행 할 수 있습니다. :) – Phani