@Override public List<String> getJobNames() { List<String> jobNames = new ArrayList<>(); QueryManager queryMgr = databaseClient.newQueryManager(); ValuesDefinition valuesDef = queryMgr.newValuesDefinition("jobName", SEARCH_OPTIONS_NAME); ValuesHandle results = queryMgr.values(valuesDef, new ValuesHandle()); for (CountedDistinctValue value : results.getValues()) { jobNames.add(value.get("xs:string", String.class)); } return jobNames; }
ValuesDefinition valuesDef = queryMgr.newValuesDefinition("title-val", "aggregatesOpt5Occ.xml");
ValuesDefinition queryDef = queryMgr.newValuesDefinition("popularity", "aggregatesOpt.xml"); queryDef.setAggregate("correlation", "covariance"); queryDef.setName("pop-rate-tups");
ValuesDefinition queryDef = queryMgr.newValuesDefinition("score", "aggregatesOpt.xml"); queryDef.setAggregate("sum", "avg", "max", "min"); queryDef.setName("score-aggr");
@Test public void testValuesAggregatesFiveOccurences() throws KeyManagementException, NoSuchAlgorithmException, IOException, ParserConfigurationException, SAXException, XpathException, TransformerException { System.out.println("Running testValuesAggregatesThreeOccurences"); String[] filenames = { "aggr1.xml", "aggr2.xml", "aggr3.xml", "aggr4.xml" }; String queryOptionName = "aggregatesOpt5Occ.xml"; DatabaseClient client = getDatabaseClient("rest-admin", "x", getConnType()); // write docs for (String filename : filenames) { writeDocumentUsingInputStreamHandle(client, filename, "/values-aggr/", "XML"); } setQueryOption(client, queryOptionName); QueryManager queryMgr = client.newQueryManager(); // create query def ValuesDefinition queryDef = queryMgr.newValuesDefinition("title", "aggregatesOpt5Occ.xml"); queryDef.setAggregate("count"); queryDef.setName("title-val"); // create handle ValuesHandle valuesHandle = new ValuesHandle(); queryMgr.values(queryDef, valuesHandle); AggregateResult[] agg = valuesHandle.getAggregates(); System.out.println(agg.length); System.out.println(agg[0].getValue()); // release client client.release(); }
ValuesDefinition queryDef = queryMgr.newValuesDefinition("date", "aggregatesOpt3Occ.xml"); queryDef.setAggregate("count"); queryDef.setName("date-val"); assertEquals("Wrong counting", "4", agg[0].getValue()); ValuesDefinition queryDef1 = queryMgr.newValuesDefinition("popularity", "aggregatesOpt3Occ.xml"); queryDef1.setAggregate("correlation", "covariance"); queryDef1.setName("pop-rate-tups");
@Test public void testValuesAggregatesWithJson() throws KeyManagementException, NoSuchAlgorithmException, IOException, ParserConfigurationException, SAXException, XpathException, TransformerException { System.out.println("Running testValuesAggregatesWithJson"); String[] filenames = { "aggr1.xml", "aggr2.xml", "aggr3.xml", "aggr4.xml", "aggr5.xml" }; String queryOptionName = "aggregatesOpt.xml"; DatabaseClient client = getDatabaseClient("rest-admin", "x", getConnType()); // write docs for (String filename : filenames) { writeDocumentUsingInputStreamHandle(client, filename, "/values-aggr/", "XML"); } setQueryOption(client, queryOptionName); QueryManager queryMgr = client.newQueryManager(); // create query def ValuesDefinition queryDef = queryMgr.newValuesDefinition("popularity", "aggregatesOpt.xml"); queryDef.setAggregate("sum", "avg", "max", "min"); queryDef.setName("pop-aggr"); // create handle StringHandle resultHandle = new StringHandle().withFormat(Format.JSON); queryMgr.values(queryDef, resultHandle); String result = resultHandle.get(); System.out.println(result); assertEquals("{", result.substring(0, 1)); // release client client.release(); }
@Test public void testBug19144WithXml() throws KeyManagementException, NoSuchAlgorithmException, IOException, ParserConfigurationException, SAXException, XpathException, TransformerException { System.out.println("Running testBug19144WithXml"); String[] filenames = { "aggr1.xml", "aggr2.xml", "aggr3.xml", "aggr4.xml", "aggr5.xml" }; String queryOptionName = "aggregatesOpt.xml"; DatabaseClient client = getDatabaseClient("rest-admin", "x", getConnType()); // write docs for (String filename : filenames) { writeDocumentUsingInputStreamHandle(client, filename, "/bug19144/", "XML"); } setQueryOption(client, queryOptionName); QueryManager queryMgr = client.newQueryManager(); // create query def ValuesDefinition queryDef = queryMgr.newValuesDefinition("popularity", "aggregatesOpt.xml"); queryDef.setAggregate("correlation", "covariance"); queryDef.setName("pop-rate-tups"); // create handle StringHandle resultHandle = new StringHandle().withFormat(Format.XML); queryMgr.tuples(queryDef, resultHandle); String result = resultHandle.get(); System.out.println(result); assertEquals("<", result.substring(0, 1)); // release client client.release(); }
@Test public void testBug19144WithJson() throws KeyManagementException, NoSuchAlgorithmException, IOException, ParserConfigurationException, SAXException, XpathException, TransformerException { System.out.println("Running testBug19144WithJson"); String[] filenames = { "aggr1.xml", "aggr2.xml", "aggr3.xml", "aggr4.xml", "aggr5.xml" }; String queryOptionName = "aggregatesOpt.xml"; DatabaseClient client = getDatabaseClient("rest-admin", "x", getConnType()); // write docs for (String filename : filenames) { writeDocumentUsingInputStreamHandle(client, filename, "/bug19144/", "XML"); } setQueryOption(client, queryOptionName); QueryManager queryMgr = client.newQueryManager(); // create query def ValuesDefinition queryDef = queryMgr.newValuesDefinition("popularity", "aggregatesOpt.xml"); queryDef.setAggregate("correlation", "covariance"); queryDef.setName("pop-rate-tups"); // create handle StringHandle resultHandle = new StringHandle().withFormat(Format.JSON); queryMgr.tuples(queryDef, resultHandle); String result = resultHandle.get(); System.out.println(result); assertEquals("{", result.substring(0, 1)); // release client client.release(); }
@Test public void testTuples() { String str = head + lexiconOptions + tail; RawCombinedQueryDefinition rawCombinedQueryDefinition; rawCombinedQueryDefinition = queryMgr .newRawCombinedQueryDefinition(new StringHandle(str).withMimetype("application/xml")); StringHandle stringResults = null; ValuesDefinition vdef = queryMgr.newValuesDefinition("n-way"); vdef.setQueryDefinition(rawCombinedQueryDefinition); stringResults = queryMgr.tuples(vdef, new StringHandle()); System.out.println(stringResults.get()); TuplesHandle tuplesResults = queryMgr.tuples(vdef, new TuplesHandle()); Tuple[] tuples = tuplesResults.getTuples(); assertNotNull(tuples); }
@Test public void testValuesPaging() throws IOException, ParserConfigurationException, SAXException { String optionsName = makeValuesOptions(); QueryManager queryMgr = Common.client.newQueryManager(); queryMgr.setPageLength(2); ValuesDefinition vdef = queryMgr.newValuesDefinition("double", optionsName); ValuesHandle v = queryMgr.values(vdef, new ValuesHandle(), 2); CountedDistinctValue dv[] = v.getValues(); assertNotNull("There should be values", dv); assertEquals("There should be 2 values", 2, dv.length); assertEquals("The first value should be '1.2'", dv[0].get("xs:double", Double.class).toString(), "1.2"); assertEquals("The second value should be '2.2'", dv[1].get("xs:double", Double.class).toString(), "2.2"); Common.adminClient.newServerConfigManager().newQueryOptionsManager().deleteOptions(optionsName); }
queryMgr.newValuesDefinition("double", optionsName); stringQuery = queryMgr.newStringDefinition(); stringQuery.setCriteria("10");
@Test public void testValues() { String str = head + lexiconOptions + tail; RawCombinedQueryDefinition rawCombinedQueryDefinition; rawCombinedQueryDefinition = queryMgr .newRawCombinedQueryDefinition(new StringHandle(str).withMimetype("application/xml")); StringHandle stringResults = null; ValuesDefinition vdef = queryMgr.newValuesDefinition("grandchild"); vdef.setQueryDefinition(rawCombinedQueryDefinition); stringResults = queryMgr.tuples(vdef, new StringHandle()); System.out.println(stringResults.get()); ValuesHandle valuesResults = queryMgr.values(vdef, new ValuesHandle()); assertFalse(valuesResults.getMetrics().getTotalTime() == -1); CountedDistinctValue[] values = valuesResults.getValues(); assertNotNull(values); }
queryMgr.setPageLength(6); ValuesDefinition vdef = queryMgr.newValuesDefinition("co", "valuesoptions");
@Test public void testAggregates() throws IOException, ParserConfigurationException, SAXException, ResourceNotFoundException, ForbiddenUserException, FailedRequestException, ResourceNotResendableException { String optionsName = makeValuesOptions(); QueryManager queryMgr = Common.client.newQueryManager(); ValuesDefinition vdef = queryMgr.newValuesDefinition("double", optionsName); vdef.setAggregate("sum", "avg"); vdef.setName("double"); //ValuesListDefinition vldef = queryMgr.newValuesListDefinition("valuesoptions"); //ValuesListHandle vlh = queryMgr.valuesList(vldef, new ValuesListHandle()); ValuesHandle v = queryMgr.values(vdef, new ValuesHandle()); AggregateResult[] agg = v.getAggregates(); assertEquals("There should be 2 aggregates", 2, agg.length); double first = agg[0].get("xs:double", Double.class); assertTrue("Aggregate 1 should be between 11.4 and 12", 11.4 < first && first < 12.0); double second = agg[1].get("xs:double", Double.class); logger.debug("" + second); assertTrue("Aggregate 2 should be between 1.43 and 1.44", 1.43 < second && second < 1.44); Common.adminClient.newServerConfigManager().newQueryOptionsManager().deleteOptions(optionsName); }
@Test public void testAggregates() throws IOException, ParserConfigurationException, SAXException, ResourceNotFoundException, ForbiddenUserException, FailedRequestException, ResourceNotResendableException { QueryOptionsManager optionsMgr = Common.adminClient.newServerConfigManager().newQueryOptionsManager(); optionsMgr.writeOptions("valuesoptions2", new StringHandle(options)); logger.debug(options.toString()); QueryManager queryMgr = Common.client.newQueryManager(); ValuesDefinition vdef = queryMgr.newValuesDefinition("co", "valuesoptions2"); vdef.setAggregate("correlation", "covariance"); TuplesHandle t = queryMgr.tuples(vdef, new TuplesHandle()); AggregateResult[] agg = t.getAggregates(); assertEquals("Two aggregates are expected", 2, agg.length); double cov = t.getAggregate("covariance").get("xs:double", Double.class); assertTrue("The covariance is between 1.551 and 1.552", cov > 1.551 && cov < 1.552); Tuple[] tuples = t.getTuples(); assertEquals("Twelve tuples are expected", 12, tuples.length); assertEquals("The tuples are named 'co'", "co", t.getName()); ValuesMetrics metrics = t.getMetrics(); assertTrue("The values resolution time is >= 0", metrics.getValuesResolutionTime() >= 0); assertTrue("The aggregate resolution time is >= 0", metrics.getAggregateResolutionTime() >= 0); optionsMgr.deleteOptions("valuesoptions2"); }
@Test public void testCoVariances() throws IOException, ParserConfigurationException, SAXException, ResourceNotFoundException, ForbiddenUserException, FailedRequestException, ResourceNotResendableException { QueryOptionsManager optionsMgr = Common.adminClient.newServerConfigManager().newQueryOptionsManager(); optionsMgr.writeOptions("valuesoptions3", new StringHandle(options)); QueryManager queryMgr = Common.client.newQueryManager(); ValuesDefinition vdef = queryMgr.newValuesDefinition("co", "valuesoptions3"); TuplesHandle t = queryMgr.tuples(vdef, new TuplesHandle()); Tuple[] tuples = t.getTuples(); assertEquals("Twelve tuples are expected", 12, tuples.length); assertEquals("The tuples are named 'co'", "co", t.getName()); ValuesMetrics metrics = t.getMetrics(); assertTrue("The values resolution time is >= 0", metrics.getValuesResolutionTime() >= 0); // Restore after bug:18747 is fixed // assertEquals("The aggregate resolution time is -1 (absent)", metrics.getAggregateResolutionTime(), -1); optionsMgr.deleteOptions("valuesoptions3"); }
@Test public void testValuesHandle() throws IOException, ParserConfigurationException, SAXException, ResourceNotFoundException, ForbiddenUserException, FailedRequestException, ResourceNotResendableException { QueryOptionsManager optionsMgr = Common.adminClient.newServerConfigManager().newQueryOptionsManager(); optionsMgr.writeOptions("valuesoptions", new StringHandle(options)); QueryManager queryMgr = Common.client.newQueryManager(); ValuesDefinition vdef = queryMgr.newValuesDefinition("co", "valuesoptions"); TuplesHandle t = queryMgr.tuples(vdef, new TuplesHandle()); Tuple[] tuples = t.getTuples(); assertEquals("Twelve tuples are expected", 12, tuples.length); assertEquals("The tuples are named 'co'", "co", t.getName()); TypedDistinctValue[] dv = tuples[0].getValues(); assertEquals("Two values per tuple expected", 2, dv.length); assertEquals("First is long", "xs:double", dv[0].getType()); assertEquals("Second is int", "xs:int", dv[1].getType()); assertEquals("Frequency is 1", 1, tuples[0].getCount()); assertEquals("First value", 1.1, (double) dv[0].get(Double.class), 0.01); assertEquals("Second value", (int) 1, (int) dv[1].get(Integer.class)); optionsMgr.deleteOptions("valuesoptions"); }
ValuesDefinition vdef = queryMgr.newValuesDefinition("double", optionsName);
@Test public void testNWayTuples() throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException, ResourceNotResendableException { QueryOptionsManager optionsMgr = Common.adminClient.newServerConfigManager().newQueryOptionsManager(); optionsMgr.writeOptions("valuesoptions", new StringHandle(options)); QueryManager queryMgr = Common.client.newQueryManager(); ValuesDefinition vdef = queryMgr.newValuesDefinition("n-way", "valuesoptions"); TuplesHandle t = queryMgr.tuples(vdef, new TuplesHandle()); Tuple[] tuples = t.getTuples(); assertEquals("Four tuples are expected", 4, tuples.length); assertEquals("The tuples are named 'n-way'", "n-way", t.getName()); TypedDistinctValue[] dv = tuples[0].getValues(); assertEquals("Three values per tuple expected", 3, dv.length); assertEquals("First is long", "xs:double", dv[0].getType()); assertEquals("Second is int", "xs:int", dv[1].getType()); assertEquals("Third is string", "xs:string", dv[2].getType()); assertEquals("Frequency is 1", 1, tuples[0].getCount()); assertEquals("First value", 1.1, (double) dv[0].get(Double.class), 0.01); assertEquals("Second value", (int) 1, (int) dv[1].get(Integer.class)); assertEquals("Third value", "Alaska", (String) dv[2].get(String.class)); optionsMgr.deleteOptions("valuesoptions"); }