diff --git a/source/java/org/alfresco/cmis/CMISResultSet.java b/source/java/org/alfresco/cmis/CMISResultSet.java index 2c3cc81be9..832a18ee7f 100644 --- a/source/java/org/alfresco/cmis/CMISResultSet.java +++ b/source/java/org/alfresco/cmis/CMISResultSet.java @@ -30,13 +30,12 @@ package org.alfresco.cmis; * A CMIS result set * * @author andyh - * */ public interface CMISResultSet extends Iterable { /** * Get the result set meta-data. - * @return + * @return the metadata */ public CMISResultSetMetaData getMetaData(); @@ -44,7 +43,7 @@ public interface CMISResultSet extends Iterable * Get the start point for this results set in the overall * set of rows that match the query - this will be equal to the skip count * set when executing the query. - * @return + * @return the start position */ public int getStart(); @@ -57,7 +56,7 @@ public interface CMISResultSet extends Iterable * If a skip count is given, the length represents the number of results * after the skip count and does not include the items skipped. * - * @return + * @return the length */ public int getLength(); @@ -70,7 +69,7 @@ public interface CMISResultSet extends Iterable /** * Was this result set curtailed - are there more pages to the result set? - * @return + * @return true if there are more results */ public boolean hasMore(); @@ -78,7 +77,7 @@ public interface CMISResultSet extends Iterable /** * Get the given row * @param i -the position in this result set - start + i gives the position in the overall result set - * @return + * @return the row */ public CMISResultSetRow getRow(int i); diff --git a/source/java/org/alfresco/cmis/CMISResultSetRow.java b/source/java/org/alfresco/cmis/CMISResultSetRow.java index c9f785f416..08e5cbf824 100644 --- a/source/java/org/alfresco/cmis/CMISResultSetRow.java +++ b/source/java/org/alfresco/cmis/CMISResultSetRow.java @@ -39,7 +39,7 @@ public interface CMISResultSetRow { /** * Get all the column data. - * @return - a map of serializable column values with teh column name as the key + * @return - a map of serializable column values with the column name as the key */ public Map getValues(); @@ -53,12 +53,12 @@ public interface CMISResultSetRow /** * Get the overall score. * - * @return + * @return the overall score */ public float getScore(); /** - * Get the scores . + * Get the scores. * @return a map of selector name to score. */ public Map getScores(); @@ -85,8 +85,8 @@ public interface CMISResultSetRow /** * Get the index of this result set in the result set - * If you want the overall position in paged reults you have to add the skipCount fo the result set. - * @return + * If you want the overall position in paged results you have to add the skipCount fo the result set. + * @return the index of the row. */ public int getIndex(); diff --git a/source/java/org/alfresco/cmis/search/CMISQueryParser.java b/source/java/org/alfresco/cmis/search/CMISQueryParser.java index 115c288c96..7541b21d98 100644 --- a/source/java/org/alfresco/cmis/search/CMISQueryParser.java +++ b/source/java/org/alfresco/cmis/search/CMISQueryParser.java @@ -382,7 +382,7 @@ public class CMISQueryParser throw new CMISQueryException("A selector must be specified when there are two or more selectors"); } } - return ftsQueryParser.buildFTS(ftsExpression.substring(1, ftsExpression.length() - 1), factory, functionEvaluationContext, selector, columns, Connective.OR, Connective.OR); + return ftsQueryParser.buildFTS(ftsExpression.substring(1, ftsExpression.length() - 1), factory, functionEvaluationContext, selector, columns, Connective.OR, Connective.OR, null); case CMISParser.PRED_IN: functionName = In.NAME; function = factory.getFunction(functionName); diff --git a/source/java/org/alfresco/repo/search/AbstractResultSet.java b/source/java/org/alfresco/repo/search/AbstractResultSet.java index 6d8009823e..0d028914b8 100644 --- a/source/java/org/alfresco/repo/search/AbstractResultSet.java +++ b/source/java/org/alfresco/repo/search/AbstractResultSet.java @@ -29,27 +29,27 @@ import java.util.List; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; +import org.apache.lucene.search.HitCollector; +/** + * Common result set implementation. + * + * @author andyh + */ public abstract class AbstractResultSet implements ResultSet { - private Path[] propertyPaths; - - public AbstractResultSet(Path[] propertyPaths) + /** + * Default constructor + */ + public AbstractResultSet() { super(); - this.propertyPaths = propertyPaths; + } - public Path[] getPropertyPaths() - { - return propertyPaths; - } - - public float getScore(int n) { // All have equal weight by default @@ -64,7 +64,7 @@ public abstract class AbstractResultSet implements ResultSet public List getNodeRefs() { ArrayList nodeRefs = new ArrayList(length()); - for(ResultSetRow row: this) + for (ResultSetRow row : this) { nodeRefs.add(row.getNodeRef()); } @@ -74,13 +74,11 @@ public abstract class AbstractResultSet implements ResultSet public List getChildAssocRefs() { ArrayList cars = new ArrayList(length()); - for(ResultSetRow row: this) + for (ResultSetRow row : this) { cars.add(row.getChildAssocRef()); } return cars; } - - } diff --git a/source/java/org/alfresco/repo/search/AbstractResultSetRow.java b/source/java/org/alfresco/repo/search/AbstractResultSetRow.java index 9775f248cc..1a1489b1a3 100644 --- a/source/java/org/alfresco/repo/search/AbstractResultSetRow.java +++ b/source/java/org/alfresco/repo/search/AbstractResultSetRow.java @@ -31,11 +31,15 @@ import java.util.Map; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.namespace.QName; +/** + * Common support for a row in a result set + * + * @author andyh + */ public abstract class AbstractResultSetRow implements ResultSetRow { @@ -50,12 +54,17 @@ public abstract class AbstractResultSetRow implements ResultSetRow private int index; /** - * The direct properties of the current node - * Used by those implementations that can cache the whole set. + * The direct properties of the current node Used by those implementations that can cache the whole set. */ - private Map properties; + protected Map properties; + /** + * The row needs the result set and the index for lookup. + * + * @param resultSet + * @param index + */ public AbstractResultSetRow(ResultSet resultSet, int index) { super(); @@ -82,55 +91,49 @@ public abstract class AbstractResultSetRow implements ResultSetRow { return getResultSet().getChildAssocRef(getIndex()).getQName(); } - + public ChildAssociationRef getChildAssocRef() { return getResultSet().getChildAssocRef(getIndex()); } - + public float getScore() { return getResultSet().getScore(getIndex()); } - public Map getValues() + public Map getValues() { if (properties == null) { - properties = new HashMap(); + properties = new HashMap(); setProperties(getDirectProperties()); } return Collections.unmodifiableMap(properties); } - public Serializable getValue(Path path) + public Serializable getValue(String columnName) { - return properties.get(path); + return properties.get(columnName); } - + protected Map getDirectProperties() { - return Collections.emptyMap(); + return Collections. emptyMap(); } - + protected void setProperties(Map byQname) { for (QName qname : byQname.keySet()) { Serializable value = byQname.get(qname); - Path path = new Path(); - path.append(new Path.SelfElement()); - path.append(new Path.AttributeElement(qname)); - properties.put(path, value); + properties.put(qname.toString(), value); } } - + public Serializable getValue(QName qname) { - Path path = new Path(); - path.append(new Path.SelfElement()); - path.append(new Path.AttributeElement(qname)); - return getValues().get(path); + return getValues().get(qname.toString()); } - + } diff --git a/source/java/org/alfresco/repo/search/AbstractSearcherComponent.java b/source/java/org/alfresco/repo/search/AbstractSearcherComponent.java index bdb05bc0a3..9f9c552ea4 100644 --- a/source/java/org/alfresco/repo/search/AbstractSearcherComponent.java +++ b/source/java/org/alfresco/repo/search/AbstractSearcherComponent.java @@ -56,19 +56,15 @@ public abstract class AbstractSearcherComponent implements SearchService public ResultSet query(StoreRef store, String language, String query) { - return query(store, language, query, null, null); + return query(store, language, query, null); } public ResultSet query(StoreRef store, String language, String query, QueryParameterDefinition[] queryParameterDefintions) { - return query(store, language, query, null, queryParameterDefintions); + return query(store, language, query, queryParameterDefintions); } - public ResultSet query(StoreRef store, String language, String query, Path[] attributePaths) - { - return query(store, language, query, attributePaths, null); - } public List selectNodes(NodeRef contextNodeRef, String xpath, QueryParameterDefinition[] parameters, NamespacePrefixResolver namespacePrefixResolver, boolean followAllParentLinks) diff --git a/source/java/org/alfresco/repo/search/EmptyResultSet.java b/source/java/org/alfresco/repo/search/EmptyResultSet.java index 8581fc1b68..9129279455 100644 --- a/source/java/org/alfresco/repo/search/EmptyResultSet.java +++ b/source/java/org/alfresco/repo/search/EmptyResultSet.java @@ -31,7 +31,6 @@ import java.util.List; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.LimitBy; import org.alfresco.service.cmr.search.PermissionEvaluationMode; import org.alfresco.service.cmr.search.ResultSet; @@ -39,19 +38,22 @@ import org.alfresco.service.cmr.search.ResultSetMetaData; import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.cmr.search.SearchParameters; +/** + * An empty result set + * @author andyh + * + */ public class EmptyResultSet implements ResultSet { + /** + * Default constructor + */ public EmptyResultSet() { super(); } - public Path[] getPropertyPaths() - { - return new Path[]{}; - } - public int length() { return 0; @@ -80,7 +82,6 @@ public class EmptyResultSet implements ResultSet public ResultSetRow getRow(int i) { - // TODO Auto-generated method stub throw new UnsupportedOperationException(); } @@ -96,7 +97,6 @@ public class EmptyResultSet implements ResultSet public ChildAssociationRef getChildAssocRef(int n) { - // TODO Auto-generated method stub throw new UnsupportedOperationException(); } @@ -104,4 +104,14 @@ public class EmptyResultSet implements ResultSet { return new SimpleResultSetMetaData(LimitBy.UNLIMITED, PermissionEvaluationMode.EAGER, new SearchParameters()); } + + public int getStart() + { + return 0; + } + + public boolean hasMore() + { + return false; + } } diff --git a/source/java/org/alfresco/repo/search/ResultSetRowIterator.java b/source/java/org/alfresco/repo/search/ResultSetRowIterator.java index cdf3ded6e4..a773f1fb33 100644 --- a/source/java/org/alfresco/repo/search/ResultSetRowIterator.java +++ b/source/java/org/alfresco/repo/search/ResultSetRowIterator.java @@ -26,15 +26,27 @@ package org.alfresco.repo.search; import java.util.ListIterator; +import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; /** * A typed ListIterator over Collections containing ResultSetRow elements * * @author andyh - * */ public interface ResultSetRowIterator extends ListIterator { + /** + * Get the underlying result set + * + * @return - the result set + */ + public ResultSet getResultSet(); + /** + * Does the result set allow reversal? + * + * @return - true if the result set can be navigated in reverse. + */ + public boolean allowsReverse(); } diff --git a/source/java/org/alfresco/repo/search/SearcherComponent.java b/source/java/org/alfresco/repo/search/SearcherComponent.java index 2db3490f6d..b9c788228e 100644 --- a/source/java/org/alfresco/repo/search/SearcherComponent.java +++ b/source/java/org/alfresco/repo/search/SearcherComponent.java @@ -58,16 +58,6 @@ public class SearcherComponent extends AbstractSearcherComponent this.indexerAndSearcherFactory = indexerAndSearcherFactory; } - public ResultSet query(StoreRef store, - String language, - String query, - Path[] queryOptions, - QueryParameterDefinition[] queryParameterDefinitions) - { - SearchService searcher = indexerAndSearcherFactory.getSearcher(store, true); - return searcher.query(store, language, query, queryOptions, queryParameterDefinitions); - } - public ResultSet query(StoreRef store, QName queryId, QueryParameter[] queryParameters) { // TODO Auto-generated method stub diff --git a/source/java/org/alfresco/repo/search/SimpleResultSetMetaData.java b/source/java/org/alfresco/repo/search/SimpleResultSetMetaData.java index f8019985a3..d9897903e8 100644 --- a/source/java/org/alfresco/repo/search/SimpleResultSetMetaData.java +++ b/source/java/org/alfresco/repo/search/SimpleResultSetMetaData.java @@ -26,11 +26,14 @@ package org.alfresco.repo.search; import org.alfresco.service.cmr.search.LimitBy; import org.alfresco.service.cmr.search.PermissionEvaluationMode; +import org.alfresco.service.cmr.search.ResultSetColumn; import org.alfresco.service.cmr.search.ResultSetMetaData; +import org.alfresco.service.cmr.search.ResultSetSelector; +import org.alfresco.service.cmr.search.ResultSetType; import org.alfresco.service.cmr.search.SearchParameters; /** - * Simple implementatio of result set meta data. + * Simple implementation of result set meta data. * * @author Andy Hind */ @@ -43,6 +46,13 @@ public class SimpleResultSetMetaData implements ResultSetMetaData private SearchParameters searchParameters; + /** + * Default properties. + * + * @param limitedBy + * @param permissoinEvaluationMode + * @param searchParameters + */ public SimpleResultSetMetaData(LimitBy limitedBy, PermissionEvaluationMode permissoinEvaluationMode, SearchParameters searchParameters) { super(); @@ -66,4 +76,39 @@ public class SimpleResultSetMetaData implements ResultSetMetaData return searchParameters; } + public ResultSetColumn getColumn(String name) + { + throw new UnsupportedOperationException(); + } + + public String[] getColumnNames() + { + throw new UnsupportedOperationException(); + } + + public ResultSetColumn getColumns() + { + throw new UnsupportedOperationException(); + } + + public ResultSetType getResultSetType() + { + throw new UnsupportedOperationException(); + } + + public ResultSetSelector getSelector(String name) + { + throw new UnsupportedOperationException(); + } + + public String[] getSelectorNames() + { + throw new UnsupportedOperationException(); + } + + public ResultSetSelector getSelectors() + { + throw new UnsupportedOperationException(); + } + } diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java index cc57123df2..dfe5e4b9af 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java @@ -398,7 +398,7 @@ public class ADMLuceneCategoryTest extends TestCase searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("")); ResultSet results; - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\" AND (PATH:\"/test:assetClass/test:Equity/member\" PATH:\"/test:marketingRegion/member\")", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\" AND (PATH:\"/test:assetClass/test:Equity/member\" PATH:\"/test:marketingRegion/member\")", null); //printPaths(results); assertEquals(9, results.length()); results.close(); @@ -425,95 +425,95 @@ public class ADMLuceneCategoryTest extends TestCase searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("")); ResultSet results; - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:marketingRegion\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:marketingRegion\"", null); //printPaths(results); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:marketingRegion//member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:marketingRegion//member\"", null); //printPaths(results); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/member\" ", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/member\" ", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/test:Fixed\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/test:Fixed\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/test:Equity\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/test:Equity\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Fixed\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Fixed\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:*\"", null); assertEquals(2, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass//test:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass//test:*\"", null); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Fixed/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Fixed/member\"", null); //printPaths(results); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/member\"", null); //printPaths(results); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/test:SpecialEquity/member//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/test:SpecialEquity/member//.\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/test:SpecialEquity/member//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/test:SpecialEquity/member//*\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/test:SpecialEquity/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/test:SpecialEquity/member\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PATH:\"/test:assetClass/test:Equity/member\" AND +PATH:\"/test:assetClass/test:Fixed/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PATH:\"/test:assetClass/test:Equity/member\" AND +PATH:\"/test:assetClass/test:Fixed/member\"", null); //printPaths(results); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/member\" PATH:\"/test:assetClass/test:Fixed/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/member\" PATH:\"/test:assetClass/test:Fixed/member\"", null); //printPaths(results); assertEquals(13, results.length()); results.close(); @@ -522,52 +522,52 @@ public class ADMLuceneCategoryTest extends TestCase assertEquals(4, nodeService.getChildAssocs(catRoot).size()); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region\"", null); //printPaths(results); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region/member\"", null); //printPaths(results); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region/test:Europe/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region/test:Europe/member\"", null); //printPaths(results); assertEquals(2, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region/test:RestOfWorld/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region/test:RestOfWorld/member\"", null); //printPaths(results); assertEquals(2, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region//member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:region//member\"", null); //printPaths(results); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:investmentRegion//member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:investmentRegion//member\"", null); //printPaths(results); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:marketingRegion//member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:marketingRegion//member\"", null); //printPaths(results); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PATH:\"/test:assetClass/test:Fixed/member\" AND +PATH:\"/test:region/test:Europe/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PATH:\"/test:assetClass/test:Fixed/member\" AND +PATH:\"/test:region/test:Europe/member\"", null); //printPaths(results); assertEquals(2, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/test:Fixed/member\" AND +PATH:\"/cm:categoryContainer/cm:categoryRoot/test:region/test:Europe/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/test:Fixed/member\" AND +PATH:\"/cm:categoryContainer/cm:categoryRoot/test:region/test:Europe/member\"", null); //printPaths(results); assertEquals(2, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/member\" PATH:\"/test:marketingRegion/member\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/test:assetClass/test:Equity/member\" PATH:\"/test:marketingRegion/member\"", null); //printPaths(results); assertEquals(9, results.length()); results.close(); @@ -595,11 +595,11 @@ public class ADMLuceneCategoryTest extends TestCase ResultSet - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/*\" ", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/*\" ", null); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/member\" ", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/cm:categoryContainer/cm:categoryRoot/test:assetClass/member\" ", null); assertEquals(1, results.length()); results.close(); diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java index 046f9e2896..66043e08d9 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java @@ -207,7 +207,7 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS this.queryRegister = queryRegister; } - public ResultSet query(StoreRef store, String language, String queryString, Path[] queryOptions, QueryParameterDefinition[] queryParameterDefinitions) throws SearcherException + public ResultSet query(StoreRef store, String language, String queryString, QueryParameterDefinition[] queryParameterDefinitions) throws SearcherException { store = tenantService.getName(store); @@ -215,13 +215,6 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS sp.addStore(store); sp.setLanguage(language); sp.setQuery(queryString); - if (queryOptions != null) - { - for (Path path : queryOptions) - { - sp.addAttrbutePath(path); - } - } if (queryParameterDefinitions != null) { for (QueryParameterDefinition qpd : queryParameterDefinitions) @@ -414,8 +407,8 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS hits = searcher.search(query); } - Path[] paths = searchParameters.getAttributePaths().toArray(new Path[0]); - ResultSet rs = new LuceneResultSet(hits, searcher, nodeService, tenantService, paths, searchParameters, getLuceneConfig()); + + ResultSet rs = new LuceneResultSet(hits, searcher, nodeService, tenantService, searchParameters, getLuceneConfig()); if (getLuceneConfig().getPostSortDateTime() && requiresPostSort) { ResultSet sorted = new SortedResultSet(rs, nodeService, searchParameters, namespacePrefixResolver); @@ -457,7 +450,7 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS return new EmptyResultSet(); } Hits hits = searcher.search(query); - return new LuceneResultSet(hits, searcher, nodeService, tenantService, searchParameters.getAttributePaths().toArray(new Path[0]), searchParameters, + return new LuceneResultSet(hits, searcher, nodeService, tenantService, searchParameters, getLuceneConfig()); } catch (SAXPathException e) @@ -538,17 +531,7 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS public ResultSet query(StoreRef store, String language, String query) { - return query(store, language, query, null, null); - } - - public ResultSet query(StoreRef store, String language, String query, QueryParameterDefinition[] queryParameterDefintions) - { - return query(store, language, query, null, queryParameterDefintions); - } - - public ResultSet query(StoreRef store, String language, String query, Path[] attributePaths) - { - return query(store, language, query, attributePaths, null); + return query(store, language, query, null); } public ResultSet query(StoreRef store, QName queryId, QueryParameter[] queryParameters) @@ -569,7 +552,7 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS String queryString = parameterise(definition.getQuery(), definition.getQueryParameterMap(), queryParameters, definition.getNamespacePrefixResolver()); - return query(store, definition.getLanguage(), queryString, null, null); + return query(store, definition.getLanguage(), queryString, null); } /** diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java index 5c942aac1a..cd0e12d601 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java @@ -364,7 +364,7 @@ public class ADMLuceneTest extends TestCase ArrayList testList = new ArrayList(); testList.add(null); - testProperties.put(QName.createQName(TEST_NAMESPACE, "nullList"), testList); + testProperties.put(QName.createQName(TEST_NAMESPACE, "nullist"), testList); ArrayList testList2 = new ArrayList(); testList2.add("woof"); testList2.add(null); @@ -842,14 +842,14 @@ public class ADMLuceneTest extends TestCase public void ftsQueryWithCount(ADMLuceneSearcherImpl searcher, String query, int count) { - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), SearchService.LANGUAGE_FTS_ALFRESCO, query, null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), SearchService.LANGUAGE_FTS_ALFRESCO, query, null); assertEquals(count, results.length()); results.close(); } public void ftsQueryWithCount(ADMLuceneSearcherImpl searcher, String query, int count, NodeRef first, NodeRef last) { - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), SearchService.LANGUAGE_FTS_ALFRESCO, query, null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), SearchService.LANGUAGE_FTS_ALFRESCO, query, null); for(ResultSetRow row : results) { System.out.println(""+ row.getScore() + nodeService.getProperty(row.getNodeRef(), ContentModel.PROP_NAME)); @@ -1273,7 +1273,7 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + n14 + "\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + n14 + "\"", null); assertEquals(1, results.length()); // one node results.close(); @@ -1288,7 +1288,7 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + n14 + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + n14 + "\"", null); assertEquals(10, results.length()); // one node + 9 aux paths to n14 results.close(); } @@ -1335,196 +1335,196 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:link\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:link\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null); assertEquals(15, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null); assertEquals(23, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null); assertEquals(9, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null); assertEquals(1, results.length()); results.close(); luceneFTS.resume(); @@ -1553,190 +1553,190 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:common\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null); assertEquals(15, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null); assertEquals(25, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null); assertEquals(24, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null); assertEquals(24, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null); assertEquals(24, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null); assertEquals(24, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null); assertEquals(24, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null); assertEquals(1, results.length()); results.close(); luceneFTS.resume(); @@ -2650,7 +2650,7 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@\\{namespace\\}property\\-2:\"valuetwo\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@\\{namespace\\}property\\-2:\"valuetwo\"", null); results.close(); luceneFTS.resume(); } @@ -2735,36 +2735,36 @@ public class ADMLuceneTest extends TestCase searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@\\{namespace\\}property\\-2:\"valuetwo\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@\\{namespace\\}property\\-2:\"valuetwo\"", null); simpleResultSetTest(results); - ChildAssocRefResultSet r2 = new ChildAssocRefResultSet(nodeService, results.getNodeRefs(), null, false); + ChildAssocRefResultSet r2 = new ChildAssocRefResultSet(nodeService, results.getNodeRefs(), false); simpleResultSetTest(r2); - ChildAssocRefResultSet r3 = new ChildAssocRefResultSet(nodeService, results.getNodeRefs(), null, true); + ChildAssocRefResultSet r3 = new ChildAssocRefResultSet(nodeService, results.getNodeRefs(), true); simpleResultSetTest(r3); - ChildAssocRefResultSet r4 = new ChildAssocRefResultSet(nodeService, results.getChildAssocRefs(), null); + ChildAssocRefResultSet r4 = new ChildAssocRefResultSet(nodeService, results.getChildAssocRefs()); simpleResultSetTest(r4); - DetachedResultSet r5 = new DetachedResultSet(results, null); + DetachedResultSet r5 = new DetachedResultSet(results); simpleResultSetTest(r5); - DetachedResultSet r6 = new DetachedResultSet(r2, null); + DetachedResultSet r6 = new DetachedResultSet(r2); simpleResultSetTest(r6); - DetachedResultSet r7 = new DetachedResultSet(r3, null); + DetachedResultSet r7 = new DetachedResultSet(r3); simpleResultSetTest(r7); - DetachedResultSet r8 = new DetachedResultSet(r4, null); + DetachedResultSet r8 = new DetachedResultSet(r4); simpleResultSetTest(r8); - DetachedResultSet r9 = new DetachedResultSet(r5, null); + DetachedResultSet r9 = new DetachedResultSet(r5); simpleResultSetTest(r9); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@\\{namespace\\}property\\-1:\"valueone\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@\\{namespace\\}property\\-1:\"valueone\"", null); assertEquals(2, results.length()); assertEquals(n2.getId(), results.getNodeRef(0).getId()); assertEquals(n1.getId(), results.getNodeRef(1).getId()); @@ -2772,7 +2772,7 @@ public class ADMLuceneTest extends TestCase assertEquals(1.0f, results.getScore(1)); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@namespace\\:property\\-1:\"valueone\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@namespace\\:property\\-1:\"valueone\"", null); assertEquals(2, results.length()); assertEquals(n2.getId(), results.getNodeRef(0).getId()); assertEquals(n1.getId(), results.getNodeRef(1).getId()); @@ -2780,7 +2780,7 @@ public class ADMLuceneTest extends TestCase assertEquals(1.0f, results.getScore(1)); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:\"valueone\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:\"valueone\"", null); assertEquals(2, results.length()); assertEquals(n2.getId(), results.getNodeRef(0).getId()); assertEquals(n1.getId(), results.getNodeRef(1).getId()); @@ -2788,7 +2788,7 @@ public class ADMLuceneTest extends TestCase assertEquals(1.0f, results.getScore(1)); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:\"Valueone\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:\"Valueone\"", null); assertEquals(2, results.length()); assertEquals(n2.getId(), results.getNodeRef(0).getId()); assertEquals(n1.getId(), results.getNodeRef(1).getId()); @@ -2796,7 +2796,7 @@ public class ADMLuceneTest extends TestCase assertEquals(1.0f, results.getScore(1)); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:ValueOne", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:ValueOne", null); assertEquals(2, results.length()); assertEquals(n2.getId(), results.getNodeRef(0).getId()); assertEquals(n1.getId(), results.getNodeRef(1).getId()); @@ -2804,7 +2804,7 @@ public class ADMLuceneTest extends TestCase assertEquals(1.0f, results.getScore(1)); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:valueone", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@property\\-1:valueone", null); assertEquals(2, results.length()); assertEquals(n2.getId(), results.getNodeRef(0).getId()); assertEquals(n1.getId(), results.getNodeRef(1).getId()); @@ -2814,7 +2814,7 @@ public class ADMLuceneTest extends TestCase QName qname = QName.createQName("", "property-1"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + n1.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + n1.toString() + "\"", null); assertEquals(2, results.length()); @@ -2855,7 +2855,7 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@\\{namespace\\}property-1:valueone", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@\\{namespace\\}property-1:valueone", null); try { assertEquals(2, results.length()); @@ -2872,7 +2872,7 @@ public class ADMLuceneTest extends TestCase results.close(); } - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+ID:\"" + n1.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+ID:\"" + n1.toString() + "\"", null); try { assertEquals(2, results.length()); @@ -2882,7 +2882,7 @@ public class ADMLuceneTest extends TestCase results.close(); } - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + rootNodeRef.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ID:\"" + rootNodeRef.toString() + "\"", null); try { assertEquals(1, results.length()); @@ -2949,517 +2949,517 @@ public class ADMLuceneTest extends TestCase searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); searcher.setQueryRegister(queryRegisterComponent); ResultSet results; - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/.\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*/*\"", null); assertEquals(8, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null); assertEquals(26, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null); assertEquals(15, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null); assertEquals(25, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null); assertEquals(25, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null); assertEquals(25, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null); assertEquals(25, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null); assertEquals(25, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//common\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one//common\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null); assertEquals(9, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//.\"", null); assertEquals(10, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen//.\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen//.//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen//.//.\"", null); assertEquals(1, results.length()); results.close(); // Type search tests QName qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"1\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":1", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":1", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"01\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"01\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":01", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":01", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + escapeQName(qname) + ":\"001\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + escapeQName(qname) + ":\"001\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@test\\:int\\-ista:\"0001\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@test\\:int\\-ista:\"0001\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 2]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 2]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO 2]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO 2]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO A]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO A]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 1}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 1}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO 1}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO 1}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO A}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO A}", null); assertEquals(1, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 2}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 2}", null); assertEquals(1, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{1 TO 2}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{1 TO 2}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{1 TO A}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{1 TO A}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"2\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"02\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"02\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"002\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"002\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"0002\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"0002\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 2]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 2]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO 2]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO 2]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO A]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[0 TO A]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 2}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 2}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO 2}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO 2}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO A}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{0 TO A}", null); assertEquals(1, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 3}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 3}", null); assertEquals(1, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{2 TO 3}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{2 TO 3}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "long-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{2 TO A}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{2 TO A}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"3.4\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"3.4\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 4]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 4]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3 TO 4]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3 TO 4]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3 TO A]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3 TO A]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 3.4]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 3.4]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO 3.4]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO 3.4]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO A]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO A]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 3.4}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 3.4}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO 3.4]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO 3.4]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO A]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO A]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"3.40\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"3.40\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"03.4\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"03.4\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "float-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"03.40\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"03.40\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"5.6\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"5.6\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"05.6\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"05.6\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"5.60\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"5.60\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"05.60\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "double-ista")) + ":\"05.60\"", null); assertEquals(1, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 5.7]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[A TO 5.7]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[5.5 TO 5.7]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[5.5 TO 5.7]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[5.5 TO A]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[5.5 TO A]", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 5.6}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 5.6}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.5 TO 5.6}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.5 TO 5.6}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.5 TO A}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.5 TO A}", null); assertEquals(1, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 5.7}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{A TO 5.7}", null); assertEquals(1, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.6 TO 5.7}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.6 TO 5.7}", null); assertEquals(0, results.length()); results.close(); qname = QName.createQName(TEST_NAMESPACE, "double-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.6 TO A}", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.6 TO A}", null); assertEquals(0, results.length()); results.close(); @@ -3473,33 +3473,33 @@ public class ADMLuceneTest extends TestCase Date date = new Date(); SimpleDateFormat df = CachingDateFormat.getDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", true); String sDate = df.format(date); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":\"" + sDate + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":\"" + sDate + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":\"" + sDate + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":\"" + sDate + "\"", null); assertEquals(usesDateTimeAnalyser ? 0 : 1, results.length()); results.close(); sDate = df.format(testDate); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":\"" + sDate + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":\"" + sDate + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":\"" + sDate + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":\"" + sDate + "\"", null); assertEquals(1, results.length()); results.close(); // short and long field ranges sDate = df.format(date); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@cm\\:created:[MIN TO " + sDate + "]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@cm\\:created:[MIN TO " + sDate + "]", null); assertEquals(1, results.length()); results.close(); sDate = df.format(date); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(ContentModel.PROP_CREATED) + ":[MIN TO " + sDate + "]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(ContentModel.PROP_CREATED) + ":[MIN TO " + sDate + "]", null); assertEquals(1, results.length()); results.close(); @@ -3508,34 +3508,34 @@ public class ADMLuceneTest extends TestCase sDate = df.format(date); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":[" + sDate + " TO " + sDate + "]", - null, null); + null); assertEquals(1, results.length()); results.close(); sDate = df.format(date); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":[MIN TO " + sDate + "]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":[MIN TO " + sDate + "]", null); assertEquals(1, results.length()); results.close(); sDate = df.format(date); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":[" + sDate + " TO MAX]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "date-ista")) + ":[" + sDate + " TO MAX]", null); assertEquals(1, results.length()); results.close(); sDate = CachingDateFormat.getDateFormat().format(date); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", - "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + sDate + " TO " + sDate + "]", null, null); + "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + sDate + " TO " + sDate + "]", null); assertEquals(usesDateTimeAnalyser ? 0 : 1, results.length()); results.close(); sDate = CachingDateFormat.getDateFormat().format(date); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[MIN TO " + sDate + "]", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[MIN TO " + sDate + "]", null); assertEquals(1, results.length()); results.close(); sDate = CachingDateFormat.getDateFormat().format(date); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + sDate + " TO MAX]", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + sDate + " TO MAX]", null); assertEquals(usesDateTimeAnalyser ? 0 : 1, results.length()); results.close(); @@ -3554,123 +3554,123 @@ public class ADMLuceneTest extends TestCase // System.out.println("\tEnd = " + endDate); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + startDate + " TO " + endDate + "]", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + startDate + " TO " + endDate + "]", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + sDate + " TO " + endDate + "]", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + sDate + " TO " + endDate + "]", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + startDate + " TO " + sDate + "]", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":[" + startDate + " TO " + sDate + "]", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":{" + sDate + " TO " + endDate + "}", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":{" + sDate + " TO " + endDate + "}", null); assertEquals(0, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":{" + startDate + " TO " + sDate + "}", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "datetime-ista")) + ":{" + startDate + " TO " + sDate + "}", null); assertEquals(0, results.length()); results.close(); } } - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "boolean-ista")) + ":\"true\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "boolean-ista")) + ":\"true\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "qname-ista")) + ":\"{wibble}wobble\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "qname-ista")) + ":\"{wibble}wobble\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "category-ista")) + ":\"" - + DefaultTypeConverter.INSTANCE.convert(String.class, new NodeRef(rootNodeRef.getStoreRef(), "CategoryId")) + "\"", null, null); + + DefaultTypeConverter.INSTANCE.convert(String.class, new NodeRef(rootNodeRef.getStoreRef(), "CategoryId")) + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "noderef-ista")) + ":\"" + n1 + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "noderef-ista")) + ":\"" + n1 + "\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "path-ista")) + ":\"" + nodeService.getPath(n3) + "\"", - null, null); + null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "path-ista"))); results.close(); // d:any - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "any-many-ista")) + ":\"100\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "any-many-ista")) + ":\"100\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "any-many-ista"))); results.close(); results = searcher - .query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "any-many-ista")) + ":\"anyValueAsString\"", null, null); + .query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "any-many-ista")) + ":\"anyValueAsString\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "any-many-ista"))); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "any-many-ista")) + ":\"nintc\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "any-many-ista")) + ":\"nintc\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "any-many-ista"))); results.close(); // proximity searches - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~0", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~0", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~1", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~1", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~2", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~2", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~3", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"Tutorial Alfresco\"~3", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Alfresco Tutorial\"", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Alfresco Tutorial\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~0", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~0", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~1", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~1", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~2", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~2", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~3", null, + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_DESCRIPTION.toString()) + ":\"Tutorial Alfresco\"~3", null); assertEquals(1, results.length()); @@ -3784,177 +3784,177 @@ public class ADMLuceneTest extends TestCase // locale - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":\"en_GB_\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":\"en_GB_\"", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "path-ista"))); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":en_GB_", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":en_GB_", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "path-ista"))); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":en_*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":en_*", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "path-ista"))); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":*_GB_*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":*_GB_*", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "path-ista"))); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":*_gb_*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(QName.createQName(TEST_NAMESPACE, "locale-ista")) + ":*_gb_*", null); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(QName.createQName(TEST_NAMESPACE, "path-ista"))); results.close(); // Type - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testType.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testType.toString() + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testType.toPrefixString(namespacePrefixResolver) + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testType.toPrefixString(namespacePrefixResolver) + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testType.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testType.toString() + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testType.toPrefixString(namespacePrefixResolver) + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testType.toPrefixString(namespacePrefixResolver) + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testSuperType.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testSuperType.toString() + "\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testSuperType.toPrefixString(namespacePrefixResolver) + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TYPE:\"" + testSuperType.toPrefixString(namespacePrefixResolver) + "\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testSuperType.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testSuperType.toString() + "\"", null); assertEquals(12, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testSuperType.toPrefixString(namespacePrefixResolver) + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "EXACTTYPE:\"" + testSuperType.toPrefixString(namespacePrefixResolver) + "\"", null); assertEquals(12, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toString() + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toPrefixString(namespacePrefixResolver) + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toPrefixString(namespacePrefixResolver) + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toString() + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toPrefixString(namespacePrefixResolver) + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + testAspect.toPrefixString(namespacePrefixResolver) + "\"", null); assertEquals(1, results.length()); results.close(); // Test for AR-384 - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fox AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fox AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fox cm\\:name:fox", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fox cm\\:name:fox", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fo AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fo AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", null); assertEquals(0, results.length()); results.close(); // Test stop words are equivalent - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"the\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"the\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"and\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"and\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"over the lazy\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"over the lazy\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"over a lazy\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"over a lazy\"", null); assertEquals(1, results.length()); results.close(); // Test wildcards in text - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:laz*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:laz*", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:laz~", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:laz~", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:la?y", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:la?y", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:?a?y", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:?a?y", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:*azy", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:*azy", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:*az*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:*az*", null); assertEquals(1, results.length()); results.close(); // Accents - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"\u00E0\u00EA\u00EE\u00F0\u00F1\u00F6\u00FB\u00FF\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"\u00E0\u00EA\u00EE\u00F0\u00F1\u00F6\u00FB\u00FF\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"aeidnouy\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"aeidnouy\"", null); assertEquals(1, results.length()); results.close(); // FTS test - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"fox\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"fox\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":\"fox\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":\"fox\"", null); assertEquals(1, results.length()); results.close(); results = searcher - .query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".mimetype:\"text/plain\"", null, null); + .query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".mimetype:\"text/plain\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".locale:\"en_GB\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".locale:\"en_GB\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".locale:en_*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".locale:en_*", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".locale:e*_GB", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".locale:e*_GB", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".size:\"298\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".size:\"298\"", null); assertEquals(1, results.length()); results.close(); @@ -4978,55 +4978,55 @@ public class ADMLuceneTest extends TestCase // Test non field queries - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fox", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fox", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fo*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:fo*", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:f*x", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:f*x", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:*ox", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:*ox", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":fox", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":fox", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":fo*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":fo*", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":f*x", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":f*x", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":*ox", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":*ox", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toPrefixString(namespacePrefixResolver)) + ":fox", - null, null); + null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toPrefixString(namespacePrefixResolver)) + ":fo*", - null, null); + null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toPrefixString(namespacePrefixResolver)) + ":f*x", - null, null); + null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toPrefixString(namespacePrefixResolver)) + ":*ox", - null, null); + null); assertEquals(1, results.length()); results.close(); @@ -5051,13 +5051,13 @@ public class ADMLuceneTest extends TestCase // TODO: should not have a null property type definition QueryParameterDefImpl paramDef = new QueryParameterDefImpl(QName.createQName("alf:lemur", namespacePrefixResolver), (DataTypeDefinition) null, true, "fox"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"${alf:lemur}\"", null, new QueryParameterDefinition[] { paramDef }); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "TEXT:\"${alf:lemur}\"", new QueryParameterDefinition[] { paramDef }); assertEquals(1, results.length()); results.close(); paramDef = new QueryParameterDefImpl(QName.createQName("alf:intvalue", namespacePrefixResolver), (DataTypeDefinition) null, true, "1"); qname = QName.createQName(TEST_NAMESPACE, "int-ista"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"${alf:intvalue}\"", null, new QueryParameterDefinition[] { paramDef }); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"${alf:intvalue}\"", new QueryParameterDefinition[] { paramDef }); assertEquals(1, results.length()); assertNotNull(results.getRow(0).getValue(qname)); results.close(); @@ -5065,17 +5065,17 @@ public class ADMLuceneTest extends TestCase // Open ended ranges qname = QName.createQName("{namespace}property-1"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[v TO w]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[v TO w]", null); assertEquals(2, results.length()); results.close(); qname = QName.createQName("{namespace}property-1"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[v TO \uFFFF]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[v TO \uFFFF]", null); assertEquals(2, results.length()); results.close(); qname = QName.createQName("{namespace}property-1"); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[\u0000 TO w]", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[\u0000 TO w]", null); assertEquals(2, results.length()); results.close(); } @@ -5098,39 +5098,39 @@ public class ADMLuceneTest extends TestCase ResultSet - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//common\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one//common\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null); assertEquals(9, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//.\"", null); assertEquals(10, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null); assertEquals(1, results.length()); results.close(); luceneFTS.resume(); @@ -5154,13 +5154,13 @@ public class ADMLuceneTest extends TestCase ResultSet - results = searcher.query(rootNodeRef.getStoreRef(), "xpath", "//./*", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "xpath", "//./*", null); assertEquals(14, results.length()); results.close(); luceneFTS.resume(); QueryParameterDefinition paramDef = new QueryParameterDefImpl(QName.createQName("alf:query", namespacePrefixResolver), (DataTypeDefinition) null, true, "//./*"); - results = searcher.query(rootNodeRef.getStoreRef(), "xpath", "${alf:query}", null, new QueryParameterDefinition[] { paramDef }); + results = searcher.query(rootNodeRef.getStoreRef(), "xpath", "${alf:query}", new QueryParameterDefinition[] { paramDef }); assertEquals(14, results.length()); results.close(); } @@ -5182,7 +5182,7 @@ public class ADMLuceneTest extends TestCase ResultSet - results = searcher.query(storeRef, "xpath", "//./*", null, null); + results = searcher.query(storeRef, "xpath", "//./*", null); assertEquals(0, results.length()); luceneFTS.resume(); } @@ -5260,184 +5260,184 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null); assertEquals(17, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null); assertEquals(16, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null); assertEquals(16, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null); assertEquals(16, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null); assertEquals(16, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null); assertEquals(16, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null); assertEquals(0, results.length()); results.close(); luceneFTS.resume(); @@ -5473,7 +5473,7 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:" + ISO9075.encode(COMPLEX_LOCAL_NAME) + "\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:" + ISO9075.encode(COMPLEX_LOCAL_NAME) + "\"", null); assertEquals(1, results.length()); results.close(); } @@ -5508,7 +5508,7 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:" + ISO9075.encode(COMPLEX_LOCAL_NAME) + "\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:" + ISO9075.encode(COMPLEX_LOCAL_NAME) + "\"", null); assertEquals(1, results.length()); results.close(); } @@ -5551,187 +5551,187 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null); assertEquals(13, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null); assertEquals(15, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null); assertEquals(12, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null); assertEquals(12, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null); assertEquals(12, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null); assertEquals(12, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null); assertEquals(12, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null); assertEquals(0, results.length()); results.close(); luceneFTS.resume(); @@ -5765,199 +5765,199 @@ public class ADMLuceneTest extends TestCase searcher.setNodeService(nodeService); searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:three\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:four\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:eight-0\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:five\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:one\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:two\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:six\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:seven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-1\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-2\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-2\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-1\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:eight-0\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:ten\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:eleven\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:five/namespace:twelve/namespace:thirteen/namespace:fourteen\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/namespace:*/namespace:*/namespace:*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:*/namespace:five/namespace:*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/namespace:*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/*/*/*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*\"", null); assertEquals(4, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/namespace:five/*\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one/*/namespace:nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//.\"", null); assertEquals(15, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//.\"", null); assertEquals(23, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/.\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//*/./.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//*/./.\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//./*\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//./*\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//././*/././.\"", null); assertEquals(14, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//././*/././.\"", null); assertEquals(22, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//common\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//common\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one//common\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one//common\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//*\"", null); assertEquals(6, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//*\"", null); assertEquals(9, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one/five//.\"", null); assertEquals(7, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"/one/five//.\"", null); assertEquals(10, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//five/nine\"", null); assertEquals(1, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/one//thirteen/fourteen\"", null); assertEquals(1, results.length()); results.close(); @@ -5994,15 +5994,15 @@ public class ADMLuceneTest extends TestCase searcher.setTenantService(tenantService); searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:link//.\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:link//.\"", null); assertEquals(2, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//namespace:link//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//namespace:link//.\"", null); assertEquals(3, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:renamed_link//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:renamed_link//.\"", null); assertEquals(0, results.length()); results.close(); @@ -6030,14 +6030,14 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:link//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:link//.\"", null); assertEquals(0, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:renamed_link//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"//namespace:renamed_link//.\"", null); assertEquals(2, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//namespace:renamed_link//.\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH_WITH_REPEATS:\"//namespace:renamed_link//.\"", null); assertEquals(3, results.length()); results.close(); luceneFTS.resume(); @@ -6059,17 +6059,17 @@ public class ADMLuceneTest extends TestCase searcher.setTenantService(tenantService); ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"KEYONE\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"KEYONE\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"KEYUNSTORED\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"KEYUNSTORED\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"KEYTWO\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"KEYTWO\"", null); assertEquals(0, results.length()); results.close(); @@ -6094,17 +6094,17 @@ public class ADMLuceneTest extends TestCase searcher.setTenantService(tenantService); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"keyone\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"keyone\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"keytwo\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"keytwo\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"keyunstored\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"keyunstored\"", null); assertEquals(1, results.length()); results.close(); @@ -6128,17 +6128,17 @@ public class ADMLuceneTest extends TestCase searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"KEYONE\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"KEYONE\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"KEYUNSTORED\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"KEYUNSTORED\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"KEYTWO\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"KEYTWO\"", null); assertEquals(0, results.length()); results.close(); @@ -6151,7 +6151,7 @@ public class ADMLuceneTest extends TestCase searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace")); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"keyone\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic")) + ":\"keyone\"", null); assertEquals(1, results.length()); results.close(); @@ -6177,12 +6177,12 @@ public class ADMLuceneTest extends TestCase Thread.sleep(35000); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"keytwo\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-nonatomic")) + ":\"keytwo\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" - + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"KEYUNSTORED\"", null, null); + + escapeQName(QName.createQName(TEST_NAMESPACE, "text-indexed-unstored-tokenised-atomic")) + ":\"KEYUNSTORED\"", null); assertEquals(1, results.length()); results.close(); @@ -6209,17 +6209,17 @@ public class ADMLuceneTest extends TestCase searcher.setDictionaryService(dictionaryService); searcher.setTenantService(tenantService); - ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PARENT:\"" + rootNodeRef.toString() + "\"", null, null); + ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PARENT:\"" + rootNodeRef.toString() + "\"", null); assertEquals(5, results.length()); results.close(); - results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PARENT:\"" + rootNodeRef.toString() + "\" +QNAME:\"one\"", null, null); + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "+PARENT:\"" + rootNodeRef.toString() + "\" +QNAME:\"one\"", null); assertEquals(1, results.length()); results.close(); results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "( +TYPE:\"{http://www.alfresco.org/model/content/1.0}content\" +@\\{http\\://www.alfresco.org/model/content/1.0\\}name:\"content woof\") OR TEXT:\"content\"", - null, null); + null); luceneFTS.resume(); } diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java index 53e5ea6ee4..e3fa7d2372 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java @@ -192,7 +192,7 @@ public class LuceneCategoryServiceImpl implements CategoryService break; } - resultSet = indexerAndSearcher.getSearcher(categoryRef.getStoreRef(), false).query(categoryRef.getStoreRef(), "lucene", luceneQuery.toString(), null, null); + resultSet = indexerAndSearcher.getSearcher(categoryRef.getStoreRef(), false).query(categoryRef.getStoreRef(), "lucene", luceneQuery.toString(), null); return resultSetToChildAssocCollection(resultSet); } @@ -287,7 +287,7 @@ public class LuceneCategoryServiceImpl implements CategoryService try { resultSet = indexerAndSearcher.getSearcher(storeRef, false).query(storeRef, "lucene", - "PATH:\"/" + getPrefix(qname.getNamespaceURI()) + ISO9075.encode(qname.getLocalName()) + "\"", null, null); + "PATH:\"/" + getPrefix(qname.getNamespaceURI()) + ISO9075.encode(qname.getLocalName()) + "\"", null); Set nodeRefs = new HashSet(resultSet.length()); for (ResultSetRow row : resultSet) @@ -313,7 +313,7 @@ public class LuceneCategoryServiceImpl implements CategoryService ResultSet resultSet = null; try { - resultSet = indexerAndSearcher.getSearcher(storeRef, false).query(storeRef, "lucene", "PATH:\"//cm:categoryRoot/*\"", null, null); + resultSet = indexerAndSearcher.getSearcher(storeRef, false).query(storeRef, "lucene", "PATH:\"//cm:categoryRoot/*\"", null); return resultSetToChildAssocCollection(resultSet); } finally diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSet.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSet.java index 81724fb396..8637ad960f 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSet.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSet.java @@ -79,10 +79,10 @@ public class LuceneResultSet extends AbstractResultSet * @param storeRef * @param hits */ - public LuceneResultSet(Hits hits, Searcher searcher, NodeService nodeService, TenantService tenantService, Path[] propertyPaths, SearchParameters searchParameters, + public LuceneResultSet(Hits hits, Searcher searcher, NodeService nodeService, TenantService tenantService, SearchParameters searchParameters, LuceneConfig config) { - super(propertyPaths); + super(); this.hits = hits; this.searcher = searcher; this.nodeService = nodeService; @@ -246,4 +246,14 @@ public class LuceneResultSet extends AbstractResultSet { return new SimpleResultSetMetaData(LimitBy.UNLIMITED, PermissionEvaluationMode.EAGER, searchParameters); } + + public int getStart() + { + throw new UnsupportedOperationException(); + } + + public boolean hasMore() + { + throw new UnsupportedOperationException(); + } } diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSetRow.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSetRow.java index ff485aead6..64d9ab489f 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSetRow.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneResultSetRow.java @@ -140,4 +140,24 @@ public class LuceneResultSetRow extends AbstractResultSetRow return new ChildAssociationRef(getPrimaryAssocTypeQName(), parentNodeRef, getQName(), childNodeRef); } + public NodeRef getNodeRef(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getNodeRefs() + { + throw new UnsupportedOperationException(); + } + + public float getScore(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getScores() + { + throw new UnsupportedOperationException(); + } + } diff --git a/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java b/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java index fffb83ed11..7ade1a1b15 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java @@ -2454,8 +2454,8 @@ public class IndexInfo implements IndexMonitor ConfigurableApplicationContext ac = ApplicationContextHelper.getApplicationContext(); XPathReader reader = new XPathReader(); LuceneXPathHandler handler = new LuceneXPathHandler(); - handler.setNamespacePrefixResolver((NamespaceService)ac.getBean("namespaceService")); - handler.setDictionaryService((DictionaryService)ac.getBean("dictionaryService")); + handler.setNamespacePrefixResolver((NamespaceService) ac.getBean("namespaceService")); + handler.setDictionaryService((DictionaryService) ac.getBean("dictionaryService")); reader.setXPathHandler(handler); reader.parse(path); PathQuery pathQuery = handler.getQuery(); @@ -2486,215 +2486,249 @@ public class IndexInfo implements IndexMonitor } IndexReader reader = ii.getMainIndexReferenceCountingReadOnlyIndexReader(); System.out.println(reader.getFieldNames(FieldOption.ALL)); + + TermEnum te = reader.terms(); + while (te.next()) + { + if (te.term().field().contains("FTS")) + { + System.out.println(te.term()); + } + } + // @{http://www.alfresco.org/model/content/1.0}name:product363_ocmwbeersel + IndexSearcher searcher = new IndexSearcher(reader); - Query query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}DestinationName", "bambino")); + Query query = new TermQuery(new Term("@{http://www.alfresco.org/model/content/1.0}name", "product363_ocmwbeersel")); start = System.nanoTime(); Hits hits = searcher.search(query); end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}DestinationName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); + System.out.println("@{http://www.alfresco.org/model/content/1.0}name:product363_ocmwbeersel = " + hits.length() + " in " + ((end - start) / 1e9)); searcher.close(); searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}DestinationName", "bambino")); + query = new WildcardQuery(new Term("@{http://www.alfresco.org/model/content/1.0}name", "b*")); start = System.nanoTime(); hits = searcher.search(query); end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}DestinationName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); + System.out.println("@{http://www.alfresco.org/model/content/1.0}name:b* = " + hits.length() + " in " + ((end - start) / 1e9)); searcher.close(); searcher = new IndexSearcher(reader); - query = new WildcardQuery(new Term("@{http://www.travelmuse.com/wcm}DestinationPhoto", "*")); + query = new TermQuery(new Term("@{http://www.alfresco.org/model/content/1.0}name", "be")); start = System.nanoTime(); hits = searcher.search(query); end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}DestinationPhoto:* = " + hits.length() + " in " + ((end - start) / 1e9)); + System.out.println("@{http://www.alfresco.org/model/content/1.0}name:be = " + hits.length() + " in " + ((end - start) / 1e9)); searcher.close(); - - searcher = new IndexSearcher(reader); - query = new WildcardQuery(new Term("@{http://www.travelmuse.com/wcm}DestinationPhoto", "*")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}DestinationPhoto:* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ThemeName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}ThemeName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ThemeName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}ThemeName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ActivityName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}ActivityName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ActivityName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}ActivityName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}EditorialItemTitle", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}EditorialItemTitle:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}EditorialItemTitle", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}EditorialItemTitle:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PoiName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}PoiName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PoiName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}PoiName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PropertyName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}PropertyName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PropertyName", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.travelmuse.com/wcm}PropertyName:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.alfresco.org/model/content/1.0}content", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.alfresco.org/model/content/1.0}content:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = new TermQuery(new Term("@{http://www.alfresco.org/model/content/1.0}content", "bambino")); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("@{http://www.alfresco.org/model/content/1.0}content:bambino = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/editorial//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/editorial//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/editorial//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/editorial//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/tag//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/tag//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/tag//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/tag//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/poi//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/poi//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/poi//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/poi//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/property//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/property//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/property//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/property//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/web-reviews//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/web-reviews//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - - searcher = new IndexSearcher(reader); - query = getPathQuery("/www/avm_webapps/ROOT/web-reviews//*"); - start = System.nanoTime(); - hits = searcher.search(query); - end = System.nanoTime(); - System.out.println("/www/avm_webapps/ROOT/web-reviews//* = " + hits.length() + " in " + ((end - start) / 1e9)); - searcher.close(); - + // + // searcher = new IndexSearcher(reader); + // query = new WildcardQuery(new Term("@{http://www.travelmuse.com/wcm}DestinationPhoto", "*")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}DestinationPhoto:* = " + hits.length() + " in " + ((end - + // start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new WildcardQuery(new Term("@{http://www.travelmuse.com/wcm}DestinationPhoto", "*")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}DestinationPhoto:* = " + hits.length() + " in " + ((end - + // start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ThemeName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}ThemeName:bambino = " + hits.length() + " in " + ((end - + // start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ThemeName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}ThemeName:bambino = " + hits.length() + " in " + ((end - + // start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ActivityName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}ActivityName:bambino = " + hits.length() + " in " + ((end + // - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}ActivityName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}ActivityName:bambino = " + hits.length() + " in " + ((end + // - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}EditorialItemTitle", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}EditorialItemTitle:bambino = " + hits.length() + " in " + + // ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}EditorialItemTitle", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}EditorialItemTitle:bambino = " + hits.length() + " in " + + // ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PoiName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}PoiName:bambino = " + hits.length() + " in " + ((end - + // start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PoiName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}PoiName:bambino = " + hits.length() + " in " + ((end - + // start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PropertyName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}PropertyName:bambino = " + hits.length() + " in " + ((end + // - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.travelmuse.com/wcm}PropertyName", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.travelmuse.com/wcm}PropertyName:bambino = " + hits.length() + " in " + ((end + // - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.alfresco.org/model/content/1.0}content", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.alfresco.org/model/content/1.0}content:bambino = " + hits.length() + " in " + // + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = new TermQuery(new Term("@{http://www.alfresco.org/model/content/1.0}content", "bambino")); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("@{http://www.alfresco.org/model/content/1.0}content:bambino = " + hits.length() + " in " + // + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/editorial//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/editorial//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/editorial//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/editorial//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/tag//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/tag//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/tag//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/tag//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/poi//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/poi//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/poi//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/poi//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/property//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/property//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/property//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/property//* = " + hits.length() + " in " + ((end - start) / 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/web-reviews//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/web-reviews//* = " + hits.length() + " in " + ((end - start) / + // 1e9)); + // searcher.close(); + // + // searcher = new IndexSearcher(reader); + // query = getPathQuery("/www/avm_webapps/ROOT/web-reviews//*"); + // start = System.nanoTime(); + // hits = searcher.search(query); + // end = System.nanoTime(); + // System.out.println("/www/avm_webapps/ROOT/web-reviews//* = " + hits.length() + " in " + ((end - start) / + // 1e9)); + // searcher.close(); // TermEnum terms = reader.terms(new Term("@{http://www.alfresco.org/model/user/1.0}members", "")); // while (terms.next() && terms.term().field().equals("@{http://www.alfresco.org/model/user/1.0}members")) diff --git a/source/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java b/source/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java index 5617150ae2..95e3717b48 100644 --- a/source/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java +++ b/source/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java @@ -25,6 +25,7 @@ package org.alfresco.repo.search.impl.parsers; import java.util.ArrayList; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -55,15 +56,53 @@ import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.CharStream; import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.Token; import org.antlr.runtime.tree.CommonTree; import org.antlr.runtime.tree.Tree; public class FTSQueryParser { - public Constraint buildFTS(String ftsExpression, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns, - Connective defaultConnective, Connective defaultFieldConnective) + static public Constraint buildFTS(String ftsExpression, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, + ArrayList columns, Connective defaultConnective, Connective defaultFieldConnective, Map templates) { // TODO: Decode sql escape for '' should do in CMIS layer + + // parse templates to trees ... + + Map templateTrees = new HashMap(); + + if (templates != null) + { + for (String name : templates.keySet()) + { + FTSParser parser = null; + + try + { + String templateDefinition = templates.get(name); + CharStream cs = new ANTLRStringStream(templateDefinition); + FTSLexer lexer = new FTSLexer(cs); + CommonTokenStream tokens = new CommonTokenStream(lexer); + parser = new FTSParser(tokens); + parser.setDefaultConjunction(defaultConnective == Connective.AND ? true : false); + parser.setDefaultFieldConjunction(defaultFieldConnective == Connective.AND ? true : false); + CommonTree ftsNode = (CommonTree) parser.ftsQuery().getTree(); + templateTrees.put(name, ftsNode); + } + catch (RecognitionException e) + { + if (parser != null) + { + String[] tokenNames = parser.getTokenNames(); + String hdr = parser.getErrorHeader(e); + String msg = parser.getErrorMessage(e, tokenNames); + throw new FTSQueryException(hdr + "\n" + msg, e); + } + return null; + } + } + } + FTSParser parser = null; try { @@ -74,7 +113,7 @@ public class FTSQueryParser parser.setDefaultConjunction(defaultConnective == Connective.AND ? true : false); parser.setDefaultFieldConjunction(defaultFieldConnective == Connective.AND ? true : false); CommonTree ftsNode = (CommonTree) parser.ftsQuery().getTree(); - return buildFTSConnective(null, ftsNode, factory, functionEvaluationContext, selector, columns); + return buildFTSConnective(null, ftsNode, factory, functionEvaluationContext, selector, columns, templateTrees); } catch (RecognitionException e) { @@ -90,8 +129,8 @@ public class FTSQueryParser } - private Constraint buildFTSConnective(CommonTree fieldReferenceNode, CommonTree node, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, - Selector selector, ArrayList columns) + static private Constraint buildFTSConnective(CommonTree fieldReferenceNode, CommonTree node, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + Selector selector, ArrayList columns, Map templateTrees) { Connective connective; switch (node.getType()) @@ -120,41 +159,41 @@ public class FTSQueryParser case FTSParser.FIELD_DISJUNCTION: case FTSParser.CONJUNCTION: case FTSParser.FIELD_CONJUNCTION: - constraint = buildFTSConnective(fieldReferenceNode, subNode, factory, functionEvaluationContext, selector, columns); + constraint = buildFTSConnective(fieldReferenceNode, subNode, factory, functionEvaluationContext, selector, columns, templateTrees); setBoost(constraint, subNode); break; case FTSParser.NEGATION: case FTSParser.FIELD_NEGATION: testNode = (CommonTree) subNode.getChild(0); - constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns); + constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns, templateTrees); constraint.setOccur(Occur.EXCLUDE); setBoost(constraint, subNode); break; case FTSParser.DEFAULT: case FTSParser.FIELD_DEFAULT: testNode = (CommonTree) subNode.getChild(0); - constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns); + constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns, templateTrees); constraint.setOccur(Occur.DEFAULT); setBoost(constraint, subNode); break; case FTSParser.MANDATORY: case FTSParser.FIELD_MANDATORY: testNode = (CommonTree) subNode.getChild(0); - constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns); + constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns, templateTrees); constraint.setOccur(Occur.MANDATORY); setBoost(constraint, subNode); break; case FTSParser.OPTIONAL: case FTSParser.FIELD_OPTIONAL: testNode = (CommonTree) subNode.getChild(0); - constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns); + constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns, templateTrees); constraint.setOccur(Occur.OPTIONAL); setBoost(constraint, subNode); break; case FTSParser.EXCLUDE: case FTSParser.FIELD_EXCLUDE: testNode = (CommonTree) subNode.getChild(0); - constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns); + constraint = buildFTSTest(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns, templateTrees); constraint.setOccur(Occur.EXCLUDE); setBoost(constraint, subNode); break; @@ -166,24 +205,22 @@ public class FTSQueryParser } if (constraints.size() == 1) { - return constraints.get(0); + return constraints.get(0); } else { if (connective == Connective.OR) { - return factory.createDisjunction(constraints); + return factory.createDisjunction(constraints); } else { - return factory.createConjunction(constraints); + return factory.createConjunction(constraints); } } } - - - private void setBoost(Constraint constraint, CommonTree subNode) + static private void setBoost(Constraint constraint, CommonTree subNode) { for (int i = 0, l = subNode.getChildCount(); i < l; i++) { @@ -198,9 +235,34 @@ public class FTSQueryParser } } - private Constraint buildFTSTest(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, - Selector selector, ArrayList columns) + static private Constraint buildFTSTest(CommonTree fieldReferenceNode, CommonTree argNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + Selector selector, ArrayList columns, Map templateTrees) { + CommonTree testNode = argNode; + // Check for template replacement + + PropertyArgument parg = null; + if (fieldReferenceNode != null) + { + parg = buildFieldReference("", fieldReferenceNode, factory, functionEvaluationContext, selector, columns); + } + else + { + CommonTree specifiedFieldReferenceNode = findFieldReference(testNode); + if (specifiedFieldReferenceNode != null) + { + parg = buildFieldReference(FTSRange.ARG_PROPERTY, specifiedFieldReferenceNode, factory, functionEvaluationContext, selector, columns); + } + } + if (parg != null) + { + CommonTree template = templateTrees.get(parg.getPropertyName()); + if (template != null) + { + testNode = copyAndReplace(template, testNode); + } + } + Tree termNode; Float fuzzy = findFuzzy(testNode); switch (testNode.getType()) @@ -209,7 +271,7 @@ public class FTSQueryParser case FTSParser.FIELD_DISJUNCTION: case FTSParser.CONJUNCTION: case FTSParser.FIELD_CONJUNCTION: - return buildFTSConnective(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns); + return buildFTSConnective(fieldReferenceNode, testNode, factory, functionEvaluationContext, selector, columns, templateTrees); case FTSParser.TERM: case FTSParser.FG_TERM: termNode = testNode.getChild(0); @@ -304,13 +366,13 @@ public class FTSQueryParser } CommonTree newFieldReferenceNode = (CommonTree) testNode.getChild(0); CommonTree fieldExperssion = (CommonTree) testNode.getChild(1); - return buildFTSConnective(newFieldReferenceNode, fieldExperssion, factory, functionEvaluationContext, selector, columns); + return buildFTSConnective(newFieldReferenceNode, fieldExperssion, factory, functionEvaluationContext, selector, columns, templateTrees); default: throw new FTSQueryException("Unsupported FTS option " + testNode.getText()); } } - private Constraint buildRange(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + static private Constraint buildRange(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSRange.NAME; @@ -341,7 +403,7 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildProximity(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + static private Constraint buildProximity(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSProximity.NAME; @@ -364,7 +426,7 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildExpandTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + static private Constraint buildExpandTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSTerm.NAME; @@ -391,8 +453,8 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildPhrase(Float fuzzy, CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, - Selector selector, ArrayList columns) + static private Constraint buildPhrase(Float fuzzy, CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, + FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSPhrase.NAME; Function function = factory.getFunction(functionName); @@ -421,7 +483,7 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildExactTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + static private Constraint buildExactTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSTerm.NAME; @@ -448,7 +510,7 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + static private Constraint buildTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSTerm.NAME; @@ -475,7 +537,262 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildFuzzyTerm(Float fuzzy, CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, + static private CommonTree copyAndReplace(CommonTree source, CommonTree insert) + { + CommonTree newNode = new CommonTree(source); + if (source.getChildCount() > 0) + { + for (Object current : source.getChildren()) + { + CommonTree child = (CommonTree) current; + if (child.getType() == FTSParser.TEMPLATE) + { + if (child.getChildCount() > 1) + { + CommonTree disjunction = new CommonTree(new DisjunctionToken()); + newNode.addChild(disjunction); + for (Object currentfieldReferenceNode : child.getChildren()) + { + CommonTree fieldReferenceNode = (CommonTree) currentfieldReferenceNode; + CommonTree def = new CommonTree(new DefaultToken()); + disjunction.addChild(def); + CommonTree newChild = insertTreeAndFixFieldRefs(insert, fieldReferenceNode); + def.addChild(newChild); + } + + } + else + { + CommonTree fieldReferenceNode = findFieldReference(child); + CommonTree newChild = insertTreeAndFixFieldRefs(insert, fieldReferenceNode); + newNode.addChild(newChild); + } + } + else + { + CommonTree newChild = copyAndReplace(child, insert); + newNode.addChild(newChild); + } + } + } + return newNode; + } + + static class DisjunctionToken implements Token + { + + public int getChannel() + { + // TODO Auto-generated method stub + return 0; + } + + public int getCharPositionInLine() + { + // TODO Auto-generated method stub + return 0; + } + + public CharStream getInputStream() + { + // TODO Auto-generated method stub + return null; + } + + public int getLine() + { + // TODO Auto-generated method stub + return 0; + } + + public String getText() + { + // TODO Auto-generated method stub + return null; + } + + public int getTokenIndex() + { + // TODO Auto-generated method stub + return 0; + } + + public int getType() + { + return FTSParser.DISJUNCTION; + } + + public void setChannel(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setCharPositionInLine(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setInputStream(CharStream arg0) + { + // TODO Auto-generated method stub + + } + + public void setLine(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setText(String arg0) + { + // TODO Auto-generated method stub + + } + + public void setTokenIndex(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setType(int arg0) + { + // TODO Auto-generated method stub + + } + + } + + static class DefaultToken implements Token + { + + public int getChannel() + { + // TODO Auto-generated method stub + return 0; + } + + public int getCharPositionInLine() + { + // TODO Auto-generated method stub + return 0; + } + + public CharStream getInputStream() + { + // TODO Auto-generated method stub + return null; + } + + public int getLine() + { + // TODO Auto-generated method stub + return 0; + } + + public String getText() + { + // TODO Auto-generated method stub + return null; + } + + public int getTokenIndex() + { + // TODO Auto-generated method stub + return 0; + } + + public int getType() + { + return FTSParser.DEFAULT; + } + + public void setChannel(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setCharPositionInLine(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setInputStream(CharStream arg0) + { + // TODO Auto-generated method stub + + } + + public void setLine(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setText(String arg0) + { + // TODO Auto-generated method stub + + } + + public void setTokenIndex(int arg0) + { + // TODO Auto-generated method stub + + } + + public void setType(int arg0) + { + // TODO Auto-generated method stub + + } + + } + + static private CommonTree copy(CommonTree source) + { + CommonTree newNode = new CommonTree(source); + if (source.getChildCount() > 0) + { + for (Object current : source.getChildren()) + { + CommonTree child = (CommonTree) current; + CommonTree newChild = copy(child); + newNode.addChild(newChild); + } + } + return newNode; + } + + private static CommonTree insertTreeAndFixFieldRefs(CommonTree source, CommonTree fieldReferenceNode) + { + CommonTree newNode = new CommonTree(source); + if (source.getChildCount() > 0) + { + for (Object current : source.getChildren()) + { + CommonTree child = (CommonTree) current; + if (child.getType() == FTSParser.FIELD_REF) + { + CommonTree newChild = copy(fieldReferenceNode); + newNode.addChild(newChild); + } + else + { + CommonTree newChild = insertTreeAndFixFieldRefs(child, fieldReferenceNode); + newNode.addChild(newChild); + } + } + } + return newNode; + } + + static private Constraint buildFuzzyTerm(Float fuzzy, CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSFuzzyTerm.NAME; @@ -502,7 +819,7 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildWildTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + static private Constraint buildWildTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSWildTerm.NAME; @@ -527,7 +844,7 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private Constraint buildPrefixTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, + static private Constraint buildPrefixTerm(CommonTree fieldReferenceNode, CommonTree testNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { String functionName = FTSPrefixTerm.NAME; @@ -552,7 +869,7 @@ public class FTSQueryParser return factory.createFunctionalConstraint(function, functionArguments); } - private CommonTree findFieldReference(CommonTree node) + static private CommonTree findFieldReference(CommonTree node) { for (int i = 0, l = node.getChildCount(); i < l; i++) { @@ -565,7 +882,7 @@ public class FTSQueryParser return null; } - private Float findFuzzy(Tree node) + static private Float findFuzzy(Tree node) { for (int i = 0, l = node.getChildCount(); i < l; i++) { @@ -580,8 +897,8 @@ public class FTSQueryParser return null; } - public PropertyArgument buildFieldReference(String argumentName, CommonTree fieldReferenceNode, QueryModelFactory factory, FunctionEvaluationContext functionEvaluationContext, - Selector selector, ArrayList columns) + static public PropertyArgument buildFieldReference(String argumentName, CommonTree fieldReferenceNode, QueryModelFactory factory, + FunctionEvaluationContext functionEvaluationContext, Selector selector, ArrayList columns) { if (fieldReferenceNode.getType() != FTSParser.FIELD_REF) { @@ -626,14 +943,13 @@ public class FTSQueryParser return factory.createPropertyArgument(argumentName, functionEvaluationContext.isQueryable(fieldName), functionEvaluationContext.isOrderable(fieldName), alias, fieldName); } - private String getText(Tree node) + static private String getText(Tree node) { String text = node.getText(); int index; switch (node.getType()) { case FTSParser.FTSWORD: - case FTSParser.PHRASE: index = text.indexOf('\\'); if (index == -1) { @@ -643,6 +959,17 @@ public class FTSQueryParser { return unescape(text); } + case FTSParser.FTSPHRASE: + String phrase = text.substring(1, text.length()-1); + index = phrase.indexOf('\\'); + if (index == -1) + { + return phrase; + } + else + { + return unescape(phrase); + } case FTSParser.ID: index = text.indexOf('\\'); if (index == -1) @@ -658,7 +985,7 @@ public class FTSQueryParser } } - private String unescape(String string) + static private String unescape(String string) { StringBuilder builder = new StringBuilder(string.length()); boolean lastWasEscape = false; diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryEngine.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryEngine.java index 62c1c33169..8e10b57348 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryEngine.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryEngine.java @@ -183,7 +183,7 @@ public class LuceneQueryEngine implements QueryEngine hits = searcher.search(luceneQuery, sort); } - LuceneResultSet result = new LuceneResultSet(hits, searcher, nodeService, tenantService, null, searchParameters, indexAndSearcher); + LuceneResultSet result = new LuceneResultSet(hits, searcher, nodeService, tenantService, searchParameters, indexAndSearcher); Map, ResultSet> map = new HashMap, ResultSet>(1); map.put(selectorGroup, result); return new QueryEngineResults(map); diff --git a/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSet.java b/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSet.java index 8c1f779909..359f62aef2 100644 --- a/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSet.java +++ b/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSet.java @@ -40,28 +40,43 @@ import org.alfresco.repo.search.SimpleResultSetMetaData; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; -import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.LimitBy; import org.alfresco.service.cmr.search.PermissionEvaluationMode; import org.alfresco.service.cmr.search.ResultSetMetaData; import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.cmr.search.SearchParameters; +/** + * Child assoc result set + * @author andyh + * + */ public class ChildAssocRefResultSet extends AbstractResultSet { private List cars; NodeService nodeService; - public ChildAssocRefResultSet(NodeService nodeService, List cars, Path[] propertyPaths) + /** + * Normal constructor + * @param nodeService + * @param cars + */ + public ChildAssocRefResultSet(NodeService nodeService, List cars) { - super(propertyPaths); + super(); this.nodeService = nodeService; this.cars = cars; } - public ChildAssocRefResultSet(NodeService nodeService, List nodeRefs, Path[] propertyPaths, boolean resolveAllParents) + /** + * Constructor that may expand all child assoc parents provided + * @param nodeService + * @param nodeRefs + * @param resolveAllParents + */ + public ChildAssocRefResultSet(NodeService nodeService, List nodeRefs, boolean resolveAllParents) { - super(propertyPaths); + super(); this.nodeService = nodeService; List cars = new ArrayList(nodeRefs.size()); for(NodeRef nodeRef : nodeRefs) @@ -103,7 +118,8 @@ public class ChildAssocRefResultSet extends AbstractResultSet return new ChildAssocRefResultSetRowIterator(this); } - public NodeService getNodeService() + + /* package */ NodeService getNodeService() { return nodeService; } @@ -112,4 +128,14 @@ public class ChildAssocRefResultSet extends AbstractResultSet { return new SimpleResultSetMetaData(LimitBy.UNLIMITED, PermissionEvaluationMode.EAGER, new SearchParameters()); } + + public int getStart() + { + throw new UnsupportedOperationException(); + } + + public boolean hasMore() + { + throw new UnsupportedOperationException(); + } } diff --git a/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRow.java b/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRow.java index 07bdd0e716..f3dd68c856 100644 --- a/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRow.java +++ b/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRow.java @@ -29,22 +29,26 @@ import java.util.Map; import org.alfresco.repo.search.AbstractResultSetRow; import org.alfresco.service.cmr.repository.ChildAssociationRef; -import org.alfresco.service.cmr.repository.Path; +import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; +/** + * Row in child assoc ref result set. + * @author andyh + * + */ public class ChildAssocRefResultSetRow extends AbstractResultSetRow { + /** + * Row in child assoc ref result set + * @param resultSet + * @param index + */ public ChildAssocRefResultSetRow(ChildAssocRefResultSet resultSet, int index) { super(resultSet, index); } - public Serializable getValue(Path path) - { - // TODO Auto-generated method stub - throw new UnsupportedOperationException(); - } - public QName getQName() { return ((ChildAssocRefResultSet)getResultSet()).getChildAssocRef(getIndex()).getQName(); @@ -61,4 +65,24 @@ public class ChildAssocRefResultSetRow extends AbstractResultSetRow return ((ChildAssocRefResultSet)getResultSet()).getChildAssocRef(getIndex()); } + public NodeRef getNodeRef(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getNodeRefs() + { + throw new UnsupportedOperationException(); + } + + public float getScore(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getScores() + { + throw new UnsupportedOperationException(); + } + } diff --git a/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRowIterator.java b/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRowIterator.java index 6138ecc253..1e3e6e0138 100644 --- a/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRowIterator.java +++ b/source/java/org/alfresco/repo/search/results/ChildAssocRefResultSetRowIterator.java @@ -28,9 +28,18 @@ import org.alfresco.repo.search.AbstractResultSetRowIterator; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; +/** + * Iterate over child asooc refs + * @author andyh + * + */ public class ChildAssocRefResultSetRowIterator extends AbstractResultSetRowIterator { + /** + * Source result set + * @param resultSet + */ public ChildAssocRefResultSetRowIterator(ResultSet resultSet) { super(resultSet); diff --git a/source/java/org/alfresco/repo/search/results/DetachedResultSet.java b/source/java/org/alfresco/repo/search/results/DetachedResultSet.java index 33ea2144f0..383d7b89f2 100644 --- a/source/java/org/alfresco/repo/search/results/DetachedResultSet.java +++ b/source/java/org/alfresco/repo/search/results/DetachedResultSet.java @@ -32,22 +32,29 @@ import org.alfresco.repo.search.AbstractResultSet; import org.alfresco.repo.search.SimpleResultSetMetaData; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.Path; -import org.alfresco.service.cmr.search.LimitBy; import org.alfresco.service.cmr.search.PermissionEvaluationMode; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetMetaData; import org.alfresco.service.cmr.search.ResultSetRow; +/** + * Detached result set + * @author andyh + * + */ public class DetachedResultSet extends AbstractResultSet { List rows = null; ResultSetMetaData rsmd; - public DetachedResultSet(ResultSet resultSet, Path[] propertyPaths) + /** + * Detached result set based on that provided + * @param resultSet + */ + public DetachedResultSet(ResultSet resultSet) { - super(propertyPaths); + super(); rsmd = resultSet.getResultSetMetaData(); rows = new ArrayList(resultSet.length()); for (ResultSetRow row : resultSet) @@ -86,4 +93,14 @@ public class DetachedResultSet extends AbstractResultSet return new SimpleResultSetMetaData(rsmd.getLimitedBy(), PermissionEvaluationMode.EAGER, rsmd.getSearchParameters()); } + public int getStart() + { + throw new UnsupportedOperationException(); + } + + public boolean hasMore() + { + throw new UnsupportedOperationException(); + } + } diff --git a/source/java/org/alfresco/repo/search/results/DetachedResultSetRow.java b/source/java/org/alfresco/repo/search/results/DetachedResultSetRow.java index 204d2c9717..9292698f8d 100644 --- a/source/java/org/alfresco/repo/search/results/DetachedResultSetRow.java +++ b/source/java/org/alfresco/repo/search/results/DetachedResultSetRow.java @@ -24,22 +24,29 @@ */ package org.alfresco.repo.search.results; -import java.io.Serializable; import java.util.Map; import org.alfresco.repo.search.AbstractResultSetRow; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.namespace.QName; +/** + * Detatched result set row + * @author andyh + * + */ public class DetachedResultSetRow extends AbstractResultSetRow { private ChildAssociationRef car; - private Map properties; + /** + * Detached result set row + * @param resultSet + * @param row + */ public DetachedResultSetRow(ResultSet resultSet, ResultSetRow row) { super(resultSet, row.getIndex()); @@ -47,11 +54,6 @@ public class DetachedResultSetRow extends AbstractResultSetRow properties = row.getValues(); } - public Serializable getValue(Path path) - { - return properties.get(path); - } - public QName getQName() { return car.getQName(); @@ -62,15 +64,30 @@ public class DetachedResultSetRow extends AbstractResultSetRow return car.getChildRef(); } - public Map getValues() - { - return properties; - } - public ChildAssociationRef getChildAssocRef() { return car; } + + public NodeRef getNodeRef(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getNodeRefs() + { + throw new UnsupportedOperationException(); + } + + public float getScore(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getScores() + { + throw new UnsupportedOperationException(); + } diff --git a/source/java/org/alfresco/repo/search/results/SortedResultSet.java b/source/java/org/alfresco/repo/search/results/SortedResultSet.java index 404cb3a49b..414956a684 100644 --- a/source/java/org/alfresco/repo/search/results/SortedResultSet.java +++ b/source/java/org/alfresco/repo/search/results/SortedResultSet.java @@ -32,14 +32,9 @@ import java.util.Iterator; import java.util.List; import org.alfresco.repo.search.SearcherException; -import org.alfresco.repo.search.impl.lucene.LuceneResultSetRow; -import org.alfresco.repo.search.impl.lucene.analysis.DateTimeAnalyser; -import org.alfresco.service.cmr.dictionary.DataTypeDefinition; -import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; -import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetMetaData; import org.alfresco.service.cmr.search.ResultSetRow; @@ -48,8 +43,12 @@ import org.alfresco.service.cmr.search.SearchParameters.SortDefinition; import org.alfresco.service.namespace.NamespacePrefixResolver; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; -import org.apache.lucene.search.SortField; +/** + * Sorted results + * @author andyh + * + */ public class SortedResultSet implements ResultSet { ArrayList nodeRefsAndScores; @@ -60,6 +59,13 @@ public class SortedResultSet implements ResultSet ResultSet resultSet; + /** + * Source and resources required to sort + * @param resultSet + * @param nodeService + * @param searchParameters + * @param namespacePrefixResolver + */ public SortedResultSet(ResultSet resultSet, NodeService nodeService, SearchParameters searchParameters, NamespacePrefixResolver namespacePrefixResolver) { this.nodeService = nodeService; @@ -132,11 +138,6 @@ public class SortedResultSet implements ResultSet return nodeRefsAndScores.get(n).nodeRef; } - public Path[] getPropertyPaths() - { - return resultSet.getPropertyPaths(); - } - public ResultSetMetaData getResultSetMetaData() { return resultSet.getResultSetMetaData(); @@ -281,4 +282,14 @@ public class SortedResultSet implements ResultSet } + public int getStart() + { + throw new UnsupportedOperationException(); + } + + public boolean hasMore() + { + throw new UnsupportedOperationException(); + } + } diff --git a/source/java/org/alfresco/repo/search/results/SortedResultSetRow.java b/source/java/org/alfresco/repo/search/results/SortedResultSetRow.java index b2018fb214..9edc97a9f9 100644 --- a/source/java/org/alfresco/repo/search/results/SortedResultSetRow.java +++ b/source/java/org/alfresco/repo/search/results/SortedResultSetRow.java @@ -24,7 +24,10 @@ */ package org.alfresco.repo.search.results; +import java.util.Map; + import org.alfresco.repo.search.AbstractResultSetRow; +import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.search.ResultSetRow; /** @@ -43,6 +46,26 @@ public class SortedResultSetRow extends AbstractResultSetRow implements ResultSe super(resultSet, index); } + public NodeRef getNodeRef(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getNodeRefs() + { + throw new UnsupportedOperationException(); + } + + public float getScore(String selectorName) + { + throw new UnsupportedOperationException(); + } + + public Map getScores() + { + throw new UnsupportedOperationException(); + } + diff --git a/source/java/org/alfresco/repo/security/permissions/impl/acegi/ACLEntryAfterInvocationTest.java b/source/java/org/alfresco/repo/security/permissions/impl/acegi/ACLEntryAfterInvocationTest.java index 2a94652dd6..3baa2611f9 100644 --- a/source/java/org/alfresco/repo/security/permissions/impl/acegi/ACLEntryAfterInvocationTest.java +++ b/source/java/org/alfresco/repo/security/permissions/impl/acegi/ACLEntryAfterInvocationTest.java @@ -418,7 +418,7 @@ public class ACLEntryAfterInvocationTest extends AbstractPermissionTest Set carSet = new HashSet(); - ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, null, false); + ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, false); assertEquals(0, rsIn.length()); ResultSet answerResultSet = (ResultSet) methodResultSet.invoke(proxy, new Object[] { rsIn }); @@ -488,7 +488,7 @@ public class ACLEntryAfterInvocationTest extends AbstractPermissionTest Set carSet = new HashSet(); carSet.addAll(carList); - ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, null, false); + ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, false); assertEquals(4, rsIn.length()); ResultSet answerResultSet = (ResultSet) methodResultSet.invoke(proxy, new Object[] { rsIn }); @@ -549,7 +549,7 @@ public class ACLEntryAfterInvocationTest extends AbstractPermissionTest Set carSet = new HashSet(); carSet.addAll(carList); - ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, null, false); + ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, false); assertEquals(4, rsIn.length()); @@ -622,7 +622,7 @@ public class ACLEntryAfterInvocationTest extends AbstractPermissionTest Set carSet = new HashSet(); carSet.addAll(carList); - ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, null, false); + ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, false); permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ), "andy", AccessStatus.ALLOWED)); @@ -746,7 +746,7 @@ public class ACLEntryAfterInvocationTest extends AbstractPermissionTest Set carSet = new HashSet(); carSet.addAll(carList); - ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, null, false); + ChildAssocRefResultSet rsIn = new ChildAssocRefResultSet(nodeService, nodeRefList, false); permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ), "andy", AccessStatus.ALLOWED)); diff --git a/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSet.java b/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSet.java index c5d47c7591..040cb92b24 100644 --- a/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSet.java +++ b/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSet.java @@ -31,11 +31,15 @@ import java.util.ListIterator; import org.alfresco.repo.search.ResultSetRowIterator; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetMetaData; import org.alfresco.service.cmr.search.ResultSetRow; +/** + * Filtering result set to support permission checks + * @author andyh + * + */ public class FilteringResultSet extends ACLEntryAfterInvocationProvider implements ResultSet { private ResultSet unfiltered; @@ -66,11 +70,6 @@ public class FilteringResultSet extends ACLEntryAfterInvocationProvider implemen return inclusionMask.get(i); } - public Path[] getPropertyPaths() - { - return unfiltered.getPropertyPaths(); - } - public int length() { return inclusionMask.cardinality(); @@ -253,6 +252,16 @@ public class FilteringResultSet extends ACLEntryAfterInvocationProvider implemen throw new UnsupportedOperationException(); } + public boolean allowsReverse() + { + return true; + } + + public ResultSet getResultSet() + { + return FilteringResultSet.this; + } + } public ResultSetMetaData getResultSetMetaData() @@ -265,5 +274,15 @@ public class FilteringResultSet extends ACLEntryAfterInvocationProvider implemen this.resultSetMetaData = resultSetMetaData; } + public int getStart() + { + throw new UnsupportedOperationException(); + } + + public boolean hasMore() + { + throw new UnsupportedOperationException(); + } + } diff --git a/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSetTest.java b/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSetTest.java index 0dec06eff2..ad70432952 100644 --- a/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSetTest.java +++ b/source/java/org/alfresco/repo/security/permissions/impl/acegi/FilteringResultSetTest.java @@ -77,7 +77,7 @@ public class FilteringResultSetTest extends TestCase cars.add(car4); cars.add(car5); - ResultSet in = new ChildAssocRefResultSet(null, cars, null); + ResultSet in = new ChildAssocRefResultSet(null, cars); FilteringResultSet filtering = new FilteringResultSet(in); diff --git a/source/java/org/alfresco/service/cmr/search/ResultSet.java b/source/java/org/alfresco/service/cmr/search/ResultSet.java index 935d342ba5..6b152fe9f8 100644 --- a/source/java/org/alfresco/service/cmr/search/ResultSet.java +++ b/source/java/org/alfresco/service/cmr/search/ResultSet.java @@ -28,75 +28,109 @@ import java.util.List; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.Path; /** - * An iterable result set from a searcher query. - * Implementations must implement the indexes as zero-based. - * TODO: Expose meta data and XML + * This is the common interface for both row (Alfresco node) and column (CMIS style property or function) based results. + * The meta-data for the results sets contains the detailed info on what columns are available. For row based result + * sets there is no selector - all the nodes returned do not have to have a specific type or aspect. For example, an FTS + * search on properties of type d:content has no type constraint implied or otherwise. Searches against properties have + * an implied type, but as there can be more than one property -> more than one type or aspect implied (eg via OR in FTS + * or lucene) they are ignored An iterable result set from a searcher query. Implementations must implement the + * indexes for row lookup as zero-based. * * @author andyh - * */ -public interface ResultSet extends Iterable // Specfic iterator over ResultSetRows +public interface ResultSet extends Iterable // Specific iterator over ResultSetRows { /** - * Get the relative paths to all the elements contained in this result set - */ - Path[] getPropertyPaths(); - - /** - * Get the size of the result set - */ - int length(); - - /** - * Get the id of the node at the given index + * Get the number of rows in this result set. This will be less than or equal to the maximum number of rows + * requested or the full length of the results set if no restriction on length are specified. If a skip count is + * given, the length represents the number of results after the skip count and does not include the items skipped. * - * @param n zero-based index + * @return the number of results. -1 means unknown and can be returned for lazy evaluations of permissions when the + * actual size is not known and evaluated upon request. */ - NodeRef getNodeRef(int n); + public int length(); /** - * Get the score for the node at the given position + * Get the id of the node at the given index (if there is only one selector or no selector) * - * @param n zero-based index + * @param n + * zero-based index + * @return return the the node ref for the row if there is only one selector + * @throws AmbiguousSelectorException */ - float getScore(int n); + public NodeRef getNodeRef(int n); /** - * Close the result set. - * This must be called to allow the release of underlying resources. + * Get the score for the node at the given position (if there is only one selector or no selector) + * + * @param n + * zero-based index + * @return return the score for the row if there is only one selector + * @throws AmbiguousSelectorException */ - - void close(); - + public float getScore(int n); + + /** + * Close the result set and release any resources held/ The result set is bound to the transaction and will auto + * close at the end of the transaction. + */ + public void close(); + /** * Get a row from the result set by row index, starting at 0. * - * @param i zero-based index + * @param i + * zero-based index + * @return return the row */ - ResultSetRow getRow(int i); - + public ResultSetRow getRow(int i); + /** - * Get a list of all the node refs in the result set - */ - List getNodeRefs(); - - /** - * Get a list of all the child associations in the results set. - */ - List getChildAssocRefs(); - - /** - * Get the child assoc ref for a particular row. + * Get a list of all the node refs in the result set (if there is only one selector or no selector) * - * @param n zero-based index + * @return the node refs if there is only one selector or no selector * + * @throws AmbiguousSelectorException */ - ChildAssociationRef getChildAssocRef(int n); - + public List getNodeRefs(); + + /** + * Get a list of all the child associations in the results set. (if there is only one selectoror no selector) + * + * @return the child assoc refs if there is only one selector or no selector * + * @throws AmbiguousSelectorException + */ + public List getChildAssocRefs(); + + /** + * Get the child assoc ref for a particular row. (if there is only one selectoror no selector) + * + * @param n + * zero-based index + * @return the child assoc ref for the row if there is only one selector or no selector + */ + public ChildAssociationRef getChildAssocRef(int n); + /** * Get the meta data for the results set. + * + * @return the metadata */ - ResultSetMetaData getResultSetMetaData(); + public ResultSetMetaData getResultSetMetaData(); + + /** + * Get the start point for this results set in the overall set of rows that match the query - this will be equal to + * the skip count set when executing the query, and zero if this is not set. + * + * @return the position of the first result in the overall result set + */ + public int getStart(); + + /** + * Was this result set curtailed - are there more pages to the result set? + * + * @return true if there are more pages in the result set + */ + public boolean hasMore(); } diff --git a/source/java/org/alfresco/service/cmr/search/SearchStatement.java b/source/java/org/alfresco/service/cmr/search/ResultSetColumn.java similarity index 54% rename from source/java/org/alfresco/service/cmr/search/SearchStatement.java rename to source/java/org/alfresco/service/cmr/search/ResultSetColumn.java index b67bc44b86..be22bcf4af 100644 --- a/source/java/org/alfresco/service/cmr/search/SearchStatement.java +++ b/source/java/org/alfresco/service/cmr/search/ResultSetColumn.java @@ -1,95 +1,55 @@ -/* - * Copyright (C) 2005-2007 Alfresco Software Limited. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - * As a special exception to the terms and conditions of version 2.0 of - * the GPL, you may redistribute this Program in connection with Free/Libre - * and Open Source Software ("FLOSS") applications as described in Alfresco's - * FLOSS exception. You should have recieved a copy of the text describing - * the FLOSS exception, and it is also available here: - * http://www.alfresco.com/legal/licensing" - */ -package org.alfresco.service.cmr.search; - -/** - * A search string and language. - * - * @author Andy Hind - */ -public class SearchStatement -{ - - private String language; - private String query; - - SearchStatement() - { - super(); - } - - /** - * A constructor that takes both arguments. - * - * @param language - * @param query - */ - SearchStatement(String language, String query) - { - this.language = language; - this.query = query; - } - - /** - * Get the query language. - * - * @return - */ - public String getLanguage() - { - return language; - } - - /** - * Get the query. - * - * @return - */ - public String getQuery() - { - return query; - } - - /** - * Set the query language. - * - * @param language - the query language. - */ - public void setLanguage(String language) - { - this.language = language; - } - - /** - * Set the query string. - * - * @param query - the query string. - */ - public void setQuery(String query) - { - this.query = query; - } - -} +/* + * Copyright (C) 2005-2007 Alfresco Software Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" + */ +package org.alfresco.service.cmr.search; + +import org.alfresco.service.namespace.QName; + +/** + * The metadata for a column in a result set. + * All columns should have a data type, they may have a property type. + * + * @author andyh + * + */ +public interface ResultSetColumn +{ + /** + * The column name + * @return - the column name + */ + public String getName(); + + /** + * The type of the column + * @return - the data type for the column + */ + public QName getDataType(); + + /** + * The property definition if there is one for the column + * @return - the property definition or null if it does not make sense for the column + */ + public QName getPropertyType(); +} diff --git a/source/java/org/alfresco/service/cmr/search/ResultSetMetaData.java b/source/java/org/alfresco/service/cmr/search/ResultSetMetaData.java index ec23aae7fd..a2ccf3b10c 100644 --- a/source/java/org/alfresco/service/cmr/search/ResultSetMetaData.java +++ b/source/java/org/alfresco/service/cmr/search/ResultSetMetaData.java @@ -24,6 +24,7 @@ */ package org.alfresco.service.cmr.search; + /** * Meta Data associated with a result set. * @@ -57,4 +58,51 @@ public interface ResultSetMetaData */ public SearchParameters getSearchParameters(); + /** + * Get the result set type + * @return + */ + public ResultSetType getResultSetType(); + + /** + * The selector meta-data. + * @return - the selector meta-data. + */ + public ResultSetSelector getSelectors(); + + + /** + * The column meta-data. + * @return - the column meta-data. + */ + public ResultSetColumn getColumns(); + + /** + * Get the names of the selectors. + * @return - the selector names. + */ + public String[] getSelectorNames(); + + /** + * Get the column names. + * @return - the names of the columns. + */ + public String[] getColumnNames(); + + /** + * Get the selector meta-data by name. + * @param name + * @return - the selector meta-data. + */ + public ResultSetSelector getSelector(String name); + + /** + * Get the column meta-data by column name. + * @param name + * @return - the column meta-data. + */ + public ResultSetColumn getColumn(String name); + + + } diff --git a/source/java/org/alfresco/service/cmr/search/ResultSetRow.java b/source/java/org/alfresco/service/cmr/search/ResultSetRow.java index 8c600bb69f..f7923b5594 100644 --- a/source/java/org/alfresco/service/cmr/search/ResultSetRow.java +++ b/source/java/org/alfresco/service/cmr/search/ResultSetRow.java @@ -49,15 +49,14 @@ public interface ResultSetRow * * @return Returns all the available node properties */ - public Map getValues(); + public Map getValues(); /** - * Get a node property by path - * - * @param path the path to the value required - * @return Returns the value of the property at the given path + * Get the data for a single column + * @param columnName + * @return the value */ - public Serializable getValue(Path path); + public Serializable getValue(String columnName); /** * Get a node property value by name @@ -74,6 +73,21 @@ public interface ResultSetRow */ public NodeRef getNodeRef(); + + /** + * Gets the node refs + * @return a map of selector name to node ref + */ + public Map getNodeRefs(); + + + /** + * Gets the node ref related to the named selector + * @param selectorName + * @return the node ref + */ + public NodeRef getNodeRef(String selectorName); + /** * Get the score for this row in the result set * @@ -82,6 +96,20 @@ public interface ResultSetRow public float getScore(); // Score is score + rank + potentially other // stuff + /** + * Get the scores . + * @return a map of selector name to score. + */ + public Map getScores(); + + /** + * Get the score related to the named selector. + * @param selectorName + * @return - the score. + */ + public float getScore(String selectorName); + + /** * Get the containing result set * @@ -96,9 +124,9 @@ public interface ResultSetRow public QName getQName(); /** - * Get the position of this row in the containing set. - * - * @return Returns the position of this row in the containing resultset + * Get the index of this result set in the result set + * If you want the overall position in paged reults you have to add the skipCount fo the result set. + * @return */ public int getIndex(); diff --git a/source/java/org/alfresco/service/cmr/search/ResultSetSelector.java b/source/java/org/alfresco/service/cmr/search/ResultSetSelector.java new file mode 100644 index 0000000000..76f6e5561b --- /dev/null +++ b/source/java/org/alfresco/service/cmr/search/ResultSetSelector.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2005-2007 Alfresco Software Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" + */ +package org.alfresco.service.cmr.search; + +import org.alfresco.service.namespace.QName; + +/** + * The metadata for a ResultSet selector. + * + * @author andyh + * + */ +public interface ResultSetSelector +{ + /** + * The unique name for the selector. + * @return - the unique name for the selector + */ + public String getName(); + + /** + * Get the Alfresco type QName for the type or aspect + * @return - the type or aspect + */ + public QName getType(); +} diff --git a/source/java/org/alfresco/service/cmr/search/ResultSetType.java b/source/java/org/alfresco/service/cmr/search/ResultSetType.java new file mode 100644 index 0000000000..f12ab8d674 --- /dev/null +++ b/source/java/org/alfresco/service/cmr/search/ResultSetType.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2005-2007 Alfresco Software Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" + */ +package org.alfresco.service.cmr.search; + +/** + * The two types of result set - column based and Node Ref based. + * @author andyh + * + */ +public enum ResultSetType +{ + /** + * Just the node ref is available for each row in the results. + */ + NODE_REF, + /** + * The node ref is available and a specified list of columns. + */ + COLUMN_AND_NODE_REF +} diff --git a/source/java/org/alfresco/service/cmr/search/SearchParameters.java b/source/java/org/alfresco/service/cmr/search/SearchParameters.java index ea51033525..a8e01d90b2 100644 --- a/source/java/org/alfresco/service/cmr/search/SearchParameters.java +++ b/source/java/org/alfresco/service/cmr/search/SearchParameters.java @@ -26,13 +26,16 @@ package org.alfresco.service.cmr.search; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Set; import org.alfresco.repo.domain.hibernate.BulkLoader; import org.alfresco.repo.search.MLAnalysisMode; +import org.alfresco.repo.search.impl.querymodel.QueryOptions.Connective; import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.repository.StoreRef; @@ -43,29 +46,25 @@ import org.alfresco.service.cmr.repository.StoreRef; * * @author Andy Hind */ -public class SearchParameters extends SearchStatement +public class SearchParameters { /* * The default limit if someone asks for a limited result set but does not say how to limit.... */ private static int DEFAULT_LIMIT = 500; - + private static int DEFAULT_BULK_FETCH_SIZE = 1000; /* * Standard sort definitions for sorting in document and score order. */ - public static final SortDefinition SORT_IN_DOCUMENT_ORDER_ASCENDING = new SortDefinition( - SortDefinition.SortType.DOCUMENT, null, true); + public static final SortDefinition SORT_IN_DOCUMENT_ORDER_ASCENDING = new SortDefinition(SortDefinition.SortType.DOCUMENT, null, true); - public static final SortDefinition SORT_IN_DOCUMENT_ORDER_DESCENDING = new SortDefinition( - SortDefinition.SortType.DOCUMENT, null, false); + public static final SortDefinition SORT_IN_DOCUMENT_ORDER_DESCENDING = new SortDefinition(SortDefinition.SortType.DOCUMENT, null, false); - public static final SortDefinition SORT_IN_SCORE_ORDER_ASCENDING = new SortDefinition( - SortDefinition.SortType.SCORE, null, false); + public static final SortDefinition SORT_IN_SCORE_ORDER_ASCENDING = new SortDefinition(SortDefinition.SortType.SCORE, null, false); - public static final SortDefinition SORT_IN_SCORE_ORDER_DESCENDING = new SortDefinition( - SortDefinition.SortType.SCORE, null, true); + public static final SortDefinition SORT_IN_SCORE_ORDER_DESCENDING = new SortDefinition(SortDefinition.SortType.SCORE, null, true); /** * An emum defining if the default action is to "and" or "or" unspecified components in the query register. Not all @@ -86,9 +85,11 @@ public class SearchParameters extends SearchStatement /* * The parameters that can be set */ - private ArrayList stores = new ArrayList(1); + private String language; - private ArrayList attributePaths = new ArrayList(1); + private String query; + + private ArrayList stores = new ArrayList(1); private ArrayList queryParameterDefinitions = new ArrayList(1); @@ -96,8 +97,6 @@ public class SearchParameters extends SearchStatement private ArrayList sortDefinitions = new ArrayList(1); - private Operator defaultOperator = Operator.OR; - private ArrayList locales = new ArrayList(); private MLAnalysisMode mlAnalaysisMode = null; // Pick up from config if null @@ -107,15 +106,27 @@ public class SearchParameters extends SearchStatement private PermissionEvaluationMode permissionEvaluation = PermissionEvaluationMode.EAGER; private int limit = DEFAULT_LIMIT; - + private HashSet allAttributes = new HashSet(); - + private HashSet textAttributes = new HashSet(); private boolean bulkFetch = true; private int bulkFetchSize = DEFAULT_BULK_FETCH_SIZE; + private int maxItems = -1; + + private int skipCount = 0; + + private Operator defaultFTSOperator = Operator.OR; + + private Operator defaultFTSFieldOperator = Operator.OR; + + private Map queryTemplates = new HashMap(); + + private String namespace; + /** * Default constructor */ @@ -124,6 +135,43 @@ public class SearchParameters extends SearchStatement super(); } + public String getLanguage() + { + return language; + } + + /** + * Get the query. + * + * @return + */ + public String getQuery() + { + return query; + } + + /** + * Set the query language. + * + * @param language - + * the query language. + */ + public void setLanguage(String language) + { + this.language = language; + } + + /** + * Set the query string. + * + * @param query - + * the query string. + */ + public void setQuery(String query) + { + this.query = query; + } + /** * Set the stores to be supported - currently there can be only one. Searching across multiple stores is on the todo * list. @@ -139,16 +187,6 @@ public class SearchParameters extends SearchStatement stores.add(store); } - /** - * Add paths for attributes in the result set. Generally this only makes sense for disconnected results sets. These - * atttributes/paths state what must be present in the result set, akin to the selection of columns is sql. - * - * @param attributePath - */ - public void addAttrbutePath(Path attributePath) - { - attributePaths.add(attributePath); - } /** * Add parameter definitions for the query - used to parameterise the query string @@ -200,16 +238,6 @@ public class SearchParameters extends SearchStatement sortDefinitions.add(sortDefinition); } - /** - * Get the list of attribute paths that are guarenteed to be in the result set. - * - * @return - */ - public ArrayList getAttributePaths() - { - return attributePaths; - } - /** * Is data in the current transaction excluded from the search. * @@ -257,7 +285,8 @@ public class SearchParameters extends SearchStatement */ public void setDefaultOperator(Operator defaultOperator) { - this.defaultOperator = defaultOperator; + this.defaultFTSOperator = defaultOperator; + this.defaultFTSFieldOperator = defaultOperator; } /** @@ -267,7 +296,7 @@ public class SearchParameters extends SearchStatement */ public Operator getDefaultOperator() { - return defaultOperator; + return getDefaultFTSOperator(); } /** @@ -331,8 +360,8 @@ public class SearchParameters extends SearchStatement } /** - * The way in which multilingual fields are treated durig a search. - * By default, only the specified locale is used and it must be an exact match. + * The way in which multilingual fields are treated durig a search. By default, only the specified locale is used + * and it must be an exact match. * * @return */ @@ -342,8 +371,8 @@ public class SearchParameters extends SearchStatement } /** - * Set the way in which multilingual fields are treated durig a search. - * This controls in which locales an multilingual fields will match. + * Set the way in which multilingual fields are treated durig a search. This controls in which locales an + * multilingual fields will match. * * @param mlAnalaysisMode */ @@ -353,9 +382,8 @@ public class SearchParameters extends SearchStatement } /** - * Add a locale to include for multi-lingual text searches. - * If non are set, the default is to use the user's locale. - * + * Add a locale to include for multi-lingual text searches. If non are set, the default is to use the user's locale. + * * @param locale */ public void addLocale(Locale locale) @@ -372,14 +400,10 @@ public class SearchParameters extends SearchStatement { return Collections.unmodifiableList(locales); } - - - /** - * Add a locale to include for multi-lingual text searches. - * If non are set, the default is to use the user's locale. - * + * Add a locale to include for multi-lingual text searches. If non are set, the default is to use the user's locale. + * * @param locale */ public void addTextAttribute(String attribute) @@ -396,11 +420,10 @@ public class SearchParameters extends SearchStatement { return Collections.unmodifiableSet(textAttributes); } - + /** - * Add a locale to include for multi-lingual text searches. - * If non are set, the default is to use the user's locale. - * + * Add a locale to include for multi-lingual text searches. If non are set, the default is to use the user's locale. + * * @param locale */ public void addAllAttribute(String attribute) @@ -417,9 +440,10 @@ public class SearchParameters extends SearchStatement { return Collections.unmodifiableSet(allAttributes); } - + /** * Bulk fetch results in the cache + * * @param bulkFetch * @return */ @@ -427,9 +451,10 @@ public class SearchParameters extends SearchStatement { this.bulkFetch = bulkFetch; } - + /** * Do we bulk fect + * * @return */ public boolean getBulkFetch() @@ -439,24 +464,126 @@ public class SearchParameters extends SearchStatement /** * Set the bulk fect size + * * @param bulkFecthSize */ public void setBulkFetchSize(int bulkFetchSize) { this.bulkFetchSize = bulkFetchSize; } - - + /** * Get the bulk fetch size. + * * @return */ public int getBulkFecthSize() { return bulkFetchSize; } - - + + /** + * Get the max number of rows for the result set 0 or less is unlimited + * + * @return the maxItems + */ + public int getMaxItems() + { + return maxItems; + } + + /** + * Set the max number of rows for the result set 0 or less is unlimited + * + * @param maxItems + * the maxItems to set + */ + public void setMaxItems(int maxItems) + { + this.maxItems = maxItems; + } + + /** + * Get the skip count - the number of rows to skip at the start of the query. + * + * @return the skipCount + */ + public int getSkipCount() + { + return skipCount; + } + + /** + * Set the skip count - the number of rows to skip at the start of the query. + * + * @param skipCount + * the skipCount to set + */ + public void setSkipCount(int skipCount) + { + this.skipCount = skipCount; + } + + /** + * Get the default connective used when OR and AND are not specified for the FTS contains() function. + * + * @return the defaultFTSConnective + */ + public Operator getDefaultFTSOperator() + { + return defaultFTSOperator; + } + + /** + * Set the default connective used when OR and AND are not specified for the FTS contains() function. + * + * @param defaultFTSConnective + * the defaultFTSConnective to set + */ + public void setDefaultFTSOperator(Operator defaultFTSOperator) + { + this.defaultFTSOperator = defaultFTSOperator; + } + + /** + * As getDefaultFTSConnective() but for field groups + * + * @return the defaultFTSFieldConnective + */ + public Operator getDefaultFTSFieldOperator() + { + return defaultFTSFieldOperator; + } + + /** + * As setDefaultFTSConnective() but for field groups + * + * @param defaultFTSFieldConnective + * the defaultFTSFieldConnective to set + */ + public void setDefaultFTSFieldConnective(Operator defaultFTSFieldOperator) + { + this.defaultFTSFieldOperator = defaultFTSFieldOperator; + } + + /** + * Get the default namespace. + * @return the default namspace uri or prefix. + */ + public String getNamespace() + { + return namespace; + } + + /** + * Set the default namespace + * @param namespace - the uri or prefix for the default namespace. + */ + public void setNamespace(String namespace) + { + this.namespace = namespace; + } + /** * A helper class for sort definition. Encapsulated using the lucene sortType, field name and a flag for * ascending/descending. @@ -500,4 +627,5 @@ public class SearchParameters extends SearchStatement } } + } diff --git a/source/java/org/alfresco/service/cmr/search/SearchService.java b/source/java/org/alfresco/service/cmr/search/SearchService.java index fd934941c2..da9ee27c6c 100644 --- a/source/java/org/alfresco/service/cmr/search/SearchService.java +++ b/source/java/org/alfresco/service/cmr/search/SearchService.java @@ -62,27 +62,6 @@ public interface SearchService //public static final String LANGUAGE_SQL_ALFTRESCO = "sql-alfresco"; - /** - * Search against a store. - * - * @param store - - * the store against which to search - * @param language - - * the query language - * @param query - - * the query string - which may include parameters - * @param attributePaths - - * explicit list of attributes/properties to extract for the - * selected nodes in xpath style syntax - * @param queryParameterDefinition - - * query parameter definitions - the default value is used for - * the value. - * @return Returns the query results - */ - @Auditable(key = Auditable.Key.ARG_0, parameters = {"store", "language", "query", "attributePaths", "queryParameterDefinitions"}) - public ResultSet query(StoreRef store, String language, String query, Path[] attributePaths, - QueryParameterDefinition[] queryParameterDefinitions); - /** * Search against a store. Pulls back all attributes on each node. Does not * allow parameterisation. @@ -116,23 +95,7 @@ public interface SearchService public ResultSet query(StoreRef store, String language, String query, QueryParameterDefinition[] queryParameterDefintions); - /** - * Search against a store. - * - * @param store - - * the store against which to search - * @param language - - * the query language - * @param query - - * the query string - which may include parameters - * @param attributePaths - - * explicit list of attributes/properties to extract for the - * selected nodes in xpath style syntax - * @return Returns the query results - */ - @Auditable(key = Auditable.Key.ARG_0, parameters = {"store", "language", "query", "attributePaths"}) - public ResultSet query(StoreRef store, String language, String query, Path[] attributePaths); - + /** * Execute a canned query *