addEdgeLabelFilterToQuery(query, relationshipIri, false, workspaceId); query.limit(0); long results = query.search().getTotalHits(); if (results == 0) { List<OntologyProperty> removeProperties = relationship.getProperties().stream().filter(ontologyProperty ->
addConceptTypeFilterToQuery(query, concept.getIRI(), false, workspaceId); query.limit(0); long results = query.search().getTotalHits(); if (results == 0) { List<OntologyProperty> removeProperties = concept.getProperties().stream().filter(ontologyProperty ->
@Test public void testLimitingNumberOfQueryStringTerms() { graph.prepareVertex("v1", VISIBILITY_A).setProperty("prop1", "value1", VISIBILITY_A).save(AUTHORIZATIONS_A); graph.flush(); StringBuilder q = new StringBuilder(); for (int i = 0; i < getSearchIndex().getConfig().getMaxQueryStringTerms(); i++) { q.append("jeff").append(i).append(" "); } // should succeed graph.query(q.toString(), AUTHORIZATIONS_A).search().getTotalHits(); try { q.append("done"); graph.query(q.toString(), AUTHORIZATIONS_A).search().getTotalHits(); fail("Exceeding max query terms should have thrown an exception"); } catch (VertexiumException e) { // expected } }
@Test public void testExtendedDataDelete() { graph.prepareVertex("v1", VISIBILITY_A) .addExtendedData("table1", "row1", "name", "value", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.flush(); graph.deleteVertex("v1", AUTHORIZATIONS_A); graph.flush(); QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertEquals(0, searchResults.getTotalHits()); }
assertEquals(1, rows.size()); QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertEquals(1, searchResults.getTotalHits()); .search(); List<VertexiumObject> searchResultsList = toList(searchResults); assertEquals("search result items", 0, searchResultsList.size());
@Test public void testExtendedDataDelete() { graph.prepareVertex("v1", VISIBILITY_A) .addExtendedData("table1", "row1", "name", "value", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.flush(); graph.deleteVertex("v1", AUTHORIZATIONS_A); graph.flush(); QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertEquals(0, searchResults.getTotalHits()); }
assertEquals(1, rows.size()); QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertEquals(1, searchResults.getTotalHits()); .search(); List<VertexiumObject> searchResultsList = toList(searchResults); assertEquals("search result items", 0, searchResultsList.size());
QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("red", AUTHORIZATIONS_A).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query("red", AUTHORIZATIONS_B).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query("red", AUTHORIZATIONS_A_AND_B).search(); assertResultsCount(1, 1, searchResults); searchResults = graph.query(AUTHORIZATIONS_A).search(); assertResultsCount(1, 1, searchResults); searchResults = graph.query(AUTHORIZATIONS_B).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query(AUTHORIZATIONS_A_AND_B).search(); assertResultsCount(3, 3, searchResults); searchResults = graph.query(AUTHORIZATIONS_A).search(); assertResultsCount(1, 1, searchResults); searchResults = graph.query(AUTHORIZATIONS_B).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query(AUTHORIZATIONS_C).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query(authorizationsAandC).search(); assertResultsCount(2, 2, searchResults);
@Test public void testExtendedDataQueryVerticesAfterVisibilityChange() { String nameColumnName = "name.column"; String tableName = "table.one"; String rowOneName = "row.one"; String rowTwoName = "row.two"; graph.defineProperty(nameColumnName).sortable(true).textIndexHint(TextIndexHint.values()).dataType(String.class).define(); graph.prepareVertex("v1", VISIBILITY_A) .addExtendedData(tableName, rowOneName, nameColumnName, "value 1", VISIBILITY_A) .addExtendedData(tableName, rowTwoName, nameColumnName, "value 2", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v2", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.flush(); QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertResultsCount(2, 2, searchResults); assertRowIdsAnyOrder(Lists.newArrayList(rowOneName, rowTwoName), searchResults); graph.createAuthorizations(AUTHORIZATIONS_A_AND_B); graph.getVertex("v1", FetchHints.ALL, AUTHORIZATIONS_A) .prepareMutation() .alterElementVisibility(VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertResultsCount(0, 0, searchResults); }
@Test public void testExtendedDataQueryVerticesAfterVisibilityChange() { String nameColumnName = "name.column"; String tableName = "table.one"; String rowOneName = "row.one"; String rowTwoName = "row.two"; graph.defineProperty(nameColumnName).sortable(true).textIndexHint(TextIndexHint.values()).dataType(String.class).define(); graph.prepareVertex("v1", VISIBILITY_A) .addExtendedData(tableName, rowOneName, nameColumnName, "value 1", VISIBILITY_A) .addExtendedData(tableName, rowTwoName, nameColumnName, "value 2", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v2", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.flush(); QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertResultsCount(2, 2, searchResults); assertRowIdsAnyOrder(Lists.newArrayList(rowOneName, rowTwoName), searchResults); graph.createAuthorizations(AUTHORIZATIONS_A_AND_B); graph.getVertex("v1", FetchHints.ALL, AUTHORIZATIONS_A) .prepareMutation() .alterElementVisibility(VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); searchResults = graph.query("value", AUTHORIZATIONS_A) .search(); assertResultsCount(0, 0, searchResults); }
QueryResultsIterable<? extends VertexiumObject> searchResults = graph.query("red", AUTHORIZATIONS_A).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query("red", AUTHORIZATIONS_B).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query("red", AUTHORIZATIONS_A_AND_B).search(); assertResultsCount(1, 1, searchResults); searchResults = graph.query(AUTHORIZATIONS_A).search(); assertResultsCount(1, 1, searchResults); searchResults = graph.query(AUTHORIZATIONS_B).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query(AUTHORIZATIONS_A_AND_B).search(); assertResultsCount(3, 3, searchResults); searchResults = graph.query(AUTHORIZATIONS_A).search(); assertResultsCount(1, 1, searchResults); searchResults = graph.query(AUTHORIZATIONS_B).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query(AUTHORIZATIONS_C).search(); assertResultsCount(0, 0, searchResults); searchResults = graph.query(authorizationsAandC).search(); assertResultsCount(2, 2, searchResults);
public void deleteProperty(String propertyIri, User user, String workspaceId) { checkDeletePrivileges(user, workspaceId); OntologyProperty property = getPropertyByIRI(propertyIri, workspaceId); if (property != null) { if (property.getSandboxStatus().equals(SandboxStatus.PRIVATE)) { Graph graph = getGraph(); Authorizations authorizations = graph.createAuthorizations(workspaceId); GraphQuery query = graph.query(authorizations); query.has(propertyIri); query.limit(0); long results = query.search().getTotalHits(); if (results == 0) { internalDeleteProperty(property, workspaceId); } else { throw new VisalloException("Unable to delete property that have elements using it"); } } else { throw new VisalloException("Unable to delete published properties"); } } else throw new VisalloResourceNotFoundException("Property not found"); }
.search(); assertEquals(2, searchResults.getTotalHits()); searchResultsList = toList(searchResults);
.search(); assertEquals(2, searchResults.getTotalHits()); searchResultsList = toList(searchResults);
.search(); assertEquals(2, searchResults.getTotalHits()); searchResultsList = toList(searchResults);
.search(); assertEquals(2, searchResults.getTotalHits()); searchResultsList = toList(searchResults);
@Test public void testDisallowLeadingWildcardsInQueryString() { graph.prepareVertex("v1", VISIBILITY_A).setProperty("prop1", "value1", VISIBILITY_A).save(AUTHORIZATIONS_A); graph.flush(); try { graph.query("*alue1", AUTHORIZATIONS_A).search().getTotalHits(); fail("Wildcard prefix of query string should have caused an exception"); } catch (Exception e) { if (!(getRootCause(e) instanceof NotSerializableExceptionWrapper)) { fail("Wildcard prefix of query string should have caused a NotSerializableExceptionWrapper exception"); } } }