StructuredQueryDefinition querydef = qb.and( qb.valueConstraint("jobKey", jobKeyGenerator.generateKey(jobParameters)), qb.valueConstraint("jobName", jobName), qb.collection(COLLECTION_JOB_INSTANCE) );
@Override public Set<JobExecution> findRunningJobExecutions(String jobName) { StructuredQueryBuilder qb = new StructuredQueryBuilder(SEARCH_OPTIONS_NAME); StructuredQueryDefinition querydef = qb.and(qb.valueConstraint("jobName", jobName)); logger.info(querydef.serialize()); QueryManager queryMgr = databaseClient.newQueryManager(); SearchHandle results = queryMgr.search(querydef, new SearchHandle()); Set<JobExecution> jobExecutions = new HashSet<>(); for ( MatchDocumentSummary summary : results.getMatchResults() ) { JAXBHandle<MarkLogicJobInstance> handle = new JAXBHandle<>(jaxbContext()); summary.getFirstSnippet(handle); MarkLogicJobInstance mji = handle.get(); for (JobExecution je : mji.getJobExecutions()) { if (je.getStatus().isRunning() && je.getEndTime() == null) { jobExecutions.add(je); } } } return jobExecutions; }
@Override public List<JobInstance> findJobInstancesByName(String jobName, int start, int count) { List<JobInstance> jobInstances = new ArrayList<>(); QueryManager queryMgr = databaseClient.newQueryManager(); StructuredQueryBuilder qb = new StructuredQueryBuilder(SEARCH_OPTIONS_NAME); StructuredQueryDefinition querydef = qb.and( qb.valueConstraint("jobName", jobName), qb.collection(COLLECTION_JOB_INSTANCE) ); queryMgr.setPageLength((long) count); SearchHandle results = queryMgr.search(querydef, new SearchHandle(), start); MatchDocumentSummary[] summaries = results.getMatchResults(); for (MatchDocumentSummary summary : summaries ) { JAXBHandle<MarkLogicJobInstance> jaxbHandle = new JAXBHandle<>(jaxbContext()); summary.getFirstSnippet(jaxbHandle); MarkLogicJobInstance mji = jaxbHandle.get(); jobInstances.add(mji.getJobInstance()); } return jobInstances; }
@Override public int getJobInstanceCount(String jobName) throws NoSuchJobException { StructuredQueryBuilder qb = new StructuredQueryBuilder(SEARCH_OPTIONS_NAME); StructuredQueryDefinition querydef = qb.and( qb.valueConstraint("jobName", jobName), qb.collection(COLLECTION_JOB_INSTANCE) ); QueryManager queryMgr = databaseClient.newQueryManager(); SearchHandle results = queryMgr.search(querydef, new SearchHandle()); int count = (int) results.getTotalResults(); if (count == 0) { throw new NoSuchJobException(jobName + " not found"); } else { return count; } }
StructuredQueryDefinition strutdDef = (qb.valueConstraint("popularity", "5")).withCriteria("Vannevar"); node.path("results").get(1).path("uri").asText().contains("/structured-query/constraint4.xml")); StructuredQueryDefinition strutdDefPos = (qb.valueConstraint("popularity", "5")).withCriteria("Vannevar").withCriteria("Atlantic").withCriteria("intellectual"); StructuredQueryDefinition strutdDefNeg = (qb.valueConstraint("popularity", "5")).withCriteria("Vannevar").withCriteria("England"); StructuredQueryDefinition strutdDef2 = qb.valueConstraint("popularity", "5"); strutdDef2.withCriteria("Vannevar").setCriteria("Bush");
StructuredQueryDefinition strutdDef = qb.valueConstraint("id", "0012"); strutdDef.setCriteria("Memex"); StructuredQueryDefinition strutdDefPos = qb.valueConstraint("id", "0012"); strutdDefPos.setCriteria("Memex"); strutdDefPos.setCriteria("described"); StructuredQueryDefinition strutdDefPosAnd = qb.valueConstraint("id", "0012"); strutdDefPosAnd.setCriteria("Memex AND described"); StructuredQueryDefinition strutdDefNeg = qb.valueConstraint("id", "0012"); strutdDefNeg.setCriteria("Memex"); strutdDefNeg.setCriteria("Atlantic");
StructuredQueryDefinition valueConstraintQuery1 = qb.valueConstraint("id", "00*2"); StructuredQueryDefinition valueConstraintQuery2 = qb.valueConstraint("id", "0??6"); StructuredQueryDefinition orFinalQuery = qb.or(valueConstraintQuery1, valueConstraintQuery2);
StructuredQueryDefinition valueConstraintQuery1 = qb.valueConstraint("id", "00*2"); StructuredQueryDefinition valueConstraintQuery2 = qb.valueConstraint("id", "0??6"); StructuredQueryDefinition orFinalQuery = qb.or(valueConstraintQuery1, valueConstraintQuery2);
String structuredString = qb.valueConstraint("name", "one").serialize();
StructuredQueryDefinition t = qb.valueConstraint("id", "0026");
t = qb.valueConstraint("name", "one"); for (String q: new String[]{t.serialize(), qb.build(t).toString()}) { xml = new StringInputStream(q); t = qb.valueConstraint("name", 2.0, "one"); for (String q: new String[]{t.serialize(), qb.build(t).toString()}) { xml = new StringInputStream(q); inner = qb.valueConstraint("name", "one").serialize(); assertXMLEqual("<query xmlns=\"http://marklogic.com/appservices/search\">" + "<value-constraint-query><constraint-name>name</constraint-name><text>one</text></value-constraint-query></query>", inner);
StructuredQueryDefinition query1 = qb.and(qb.collectionConstraint("coll", "set1"), qb.collectionConstraint("coll", "set5")); StructuredQueryDefinition query2 = qb.not(qb.wordConstraint("intitle", "memex")); StructuredQueryDefinition query3 = qb.valueConstraint("id", "**11"); StructuredQueryDefinition query4 = qb.rangeConstraint("date", StructuredQueryBuilder.Operator.EQ, "2005-01-01"); StructuredQueryDefinition query5 = qb.and(qb.wordConstraint("para", "Bush"), qb.not(qb.wordConstraint("para", "memex")));