@Override public PojoQueryDefinition filteredQuery(StructuredQueryDefinition query) { CombinedQueryBuilder cqb = new CombinedQueryBuilderImpl(); StringHandle options = new StringHandle( "<options><search-option>filtered</search-option></options>") .withFormat(Format.XML); return cqb.combine(query, options); }
private String serialize(CombinedQueryDefinitionImpl qdef) { try { if ( qdef.format != null ) { if ( Format.XML == qdef.format ) { return makeXMLCombinedQuery(qdef); } else if ( Format.JSON == qdef.format ) { return makeJSONCombinedQuery(qdef); } else { throw new IllegalStateException("A RawStructuredQueryDefinition must " + "be XML or JSON, not " + qdef.format); } } return makeXMLCombinedQuery(qdef); } catch (Exception e) { throw new MarkLogicIOException(e); } }
if ( rawQuery != null && rawQuery instanceof RawCombinedQueryDefinition ) { CombinedQueryDefinitionImpl combinedQdef = parseCombinedQuery((RawCombinedQueryDefinition) rawQuery); rawQuery = combinedQdef.rawQuery; if ( qtext == null ) qtext = combinedQdef.qtext; XMLStreamWriter serializer = makeXMLSerializer(out);
CombinedQueryDefinition combinedQdef = new CombinedQueryBuilderImpl().combine( (RawCombinedQueryDefinition) constrainingQuery, null, null, sparql); Format format = combinedQdef.getFormat(); input = new StringHandle(combinedQdef.serialize()).withFormat(format); } else if ( constrainingQuery instanceof RawStructuredQueryDefinition ) { CombinedQueryDefinition combinedQdef = new CombinedQueryBuilderImpl().combine( (RawStructuredQueryDefinition) constrainingQuery, null, null, sparql); Format format = combinedQdef.getFormat(); constrainingQuery instanceof StructuredQueryDefinition ? (StructuredQueryDefinition) constrainingQuery : null; CombinedQueryDefinition combinedQdef = new CombinedQueryBuilderImpl().combine( structuredQuery, null, stringQuery, sparql); input = new StringHandle(combinedQdef.serialize()).withMimetype(MIMETYPE_APPLICATION_XML);
@Test public void buildCombinedQuery() throws Exception { String qtext = "hello"; String collection = "myCollection"; QueryOptionsWriteHandle options = buildOptions(); StructuredQueryBuilder sqb = Common.client.newQueryManager().newStructuredQueryBuilder(); StructuredQueryDefinition structuredQuery = sqb.collection(collection); // NOTICE!! CombinedQueryBuilderImpl is for internal use only for now--it's undocmented and unsupported. CombinedQueryBuilderImpl cqb = new CombinedQueryBuilderImpl(); CombinedQueryDefinition query = cqb.combine(structuredQuery, options, qtext); String expected = buildExpected(qtext, collection); String serialized = query.serialize(); assertXMLEqual("Output not as expected", expected, serialized); PojoRepository<City, Integer> cities = Common.client.newPojoRepository(City.class, Integer.class); PojoQueryBuilder<City> qb = cities.getQueryBuilder(); query = (CombinedQueryDefinition) qb.filteredQuery(qb.word("asciiName", new String[] {"wildcarded"}, 1, "Chittagong*")); expected = "<?xml version=\"1.0\" ?>" + "<search xmlns=\"http://marklogic.com/appservices/search\">" + "<query>" + "<word-query>" + "<json-property>asciiName</json-property><text>Chittagong*</text>" + "<term-option>wildcarded</term-option><weight>1.0</weight>" + "</word-query>" + "</query>" + "<options><search-option>filtered</search-option></options>" + "</search>"; serialized = query.serialize(); assertXMLEqual("Output not as expected", expected, serialized); }