List of usage examples for org.apache.solr.common SolrDocumentList getNumFound
public long getNumFound()
From source file:org.apache.sentry.tests.e2e.solr.TestAbacOperations.java
License:Apache License
@Test public void simpleTest() throws Exception { String collectionName = "simpleCollection"; createCollection(ADMIN_USER, collectionName, "cloud-minimal_abac", NUM_SERVERS, 1); CloudSolrClient client = cluster.getSolrClient(); /*abacuser1 has the following: orGroupsAttr: group1/*ww w. ja va2s . com*/ orGroupsAttr: group2 andGroupsAttr: group11 andGroupsAttr: group12 lteAttr: THREE gteAttr: THIRTY */ // Add a set of docs that we know will match ArrayList<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); for (int i = 0; i < numDocs; ++i) { SolrInputDocument doc = new SolrInputDocument(); String iStr = Long.toString(i); doc.addField("id", iStr); doc.addField("description", "description" + iStr); doc.addField(lteFieldName, "THREE"); doc.addField(gteFieldName, "THIRTY"); doc.addField(orGroupsFieldName, "group1"); doc.addField(andGroupsFieldName, "group11"); doc.addField(andGroupsCountFieldName, 1); docs.add(doc); } //Add one further doc that won't match SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", numDocs); doc.addField("description", "description" + numDocs); doc.addField(lteFieldName, "ONE"); doc.addField(gteFieldName, "FIFTY"); doc.addField(orGroupsFieldName, "group9"); doc.addField(andGroupsFieldName, "group99"); doc.addField(andGroupsCountFieldName, 1); docs.add(doc); client.add(collectionName, docs); client.commit(collectionName, true, true); QueryRequest request = new QueryRequest(new SolrQuery("*:*")); setAuthenticationUser("abacuser1"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(numDocs, docList.getNumFound()); }
From source file:org.apache.sentry.tests.e2e.solr.TestAbacOperations.java
License:Apache License
@Test public void lteFilterTest() throws Exception { /*//from www.j a va 2 s . c o m We're going to test with three users, each with different values for lteAttr, ONE, THREE and FIVE All other attributes for those users will be fixed. */ String collectionName = "lteCollection"; createCollection(ADMIN_USER, collectionName, "cloud-minimal_abac", NUM_SERVERS, 1); CloudSolrClient client = cluster.getSolrClient(); String[] lteValues = { "ONE", "TWO", "THREE", "FOUR", "FIVE" }; ArrayList<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); for (int i = 0; i < numDocs * lteValues.length; ++i) { SolrInputDocument doc = new SolrInputDocument(); String iStr = Long.toString(i); doc.addField("id", iStr); doc.addField("description", "lte Test Doc: " + iStr); doc.addField(lteFieldName, lteValues[i % lteValues.length]); doc.addField(gteFieldName, "THIRTY"); doc.addField(orGroupsFieldName, "group1"); doc.addField(andGroupsFieldName, "group11"); doc.addField(andGroupsCountFieldName, 1); docs.add(doc); } client.add(collectionName, docs); client.commit(collectionName, true, true); QueryRequest request = new QueryRequest(new SolrQuery("*:*")); /* lteuser1 has lteAttr of ONE -> Should see numDocs docs lteuser2 has lteAttr of THREE -> Should see numDocs * 3 lteuser3 has lteAttr of FIVE -> Should see numDocs * 5 docs */ setAuthenticationUser("lteuser1"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(numDocs, docList.getNumFound()); setAuthenticationUser("lteuser2"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(numDocs * 3, docList.getNumFound()); setAuthenticationUser("lteuser3"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(numDocs * 5, docList.getNumFound()); }
From source file:org.apache.sentry.tests.e2e.solr.TestAbacOperations.java
License:Apache License
@Test public void gteFilterTest() throws Exception { /*/*ww w .j av a 2s. c o m*/ We're going to test with three users, each with different values for gteAttr, TEN, THIRTY and FIFTY All other attributes for those users will be fixed. */ String collectionName = "gteCollection"; createCollection(ADMIN_USER, collectionName, "cloud-minimal_abac", NUM_SERVERS, 1); CloudSolrClient client = cluster.getSolrClient(); String[] gteValues = { "TEN", "TWENTY", "THIRTY", "FORTY", "FIFTY" }; ArrayList<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); for (int i = 0; i < numDocs * gteValues.length; ++i) { SolrInputDocument doc = new SolrInputDocument(); String iStr = Long.toString(i); doc.addField("id", iStr); doc.addField("description", "gte Test Doc: " + iStr); doc.addField(gteFieldName, gteValues[i % gteValues.length]); doc.addField(lteFieldName, "THREE"); doc.addField(orGroupsFieldName, "group1"); doc.addField(andGroupsFieldName, "group11"); doc.addField(andGroupsCountFieldName, 1); docs.add(doc); } client.add(collectionName, docs); client.commit(collectionName, true, true); QueryRequest request = new QueryRequest(new SolrQuery("*:*")); /* gteuser1 has gteAttr of TEN -> Should see numDocs * 5 docs gteuser2 has gteAttr of THIRTY -> Should see numDocs * 3 gteuser3 has gteAttr of FIFTY -> Should see numDocs docs */ setAuthenticationUser("gteuser1"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(numDocs * 5, docList.getNumFound()); setAuthenticationUser("gteuser2"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(numDocs * 3, docList.getNumFound()); setAuthenticationUser("gteuser3"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(numDocs, docList.getNumFound()); }
From source file:org.apache.sentry.tests.e2e.solr.TestAbacOperations.java
License:Apache License
@Test public void orGroupsFilterTest() throws Exception { /*/*from w w w . ja v a2 s. c om*/ We're going to test with three users, each with different values for orGroups All other attributes for those users will be fixed. */ String collectionName = "orGroupsCollection"; createCollection(ADMIN_USER, collectionName, "cloud-minimal_abac", NUM_SERVERS, 1); CloudSolrClient client = cluster.getSolrClient(); int[] groupDocCount = new int[3]; ArrayList<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); for (int i = 0; i < numDocs * 4; ++i) { SolrInputDocument doc = new SolrInputDocument(); String iStr = Long.toString(i); doc.addField("id", iStr); doc.addField("description", "Or Groups Test Doc: " + iStr); doc.addField(gteFieldName, "THIRTY"); doc.addField(lteFieldName, "THREE"); if (i % 2 == 0) { groupDocCount[0]++; doc.addField(orGroupsFieldName, "group1"); } if (i % 3 == 0) { doc.addField(orGroupsFieldName, "group2"); } if (i % 4 == 0) { doc.addField(orGroupsFieldName, "group3"); } if (i % 2 == 0 || i % 3 == 0) { groupDocCount[1]++; } if (i % 2 == 0 || i % 3 == 0 || i % 4 == 0) { groupDocCount[2]++; } doc.addField(andGroupsFieldName, "group11"); doc.addField(andGroupsCountFieldName, 1); docs.add(doc); } client.add(collectionName, docs); client.commit(collectionName, true, true); QueryRequest request = new QueryRequest(new SolrQuery("*:*")); /* oruser1 has group1 oruser2 has group1, group2 oruser3 has group1, group2, group3 */ setAuthenticationUser("oruser1"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(groupDocCount[0], docList.getNumFound()); setAuthenticationUser("oruser2"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(groupDocCount[1], docList.getNumFound()); setAuthenticationUser("oruser3"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(groupDocCount[2], docList.getNumFound()); }
From source file:org.apache.sentry.tests.e2e.solr.TestAbacOperations.java
License:Apache License
@Test public void andGroupsFilterTest() throws Exception { /*//from w ww.j a va 2s.c o m We're going to test with three users, each with different values for andGroups All other attributes for those users will be fixed. */ String collectionName = "andGroupsCollection"; createCollection(ADMIN_USER, collectionName, "cloud-minimal_abac", NUM_SERVERS, 1); CloudSolrClient client = cluster.getSolrClient(); int[] groupDocCount = new int[3]; ArrayList<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); for (int i = 0; i < numDocs * 4; ++i) { int andGroups = 0; SolrInputDocument doc = new SolrInputDocument(); String iStr = Long.toString(i); doc.addField("id", iStr); doc.addField("description", "Or Groups Test Doc: " + iStr); doc.addField(gteFieldName, "THIRTY"); doc.addField(lteFieldName, "THREE"); if (i % 2 == 0) { doc.addField(andGroupsFieldName, "group11"); andGroups++; } if (i % 3 == 0) { doc.addField(andGroupsFieldName, "group12"); andGroups++; } if (i % 4 == 0) { doc.addField(andGroupsFieldName, "group13"); andGroups++; } if (i % 2 == 0 && (i % 3 != 0 && i % 4 != 0)) { groupDocCount[0]++; } if ((i % 2 == 0 || i % 3 == 0) && i % 4 != 0) { groupDocCount[1]++; } if (i % 2 == 0 || i % 3 == 0 || i % 4 == 0) { groupDocCount[2]++; } doc.addField(andGroupsCountFieldName, andGroups); doc.addField(orGroupsFieldName, "group1"); docs.add(doc); } client.add(collectionName, docs); client.commit(collectionName, true, true); QueryRequest request = new QueryRequest(new SolrQuery("*:*")); /* anduser1 has group11 anduser2 has group11, group12 anduser3 has group11, group12, group13 */ setAuthenticationUser("anduser1"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(groupDocCount[0], docList.getNumFound()); setAuthenticationUser("anduser2"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(groupDocCount[1], docList.getNumFound()); setAuthenticationUser("anduser3"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(groupDocCount[2], docList.getNumFound()); }
From source file:org.apache.sentry.tests.e2e.solr.TestAbacOperations.java
License:Apache License
@Test public void nestedOrGroupsFilterTest() throws Exception { /*/*from w ww .j a v a2 s . c o m*/ We're going to test with three users, each with different values for orGroups All other attributes for those users will be fixed. */ String collectionName = "nestedOrGroupsCollection"; createCollection(ADMIN_USER, collectionName, "cloud-minimal_abac", NUM_SERVERS, 1); CloudSolrClient client = cluster.getSolrClient(); int[] groupDocCount = new int[3]; ArrayList<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); for (int i = 0; i < numDocs * 4; ++i) { SolrInputDocument doc = new SolrInputDocument(); String iStr = Long.toString(i); doc.addField("id", iStr); doc.addField("description", "Nested Or Groups Test Doc: " + iStr); doc.addField(gteFieldName, "THIRTY"); doc.addField(lteFieldName, "THREE"); if (i % 2 == 0) { doc.addField(orGroupsFieldName, "nestedgroup1"); doc.addField(orGroupsFieldName, "nestedgroup4"); } if (i % 3 == 0) { doc.addField(orGroupsFieldName, "nestedgroup2"); doc.addField(orGroupsFieldName, "nestedgroup5"); } if (i % 4 == 0) { doc.addField(orGroupsFieldName, "nestedgroup3"); doc.addField(orGroupsFieldName, "nestedgroup6"); } if (i % 2 == 0 || i % 3 == 0 || i % 4 == 0) { groupDocCount[0]++; } doc.addField(andGroupsFieldName, "group11"); doc.addField(andGroupsCountFieldName, 1); docs.add(doc); } client.add(collectionName, docs); client.commit(collectionName, true, true); QueryRequest request = new QueryRequest(new SolrQuery("*:*")); /* nesteduser1 has nestedgroup1, nestedgroup2 and nestedgroup3 nesteduser2 has nestedgroup4, nestedgroup5 and nestedgroup6 oruser1 does not have any of the nested groups so should return zero */ setAuthenticationUser("oruser1"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(0, docList.getNumFound()); setAuthenticationUser("nesteduser1"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(groupDocCount[0], docList.getNumFound()); setAuthenticationUser("nesteduser2"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(groupDocCount[0], docList.getNumFound()); }
From source file:org.apache.sentry.tests.e2e.solr.TestDocLevelOperations.java
License:Apache License
private void querySimple(String collectionName, QueryRequest request, CloudSolrClient client, boolean checkNonAdminUsers) throws Exception { // as admin -- should get the other half setAuthenticationUser("admin"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(NUM_DOCS / 2, docList.getNumFound()); for (SolrDocument doc : docList) { String id = doc.getFieldValue("id").toString(); assertEquals(1, Long.valueOf(id) % 2); }/*from w w w . jav a2 s. c o m*/ if (checkNonAdminUsers) { // as junit -- should get half the documents setAuthenticationUser("junit"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(NUM_DOCS / 2, docList.getNumFound()); for (SolrDocument doc : docList) { String id = doc.getFieldValue("id").toString(); assertEquals(0, Long.valueOf(id) % 2); } // as docLevel -- should get all setAuthenticationUser("doclevel"); rsp = request.process(client, collectionName); assertEquals(NUM_DOCS, rsp.getResults().getNumFound()); } }
From source file:org.apache.sentry.tests.e2e.solr.TestDocLevelOperations.java
License:Apache License
private void checkAllRolesToken(String collectionName, QueryRequest request, CloudSolrClient client, int totalAllRolesAdded, int totalOnlyAllRolesAdded, int allRolesFactor, int totalJunitAdded, int junitFactor) throws Exception { // as admin -- should only get all roles token documents setAuthenticationUser("admin"); QueryResponse rsp = request.process(client, collectionName); SolrDocumentList docList = rsp.getResults(); assertEquals(totalAllRolesAdded, docList.getNumFound()); for (SolrDocument doc : docList) { String id = doc.getFieldValue("id").toString(); assertEquals(0, Long.valueOf(id) % allRolesFactor); }/* w w w.ja v a 2 s. c om*/ // as junit -- should get junit added + onlyAllRolesAdded setAuthenticationUser("junit"); rsp = request.process(client, collectionName); docList = rsp.getResults(); assertEquals(totalJunitAdded + totalOnlyAllRolesAdded, docList.getNumFound()); for (SolrDocument doc : docList) { String id = doc.getFieldValue("id").toString(); boolean addedJunit = (Long.valueOf(id) % junitFactor) == 0; boolean onlyAllRoles = !addedJunit && (Long.valueOf(id) % allRolesFactor) == 0; assertEquals(true, addedJunit || onlyAllRoles); } }
From source file:org.apache.sentry.tests.e2e.solr.TestRealTimeGet.java
License:Apache License
private void assertExpected(ExpectedResult expectedResult, QueryResponse rsp, QueryResponse controlRsp) throws Exception { SolrDocumentList docList = rsp.getResults(); SolrDocumentList controlDocList = controlRsp.getResults(); SolrDocument doc = (SolrDocument) rsp.getResponse().get("doc"); SolrDocument controlDoc = (SolrDocument) controlRsp.getResponse().get("doc"); if (expectedResult.expectedDocs == 0) { // could be null rather than 0 size, check against control that format is identical assertNull("Should be no doc present: " + doc, doc); assertNull("Should be no doc present: " + controlDoc, controlDoc); assertTrue((docList == null && controlDocList == null) || (controlDocList.getNumFound() == 0 && controlDocList.getNumFound() == 0)); } else {//from w w w .j a v a2 s. co m if (docList == null) { assertNull(controlDocList); assertNotNull(doc); assertNotNull(controlDoc); } else { assertNotNull(controlDocList); assertNull(doc); assertNull(controlDoc); assertEquals(expectedResult.expectedDocs, docList.getNumFound()); assertEquals(docList.getNumFound(), controlDocList.getNumFound()); } } }
From source file:org.apache.sentry.tests.e2e.solr.TestRealTimeGet.java
License:Apache License
private void assertFlOnDocList(SolrDocumentList list, Set<String> expectedIds, List<String> expectedFields) { assertEquals("Doc list size should be: " + expectedIds.size(), expectedIds.size(), list.getNumFound()); for (SolrDocument doc : list) { expectedIds.contains(doc.get("id")); for (String field : expectedFields) { assertNotNull("Field: " + field + " should not be null in doc: " + doc, doc.get(field)); }//w w w . ja v a2s. co m assertEquals("doc should have: " + expectedFields.size() + " fields. Doc: " + doc, expectedFields.size(), doc.getFieldNames().size()); } }