@Override public ResultSet query(StoreRef store, QName queryId, QueryParameter[] queryParameters) { CannedQueryDef definition = queryRegister.getQueryDefinition(queryId); // Do parameter replacement // As lucene phrases are tokensied it is correct to just do straight // string replacement. // The string will be formatted by the tokeniser. // // For non phrase queries this is incorrect but string replacement is // probably the best we can do. // As numbers and text are indexed specially, direct term queries only // make sense against textual data checkParameters(definition, queryParameters); String queryString = parameterise(definition.getQuery(), definition.getQueryParameterMap(), queryParameters, definition.getNamespacePrefixResolver()); return query(store, definition.getLanguage(), queryString, null); }
private void addQueryDefinition(CannedQueryDef queryDefinition) { queries.put(queryDefinition.getQname(), queryDefinition); }
public void testLoad() { QueryRegisterComponentImpl qr = new QueryRegisterComponentImpl(); qr.setNamespaceService(namespaceService); qr.setDictionaryService(dictionaryService); qr.loadQueryCollection("testQueryRegister.xml"); assertNotNull(qr.getQueryDefinition(QName.createQName("alf", "query1", namespaceService))); assertEquals("lucene", qr.getQueryDefinition(QName.createQName("alf", "query1", namespaceService)).getLanguage()); assertEquals("http://www.trees.tulip/barking/woof", qr.getQueryDefinition(QName.createQName("alf", "query1", namespaceService)).getNamespacePrefixResolver().getNamespaceURI("tulip")); assertEquals("+QNAME:$alf:query-parameter-name", qr.getQueryDefinition(QName.createQName("alf", "query1", namespaceService)).getQuery()); assertEquals(2, qr.getQueryDefinition(QName.createQName("alf", "query1", namespaceService)).getQueryParameterDefs().size()); }
for (QueryParameterDefinition parameterDefinition : definition.getQueryParameterDefs())
for (QueryParameterDefinition parameterDefinition : definition.getQueryParameterDefs())
@Override public ResultSet query(StoreRef store, QName queryId, QueryParameter[] queryParameters) { CannedQueryDef definition = queryRegister.getQueryDefinition(queryId); // Do parameter replacement // As lucene phrases are tokensied it is correct to just do straight // string replacement. // The string will be formatted by the tokeniser. // // For non phrase queries this is incorrect but string replacement is // probably the best we can do. // As numbers and text are indexed specially, direct term queries only // make sense against textual data checkParameters(definition, queryParameters); String queryString = parameterise(definition.getQuery(), definition.getQueryParameterMap(), queryParameters, definition.getNamespacePrefixResolver()); return query(store, definition.getLanguage(), queryString, null); }
private void addQueryDefinition(CannedQueryDef queryDefinition) { queries.put(queryDefinition.getQname(), queryDefinition); }