diff --git a/source/java/org/alfresco/cmis/property/CMISPropertyServiceImpl.java b/source/java/org/alfresco/cmis/property/CMISPropertyServiceImpl.java index 1ec5291fd6..3b30165726 100644 --- a/source/java/org/alfresco/cmis/property/CMISPropertyServiceImpl.java +++ b/source/java/org/alfresco/cmis/property/CMISPropertyServiceImpl.java @@ -36,11 +36,11 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; import org.springframework.beans.factory.InitializingBean; diff --git a/source/java/org/alfresco/cmis/property/ContentStreamLengthPropertyAccessor.java b/source/java/org/alfresco/cmis/property/ContentStreamLengthPropertyAccessor.java index d75c4c855a..c0a4876ac8 100644 --- a/source/java/org/alfresco/cmis/property/ContentStreamLengthPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/ContentStreamLengthPropertyAccessor.java @@ -31,13 +31,13 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.ContentData; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; diff --git a/source/java/org/alfresco/cmis/property/ContentStreamMimetypePropertyAccessor.java b/source/java/org/alfresco/cmis/property/ContentStreamMimetypePropertyAccessor.java index cc03b2af5e..1098daf454 100644 --- a/source/java/org/alfresco/cmis/property/ContentStreamMimetypePropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/ContentStreamMimetypePropertyAccessor.java @@ -31,13 +31,13 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.ContentData; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; diff --git a/source/java/org/alfresco/cmis/property/ContentStreamUriPropertyAccessor.java b/source/java/org/alfresco/cmis/property/ContentStreamUriPropertyAccessor.java index 8244b79052..c2e6814353 100644 --- a/source/java/org/alfresco/cmis/property/ContentStreamUriPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/ContentStreamUriPropertyAccessor.java @@ -31,9 +31,9 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/FixedValuePropertyAccessor.java b/source/java/org/alfresco/cmis/property/FixedValuePropertyAccessor.java index e391744a25..2611545595 100644 --- a/source/java/org/alfresco/cmis/property/FixedValuePropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/FixedValuePropertyAccessor.java @@ -30,7 +30,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.NodeRef; @@ -38,6 +37,7 @@ import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.util.EqualsHelper; import org.alfresco.util.SearchLanguageConversion; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.TermQuery; diff --git a/source/java/org/alfresco/cmis/property/GenericPropertyAccessor.java b/source/java/org/alfresco/cmis/property/GenericPropertyAccessor.java index 3b8b3baca2..bf0b73338d 100644 --- a/source/java/org/alfresco/cmis/property/GenericPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/GenericPropertyAccessor.java @@ -28,9 +28,9 @@ import java.io.Serializable; import java.util.Collection; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/IsImmutablePropertyAccessor.java b/source/java/org/alfresco/cmis/property/IsImmutablePropertyAccessor.java index a2e65dc417..5f9ee39005 100644 --- a/source/java/org/alfresco/cmis/property/IsImmutablePropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/IsImmutablePropertyAccessor.java @@ -31,11 +31,11 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.lock.LockType; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/IsLatestVersionPropertyAccessor.java b/source/java/org/alfresco/cmis/property/IsLatestVersionPropertyAccessor.java index 0bc9fb36b7..39e0e55c15 100644 --- a/source/java/org/alfresco/cmis/property/IsLatestVersionPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/IsLatestVersionPropertyAccessor.java @@ -31,9 +31,9 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/IsMajorVersionPropertyAccessor.java b/source/java/org/alfresco/cmis/property/IsMajorVersionPropertyAccessor.java index 72f36a3d1a..9baa6a0487 100644 --- a/source/java/org/alfresco/cmis/property/IsMajorVersionPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/IsMajorVersionPropertyAccessor.java @@ -31,11 +31,11 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.version.Version; import org.alfresco.service.cmr.version.VersionType; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/IsVersionSeriesCheckedOutPropertyAccessor.java b/source/java/org/alfresco/cmis/property/IsVersionSeriesCheckedOutPropertyAccessor.java index 73d5fc6e3d..c9ee6ee726 100644 --- a/source/java/org/alfresco/cmis/property/IsVersionSeriesCheckedOutPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/IsVersionSeriesCheckedOutPropertyAccessor.java @@ -31,10 +31,10 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.lock.LockType; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/MappingPropertyAccessor.java b/source/java/org/alfresco/cmis/property/MappingPropertyAccessor.java index 07cc4e0ef9..23107c2a1a 100644 --- a/source/java/org/alfresco/cmis/property/MappingPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/MappingPropertyAccessor.java @@ -28,13 +28,13 @@ import java.io.Serializable; import java.util.Collection; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.namespace.QName; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; diff --git a/source/java/org/alfresco/cmis/property/NamedPropertyAccessor.java b/source/java/org/alfresco/cmis/property/NamedPropertyAccessor.java index 53efcbfad1..73e6722519 100644 --- a/source/java/org/alfresco/cmis/property/NamedPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/NamedPropertyAccessor.java @@ -29,9 +29,9 @@ import java.util.Collection; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/ObjectIdPropertyAccessor.java b/source/java/org/alfresco/cmis/property/ObjectIdPropertyAccessor.java index 066b1e098e..85373644bb 100644 --- a/source/java/org/alfresco/cmis/property/ObjectIdPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/ObjectIdPropertyAccessor.java @@ -32,12 +32,12 @@ import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.cmis.search.CMISQueryException; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; diff --git a/source/java/org/alfresco/cmis/property/ObjectTypeIdPropertyAccessor.java b/source/java/org/alfresco/cmis/property/ObjectTypeIdPropertyAccessor.java index a6a16a1301..de54a2ef96 100644 --- a/source/java/org/alfresco/cmis/property/ObjectTypeIdPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/ObjectTypeIdPropertyAccessor.java @@ -33,13 +33,13 @@ import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.cmis.dictionary.CMISTypeId; import org.alfresco.cmis.search.CMISQueryException; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.namespace.QName; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; diff --git a/source/java/org/alfresco/cmis/property/ParentPropertyAccessor.java b/source/java/org/alfresco/cmis/property/ParentPropertyAccessor.java index bc1f32906f..9344d1ccb7 100644 --- a/source/java/org/alfresco/cmis/property/ParentPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/ParentPropertyAccessor.java @@ -31,13 +31,13 @@ import org.alfresco.cmis.CMISService; import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; diff --git a/source/java/org/alfresco/cmis/property/SimplePropertyAccessor.java b/source/java/org/alfresco/cmis/property/SimplePropertyAccessor.java index d2c500bc3a..462465f604 100644 --- a/source/java/org/alfresco/cmis/property/SimplePropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/SimplePropertyAccessor.java @@ -28,13 +28,13 @@ import java.io.Serializable; import java.util.Collection; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.namespace.QName; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; diff --git a/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutByPropertyAccessor.java b/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutByPropertyAccessor.java index e74bf70944..41e48ccd2c 100644 --- a/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutByPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutByPropertyAccessor.java @@ -31,10 +31,10 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.lock.LockType; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutIdPropertyAccessor.java b/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutIdPropertyAccessor.java index 1e5c428ea8..d24e8af3d9 100644 --- a/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutIdPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/VersionSeriesCheckedOutIdPropertyAccessor.java @@ -31,10 +31,10 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.lock.LockType; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/property/VersionSeriesIdPropertyAccessor.java b/source/java/org/alfresco/cmis/property/VersionSeriesIdPropertyAccessor.java index e995db35e3..e2e85a3245 100644 --- a/source/java/org/alfresco/cmis/property/VersionSeriesIdPropertyAccessor.java +++ b/source/java/org/alfresco/cmis/property/VersionSeriesIdPropertyAccessor.java @@ -31,9 +31,9 @@ import org.alfresco.cmis.dictionary.CMISMapping; import org.alfresco.cmis.dictionary.CMISScope; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java b/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java index 898fa7b619..d6b22c8b0c 100644 --- a/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java +++ b/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java @@ -32,12 +32,12 @@ import org.alfresco.cmis.dictionary.CMISDictionaryService; import org.alfresco.cmis.property.CMISPropertyService; import org.alfresco.cmis.property.CMISPropertyServiceImpl; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PredicateMode; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.namespace.QName; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/admin/patch/impl/CalendarModelUriPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/CalendarModelUriPatch.java index f528e8d155..2adde39647 100644 --- a/source/java/org/alfresco/repo/admin/patch/impl/CalendarModelUriPatch.java +++ b/source/java/org/alfresco/repo/admin/patch/impl/CalendarModelUriPatch.java @@ -31,7 +31,7 @@ import org.alfresco.repo.domain.QNameDAO; import org.alfresco.repo.importer.ImporterBootstrap; import org.alfresco.repo.search.Indexer; import org.alfresco.repo.search.IndexerAndSearcher; -import org.alfresco.repo.search.impl.lucene.QueryParser; +import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; @@ -79,7 +79,7 @@ public class CalendarModelUriPatch extends AbstractPatch qnameDAO.updateNamespace(URI_BEFORE, URI_AFTER); // reindex the calendar entries - int count = reindex("TYPE:\\{" + QueryParser.escape(URI_BEFORE) + "\\}*", importerBootstrap.getStoreRef()); + int count = reindex("TYPE:\\{" + LuceneQueryParser.escape(URI_BEFORE) + "\\}*", importerBootstrap.getStoreRef()); return I18NUtil.getMessage(MSG_SUCCESS, count); } diff --git a/source/java/org/alfresco/repo/jscript/People.java b/source/java/org/alfresco/repo/jscript/People.java index 78eea8bd68..12f1bc7329 100644 --- a/source/java/org/alfresco/repo/jscript/People.java +++ b/source/java/org/alfresco/repo/jscript/People.java @@ -28,7 +28,7 @@ import java.util.Set; import java.util.StringTokenizer; import org.alfresco.model.ContentModel; -import org.alfresco.repo.search.impl.lucene.QueryParser; +import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; import org.alfresco.repo.security.authentication.MutableAuthenticationDao; import org.alfresco.repo.security.authentication.PasswordGenerator; import org.alfresco.repo.security.authentication.UserNameGenerator; @@ -292,7 +292,7 @@ public final class People extends BaseScopableProcessorExtension StringBuilder query = new StringBuilder(128); for (StringTokenizer t = new StringTokenizer(filter, " "); t.hasMoreTokens(); /**/) { - String term = QueryParser.escape(t.nextToken().replace('"', ' ')); + String term = LuceneQueryParser.escape(t.nextToken().replace('"', ' ')); query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*"); query.append(term); query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*"); 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 17a5c2141a..9efa301bac 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java @@ -44,7 +44,6 @@ import org.alfresco.repo.search.MLAnalysisMode; import org.alfresco.repo.search.QueryRegisterComponent; import org.alfresco.repo.search.SearcherException; import org.alfresco.repo.search.impl.NodeSearcher; -import org.alfresco.repo.search.impl.lucene.QueryParser.Operator; import org.alfresco.repo.search.impl.lucene.analysis.DateTimeAnalyser; import org.alfresco.repo.search.results.SortedResultSet; import org.alfresco.repo.tenant.TenantService; @@ -73,6 +72,8 @@ import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; import org.apache.lucene.index.TermEnum; import org.apache.lucene.index.IndexReader.FieldOption; +import org.apache.lucene.queryParser.ParseException; +import org.apache.lucene.queryParser.QueryParser.Operator; import org.apache.lucene.search.Hits; import org.apache.lucene.search.Query; import org.apache.lucene.search.Searcher; diff --git a/source/java/org/alfresco/repo/search/impl/lucene/CharStream.java b/source/java/org/alfresco/repo/search/impl/lucene/CharStream.java deleted file mode 100644 index b01b9ea8a9..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/CharStream.java +++ /dev/null @@ -1,96 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. CharStream.java Version 3.0 */ -package org.alfresco.repo.search.impl.lucene; - -/** - * This interface describes a character stream that maintains line and - * column number positions of the characters. It also has the capability - * to backup the stream to some extent. An implementation of this - * interface is used in the TokenManager implementation generated by - * JavaCCParser. - * - * All the methods except backup can be implemented in any fashion. backup - * needs to be implemented correctly for the correct operation of the lexer. - * Rest of the methods are all used to get information like line number, - * column number and the String that constitutes a token and are not used - * by the lexer. Hence their implementation won't affect the generated lexer's - * operation. - */ - -public interface CharStream { - - /** - * Returns the next character from the selected input. The method - * of selecting the input is the responsibility of the class - * implementing this interface. Can throw any java.io.IOException. - */ - char readChar() throws java.io.IOException; - - /** - * Returns the column number of the last character for current token (being - * matched after the last call to BeginTOken). - */ - int getEndColumn(); - - /** - * Returns the line number of the last character for current token (being - * matched after the last call to BeginTOken). - */ - int getEndLine(); - - /** - * Returns the column number of the first character for current token (being - * matched after the last call to BeginTOken). - */ - int getBeginColumn(); - - /** - * Returns the line number of the first character for current token (being - * matched after the last call to BeginTOken). - */ - int getBeginLine(); - - /** - * Backs up the input stream by amount steps. Lexer calls this method if it - * had already read some characters, but could not use them to match a - * (longer) token. So, they will be used again as the prefix of the next - * token and it is the implemetation's responsibility to do this right. - */ - void backup(int amount); - - /** - * Returns the next character that marks the beginning of the next token. - * All characters must remain in the buffer between two successive calls - * to this method to implement backup correctly. - */ - char BeginToken() throws java.io.IOException; - - /** - * Returns a string made up of characters from the marked token beginning - * to the current buffer position. Implementations have the choice of returning - * anything that they want to. For example, for efficiency, one might decide - * to just return null, which is a valid implementation. - */ - String GetImage(); - - /** - * Returns an array of characters that make up the suffix of length 'len' for - * the currently matched token. This is used to build up the matched string - * for use in actions in the case of MORE. A simple and inefficient - * implementation of this is as follows : - * - * { - * String t = GetImage(); - * return t.substring(t.length() - len, t.length()).toCharArray(); - * } - */ - char[] GetSuffix(int len); - - /** - * The lexer calls this function to indicate that it is done with the stream - * and hence implementations can free any resources held by this class. - * Again, the body of this function can be just empty and it will not - * affect the lexer's operation. - */ - void Done(); - -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/FastCharStream.java b/source/java/org/alfresco/repo/search/impl/lucene/FastCharStream.java deleted file mode 100644 index 04d659a096..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/FastCharStream.java +++ /dev/null @@ -1,122 +0,0 @@ -// FastCharStream.java -package org.alfresco.repo.search.impl.lucene; - -/** - * Copyright 2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.io.IOException; -import java.io.Reader; - -/** An efficient implementation of JavaCC's CharStream interface.

Note that - * this does not do line-number counting, but instead keeps track of the - * character position of the token in the input, as required by Lucene's {@link - * org.apache.lucene.analysis.Token} API. */ -public final class FastCharStream implements CharStream { - char[] buffer = null; - - int bufferLength = 0; // end of valid chars - int bufferPosition = 0; // next char to read - - int tokenStart = 0; // offset in buffer - int bufferStart = 0; // position in file of buffer - - Reader input; // source of chars - - /** Constructs from a Reader. */ - public FastCharStream(Reader r) { - input = r; - } - - public final char readChar() throws IOException { - if (bufferPosition >= bufferLength) - refill(); - return buffer[bufferPosition++]; - } - - private final void refill() throws IOException { - int newPosition = bufferLength - tokenStart; - - if (tokenStart == 0) { // token won't fit in buffer - if (buffer == null) { // first time: alloc buffer - buffer = new char[2048]; - } else if (bufferLength == buffer.length) { // grow buffer - char[] newBuffer = new char[buffer.length*2]; - System.arraycopy(buffer, 0, newBuffer, 0, bufferLength); - buffer = newBuffer; - } - } else { // shift token to front - System.arraycopy(buffer, tokenStart, buffer, 0, newPosition); - } - - bufferLength = newPosition; // update state - bufferPosition = newPosition; - bufferStart += tokenStart; - tokenStart = 0; - - int charsRead = // fill space in buffer - input.read(buffer, newPosition, buffer.length-newPosition); - if (charsRead == -1) - throw new IOException("read past eof"); - else - bufferLength += charsRead; - } - - public final char BeginToken() throws IOException { - tokenStart = bufferPosition; - return readChar(); - } - - public final void backup(int amount) { - bufferPosition -= amount; - } - - public final String GetImage() { - return new String(buffer, tokenStart, bufferPosition - tokenStart); - } - - public final char[] GetSuffix(int len) { - char[] value = new char[len]; - System.arraycopy(buffer, bufferPosition - len, value, 0, len); - return value; - } - - public final void Done() { - try { - input.close(); - } catch (IOException e) { - System.err.println("Caught: " + e + "; ignoring."); - } - } - - public final int getColumn() { - return bufferStart + bufferPosition; - } - public final int getLine() { - return 1; - } - public final int getEndColumn() { - return bufferStart + bufferPosition; - } - public final int getEndLine() { - return 1; - } - public final int getBeginColumn() { - return bufferStart + tokenStart; - } - public final int getBeginLine() { - return 1; - } -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java index a1bf781e42..84221a8cb0 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java @@ -66,6 +66,10 @@ import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; +import org.apache.lucene.queryParser.CharStream; +import org.apache.lucene.queryParser.ParseException; +import org.apache.lucene.queryParser.QueryParser; +import org.apache.lucene.queryParser.QueryParserTokenManager; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.ConstantScoreRangeQuery; @@ -125,6 +129,7 @@ public class LuceneQueryParser extends QueryParser parser.setSearchParameters(searchParameters); parser.setLuceneConfig(config); parser.setIndexReader(indexReader); + parser.setAllowLeadingWildcard(true); // TODO: Apply locale contstraints at the top level if required for the non ML doc types. Query result = parser.parse(query); if (s_logger.isDebugEnabled()) @@ -676,7 +681,7 @@ public class LuceneQueryParser extends QueryParser } } - TokenStream source = analyzer.tokenStream(field, new StringReader(queryText)); + TokenStream source = getAnalyzer().tokenStream(field, new StringReader(queryText)); ArrayList v = new ArrayList(); org.apache.lucene.analysis.Token t; int positionCount = 0; @@ -1303,7 +1308,7 @@ public class LuceneQueryParser extends QueryParser else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.TEXT) || propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT) || propertyDef.getDataType().getName().equals(DataTypeDefinition.ANY)) { - if (lowercaseExpandedTerms) + if (getLowercaseExpandedTerms()) { part1 = part1.toLowerCase(); part2 = part2.toLowerCase(); @@ -1318,7 +1323,7 @@ public class LuceneQueryParser extends QueryParser } else { - if (lowercaseExpandedTerms) + if (getLowercaseExpandedTerms()) { part1 = part1.toLowerCase(); part2 = part2.toLowerCase(); @@ -2029,7 +2034,7 @@ public class LuceneQueryParser extends QueryParser private String getToken(String field, String value) throws ParseException { - TokenStream source = analyzer.tokenStream(field, new StringReader(value)); + TokenStream source = getAnalyzer().tokenStream(field, new StringReader(value)); org.apache.lucene.analysis.Token t; String tokenised = null; diff --git a/source/java/org/alfresco/repo/search/impl/lucene/MultiFieldQueryParser.java b/source/java/org/alfresco/repo/search/impl/lucene/MultiFieldQueryParser.java deleted file mode 100644 index e606e67f0b..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/MultiFieldQueryParser.java +++ /dev/null @@ -1,268 +0,0 @@ -package org.alfresco.repo.search.impl.lucene; - -/** - * Copyright 2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.Vector; - -import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.search.BooleanClause; -import org.apache.lucene.search.BooleanQuery; -import org.apache.lucene.search.MultiPhraseQuery; -import org.apache.lucene.search.PhraseQuery; -import org.apache.lucene.search.Query; - -/** - * A QueryParser which constructs queries to search multiple fields. - * - * @author Kelvin Tan, Daniel Naber - * @version $Revision: 406088 $ - */ -public class MultiFieldQueryParser extends QueryParser -{ - - private String[] fields; - - /** - * Creates a MultiFieldQueryParser. - * - *

It will, when parse(String query) - * is called, construct a query like this (assuming the query consists of - * two terms and you specify the two fields title and body):

- * - * - * (title:term1 body:term1) (title:term2 body:term2) - * - * - *

When setDefaultOperator(AND_OPERATOR) is set, the result will be:

- * - * - * +(title:term1 body:term1) +(title:term2 body:term2) - * - * - *

In other words, all the query's terms must appear, but it doesn't matter in - * what fields they appear.

- */ - public MultiFieldQueryParser(String[] fields, Analyzer analyzer) { - super(null, analyzer); - this.fields = fields; - } - - protected Query getFieldQuery(String field, String queryText, int slop) throws ParseException { - if (field == null) { - Vector clauses = new Vector(); - for (int i = 0; i < fields.length; i++) { - Query q = super.getFieldQuery(fields[i], queryText); - if (q != null) { - if (q instanceof PhraseQuery) { - ((PhraseQuery) q).setSlop(slop); - } - if (q instanceof MultiPhraseQuery) { - ((MultiPhraseQuery) q).setSlop(slop); - } - clauses.add(new BooleanClause(q, BooleanClause.Occur.SHOULD)); - } - } - if (clauses.size() == 0) // happens for stopwords - return null; - return getBooleanQuery(clauses, true); - } - return super.getFieldQuery(field, queryText); - } - - - protected Query getFieldQuery(String field, String queryText) throws ParseException { - return getFieldQuery(field, queryText, 0); - } - - - protected Query getFuzzyQuery(String field, String termStr, float minSimilarity) throws ParseException - { - if (field == null) { - Vector clauses = new Vector(); - for (int i = 0; i < fields.length; i++) { - clauses.add(new BooleanClause(super.getFuzzyQuery(fields[i], termStr, minSimilarity), - BooleanClause.Occur.SHOULD)); - } - return getBooleanQuery(clauses, true); - } - return super.getFuzzyQuery(field, termStr, minSimilarity); - } - - protected Query getPrefixQuery(String field, String termStr) throws ParseException - { - if (field == null) { - Vector clauses = new Vector(); - for (int i = 0; i < fields.length; i++) { - clauses.add(new BooleanClause(super.getPrefixQuery(fields[i], termStr), - BooleanClause.Occur.SHOULD)); - } - return getBooleanQuery(clauses, true); - } - return super.getPrefixQuery(field, termStr); - } - - protected Query getWildcardQuery(String field, String termStr) throws ParseException { - if (field == null) { - Vector clauses = new Vector(); - for (int i = 0; i < fields.length; i++) { - clauses.add(new BooleanClause(super.getWildcardQuery(fields[i], termStr), - BooleanClause.Occur.SHOULD)); - } - return getBooleanQuery(clauses, true); - } - return super.getWildcardQuery(field, termStr); - } - - - protected Query getRangeQuery(String field, String part1, String part2, boolean inclusive) throws ParseException { - if (field == null) { - Vector clauses = new Vector(); - for (int i = 0; i < fields.length; i++) { - clauses.add(new BooleanClause(super.getRangeQuery(fields[i], part1, part2, inclusive), - BooleanClause.Occur.SHOULD)); - } - return getBooleanQuery(clauses, true); - } - return super.getRangeQuery(field, part1, part2, inclusive); - } - - - - - /** - * Parses a query which searches on the fields specified. - *

- * If x fields are specified, this effectively constructs: - *

-   * 
-   * (field1:query1) (field2:query2) (field3:query3)...(fieldx:queryx)
-   * 
-   * 
- * @param queries Queries strings to parse - * @param fields Fields to search on - * @param analyzer Analyzer to use - * @throws ParseException if query parsing fails - * @throws IllegalArgumentException if the length of the queries array differs - * from the length of the fields array - */ - public static Query parse(String[] queries, String[] fields, - Analyzer analyzer) throws ParseException - { - if (queries.length != fields.length) - throw new IllegalArgumentException("queries.length != fields.length"); - BooleanQuery bQuery = new BooleanQuery(); - for (int i = 0; i < fields.length; i++) - { - QueryParser qp = new QueryParser(fields[i], analyzer); - Query q = qp.parse(queries[i]); - bQuery.add(q, BooleanClause.Occur.SHOULD); - } - return bQuery; - } - - - /** - * Parses a query, searching on the fields specified. - * Use this if you need to specify certain fields as required, - * and others as prohibited. - *

-   * Usage:
-   * 
-   * String[] fields = {"filename", "contents", "description"};
-   * BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,
-   *                BooleanClause.Occur.MUST,
-   *                BooleanClause.Occur.MUST_NOT};
-   * MultiFieldQueryParser.parse("query", fields, flags, analyzer);
-   * 
-   * 
- *

- * The code above would construct a query: - *

-   * 
-   * (filename:query) +(contents:query) -(description:query)
-   * 
-   * 
- * - * @param query Query string to parse - * @param fields Fields to search on - * @param flags Flags describing the fields - * @param analyzer Analyzer to use - * @throws ParseException if query parsing fails - * @throws IllegalArgumentException if the length of the fields array differs - * from the length of the flags array - */ - public static Query parse(String query, String[] fields, - BooleanClause.Occur[] flags, Analyzer analyzer) throws ParseException { - if (fields.length != flags.length) - throw new IllegalArgumentException("fields.length != flags.length"); - BooleanQuery bQuery = new BooleanQuery(); - for (int i = 0; i < fields.length; i++) { - QueryParser qp = new QueryParser(fields[i], analyzer); - Query q = qp.parse(query); - bQuery.add(q, flags[i]); - } - return bQuery; - } - - - /** - * Parses a query, searching on the fields specified. - * Use this if you need to specify certain fields as required, - * and others as prohibited. - *

-   * Usage:
-   * 
-   * String[] query = {"query1", "query2", "query3"};
-   * String[] fields = {"filename", "contents", "description"};
-   * BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,
-   *                BooleanClause.Occur.MUST,
-   *                BooleanClause.Occur.MUST_NOT};
-   * MultiFieldQueryParser.parse(query, fields, flags, analyzer);
-   * 
-   * 
- *

- * The code above would construct a query: - *

-   * 
-   * (filename:query1) +(contents:query2) -(description:query3)
-   * 
-   * 
- * - * @param queries Queries string to parse - * @param fields Fields to search on - * @param flags Flags describing the fields - * @param analyzer Analyzer to use - * @throws ParseException if query parsing fails - * @throws IllegalArgumentException if the length of the queries, fields, - * and flags array differ - */ - public static Query parse(String[] queries, String[] fields, BooleanClause.Occur[] flags, - Analyzer analyzer) throws ParseException - { - if (!(queries.length == fields.length && queries.length == flags.length)) - throw new IllegalArgumentException("queries, fields, and flags array have have different length"); - BooleanQuery bQuery = new BooleanQuery(); - for (int i = 0; i < fields.length; i++) - { - QueryParser qp = new QueryParser(fields[i], analyzer); - Query q = qp.parse(queries[i]); - bQuery.add(q, flags[i]); - } - return bQuery; - } - -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ParseException.java b/source/java/org/alfresco/repo/search/impl/lucene/ParseException.java deleted file mode 100644 index 61ab9f693c..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/ParseException.java +++ /dev/null @@ -1,192 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 3.0 */ -package org.alfresco.repo.search.impl.lucene; - -/** - * This exception is thrown when parse errors are encountered. - * You can explicitly create objects of this exception type by - * calling the method generateParseException in the generated - * parser. - * - * You can modify this class to customize your error reporting - * mechanisms so long as you retain the public fields. - */ -public class ParseException extends Exception { - - /** - * This constructor is used by the method "generateParseException" - * in the generated parser. Calling this constructor generates - * a new object of this type with the fields "currentToken", - * "expectedTokenSequences", and "tokenImage" set. The boolean - * flag "specialConstructor" is also set to true to indicate that - * this constructor was used to create this object. - * This constructor calls its super class with the empty string - * to force the "toString" method of parent class "Throwable" to - * print the error message in the form: - * ParseException: - */ - public ParseException(Token currentTokenVal, - int[][] expectedTokenSequencesVal, - String[] tokenImageVal - ) - { - super(""); - specialConstructor = true; - currentToken = currentTokenVal; - expectedTokenSequences = expectedTokenSequencesVal; - tokenImage = tokenImageVal; - } - - /** - * The following constructors are for use by you for whatever - * purpose you can think of. Constructing the exception in this - * manner makes the exception behave in the normal way - i.e., as - * documented in the class "Throwable". The fields "errorToken", - * "expectedTokenSequences", and "tokenImage" do not contain - * relevant information. The JavaCC generated code does not use - * these constructors. - */ - - public ParseException() { - super(); - specialConstructor = false; - } - - public ParseException(String message) { - super(message); - specialConstructor = false; - } - - /** - * This variable determines which constructor was used to create - * this object and thereby affects the semantics of the - * "getMessage" method (see below). - */ - protected boolean specialConstructor; - - /** - * This is the last token that has been consumed successfully. If - * this object has been created due to a parse error, the token - * followng this token will (therefore) be the first error token. - */ - public Token currentToken; - - /** - * Each entry in this array is an array of integers. Each array - * of integers represents a sequence of tokens (by their ordinal - * values) that is expected at this point of the parse. - */ - public int[][] expectedTokenSequences; - - /** - * This is a reference to the "tokenImage" array of the generated - * parser within which the parse error occurred. This array is - * defined in the generated ...Constants interface. - */ - public String[] tokenImage; - - /** - * This method has the standard behavior when this object has been - * created using the standard constructors. Otherwise, it uses - * "currentToken" and "expectedTokenSequences" to generate a parse - * error message and returns it. If this object has been created - * due to a parse error, and you do not catch it (it gets thrown - * from the parser), then this method is called during the printing - * of the final stack trace, and hence the correct error message - * gets displayed. - */ - public String getMessage() { - if (!specialConstructor) { - return super.getMessage(); - } - String expected = ""; - int maxSize = 0; - for (int i = 0; i < expectedTokenSequences.length; i++) { - if (maxSize < expectedTokenSequences[i].length) { - maxSize = expectedTokenSequences[i].length; - } - for (int j = 0; j < expectedTokenSequences[i].length; j++) { - expected += tokenImage[expectedTokenSequences[i][j]] + " "; - } - if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) { - expected += "..."; - } - expected += eol + " "; - } - String retval = "Encountered \""; - Token tok = currentToken.next; - for (int i = 0; i < maxSize; i++) { - if (i != 0) retval += " "; - if (tok.kind == 0) { - retval += tokenImage[0]; - break; - } - retval += add_escapes(tok.image); - tok = tok.next; - } - retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn; - retval += "." + eol; - if (expectedTokenSequences.length == 1) { - retval += "Was expecting:" + eol + " "; - } else { - retval += "Was expecting one of:" + eol + " "; - } - retval += expected; - return retval; - } - - /** - * The end of line string for this machine. - */ - protected String eol = System.getProperty("line.separator", "\n"); - - /** - * Used to convert raw characters to their escaped version - * when these raw version cannot be used as part of an ASCII - * string literal. - */ - protected String add_escapes(String str) { - StringBuffer retval = new StringBuffer(); - char ch; - for (int i = 0; i < str.length(); i++) { - switch (str.charAt(i)) - { - case 0 : - continue; - case '\b': - retval.append("\\b"); - continue; - case '\t': - retval.append("\\t"); - continue; - case '\n': - retval.append("\\n"); - continue; - case '\f': - retval.append("\\f"); - continue; - case '\r': - retval.append("\\r"); - continue; - case '\"': - retval.append("\\\""); - continue; - case '\'': - retval.append("\\\'"); - continue; - case '\\': - retval.append("\\\\"); - continue; - default: - if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { - String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); - } else { - retval.append(ch); - } - continue; - } - } - return retval.toString(); - } - -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/QueryParser.java b/source/java/org/alfresco/repo/search/impl/lucene/QueryParser.java deleted file mode 100644 index 97b77b2bf4..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/QueryParser.java +++ /dev/null @@ -1,1287 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. QueryParser.java */ -package org.alfresco.repo.search.impl.lucene; - -import java.io.IOException; -import java.io.StringReader; -import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Vector; - -import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.analysis.TokenStream; -import org.apache.lucene.document.DateField; -import org.apache.lucene.document.DateTools; -import org.apache.lucene.index.Term; -import org.apache.lucene.search.BooleanClause; -import org.apache.lucene.search.BooleanQuery; -import org.apache.lucene.search.FuzzyQuery; -import org.apache.lucene.search.MultiPhraseQuery; -import org.apache.lucene.search.PhraseQuery; -import org.apache.lucene.search.PrefixQuery; -import org.apache.lucene.search.Query; -import org.apache.lucene.search.RangeQuery; -import org.apache.lucene.search.TermQuery; -import org.apache.lucene.search.WildcardQuery; -import org.apache.lucene.util.Parameter; - -/** - * This class is generated by JavaCC. The most important method is - * {@link #parse(String)}. - * - * The syntax for query strings is as follows: - * A Query is a series of clauses. - * A clause may be prefixed by: - * - * - * A clause may be either: - * - * - * Thus, in BNF, the query grammar is: - *
- *   Query  ::= ( Clause )*
- *   Clause ::= ["+", "-"] [<TERM> ":"] ( <TERM> | "(" Query ")" )
- * 
- * - *

- * Examples of appropriately formatted queries can be found in the query syntax - * documentation. - *

- * - *

In {@link RangeQuery}s, QueryParser tries to detect date values, e.g. date:[6/1/2005 TO 6/4/2005] - * produces a range query that searches for "date" fields between 2005-06-01 and 2005-06-04. Note - * that the format of the accpeted input depends on {@link #setLocale(Locale) the locale}. This - * feature also assumes that your index uses the {@link DateField} class to store dates. - * If you use a different format (e.g. {@link DateTools}) and you still want QueryParser - * to turn local dates in range queries into valid queries you need to create your own - * query parser that inherits QueryParser and overwrites - * {@link #getRangeQuery(String, String, String, boolean)}.

- * - *

Note that QueryParser is not thread-safe.

- * - * @author Brian Goetz - * @author Peter Halacsy - * @author Tatu Saloranta - */ - -public class QueryParser implements QueryParserConstants { - - private static final int CONJ_NONE = 0; - private static final int CONJ_AND = 1; - private static final int CONJ_OR = 2; - - private static final int MOD_NONE = 0; - private static final int MOD_NOT = 10; - private static final int MOD_REQ = 11; - - // make it possible to call setDefaultOperator() without accessing - // the nested class: - /** Alternative form of QueryParser.Operator.AND */ - public static final Operator AND_OPERATOR = Operator.AND; - /** Alternative form of QueryParser.Operator.OR */ - public static final Operator OR_OPERATOR = Operator.OR; - - /** The actual operator that parser uses to combine query terms */ - private Operator operator = OR_OPERATOR; - - boolean lowercaseExpandedTerms = true; - - Analyzer analyzer; - String field; - int phraseSlop = 0; - float fuzzyMinSim = FuzzyQuery.defaultMinSimilarity; - int fuzzyPrefixLength = FuzzyQuery.defaultPrefixLength; - Locale locale = Locale.getDefault(); - - /** The default operator for parsing queries. - * Use {@link QueryParser#setDefaultOperator} to change it. - */ - static public final class Operator extends Parameter { - private Operator(String name) { - super(name); - } - static public final Operator OR = new Operator("OR"); - static public final Operator AND = new Operator("AND"); - } - - - /** Constructs a query parser. - * @param f the default field for query terms. - * @param a used to find terms in the query text. - */ - public QueryParser(String f, Analyzer a) { - this(new FastCharStream(new StringReader(""))); - analyzer = a; - field = f; - } - - /** Parses a query string, returning a {@link org.apache.lucene.search.Query}. - * @param query the query string to be parsed. - * @throws ParseException if the parsing fails - */ - public Query parse(String query) throws ParseException { - ReInit(new FastCharStream(new StringReader(query))); - try { - return Query(field); - } - catch (TokenMgrError tme) { - throw new ParseException(tme.getMessage()); - } - catch (BooleanQuery.TooManyClauses tmc) { - throw new ParseException("Too many boolean clauses"); - } - } - - /** - * @return Returns the analyzer. - */ - public Analyzer getAnalyzer() { - return analyzer; - } - - /** - * @return Returns the field. - */ - public String getField() { - return field; - } - - /** - * Get the minimal similarity for fuzzy queries. - */ - public float getFuzzyMinSim() { - return fuzzyMinSim; - } - - /** - * Set the minimum similarity for fuzzy queries. - * Default is 0.5f. - */ - public void setFuzzyMinSim(float fuzzyMinSim) { - this.fuzzyMinSim = fuzzyMinSim; - } - - /** - * Get the prefix length for fuzzy queries. - * @return Returns the fuzzyPrefixLength. - */ - public int getFuzzyPrefixLength() { - return fuzzyPrefixLength; - } - - /** - * Set the prefix length for fuzzy queries. Default is 0. - * @param fuzzyPrefixLength The fuzzyPrefixLength to set. - */ - public void setFuzzyPrefixLength(int fuzzyPrefixLength) { - this.fuzzyPrefixLength = fuzzyPrefixLength; - } - - /** - * Sets the default slop for phrases. If zero, then exact phrase matches - * are required. Default value is zero. - */ - public void setPhraseSlop(int phraseSlop) { - this.phraseSlop = phraseSlop; - } - - /** - * Gets the default slop for phrases. - */ - public int getPhraseSlop() { - return phraseSlop; - } - - - /** - * Sets the boolean operator of the QueryParser. - * In default mode (OR_OPERATOR) terms without any modifiers - * are considered optional: for example capital of Hungary is equal to - * capital OR of OR Hungary.
- * In AND_OPERATOR mode terms are considered to be in conjuction: the - * above mentioned query is parsed as capital AND of AND Hungary - */ - public void setDefaultOperator(Operator op) { - this.operator = op; - } - - - /** - * Gets implicit operator setting, which will be either AND_OPERATOR - * or OR_OPERATOR. - */ - public Operator getDefaultOperator() { - return operator; - } - - - /** - * Whether terms of wildcard, prefix, fuzzy and range queries are to be automatically - * lower-cased or not. Default is true. - */ - public void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms) { - this.lowercaseExpandedTerms = lowercaseExpandedTerms; - } - - - /** - * @see #setLowercaseExpandedTerms(boolean) - */ - public boolean getLowercaseExpandedTerms() { - return lowercaseExpandedTerms; - } - - /** - * Set locale used by date range parsing. - */ - public void setLocale(Locale locale) { - this.locale = locale; - } - - /** - * Returns current locale, allowing access by subclasses. - */ - public Locale getLocale() { - return locale; - } - - protected void addClause(Vector clauses, int conj, int mods, Query q) { - boolean required, prohibited; - - // If this term is introduced by AND, make the preceding term required, - // unless it's already prohibited - if (clauses.size() > 0 && conj == CONJ_AND) { - BooleanClause c = (BooleanClause) clauses.elementAt(clauses.size()-1); - if (!c.isProhibited()) - c.setOccur(BooleanClause.Occur.MUST); - } - - if (clauses.size() > 0 && operator == AND_OPERATOR && conj == CONJ_OR) { - // If this term is introduced by OR, make the preceding term optional, - // unless it's prohibited (that means we leave -a OR b but +a OR b-->a OR b) - // notice if the input is a OR b, first term is parsed as required; without - // this modification a OR b would parsed as +a OR b - BooleanClause c = (BooleanClause) clauses.elementAt(clauses.size()-1); - if (!c.isProhibited()) - c.setOccur(BooleanClause.Occur.SHOULD); - } - - // We might have been passed a null query; the term might have been - // filtered away by the analyzer. - if (q == null) - return; - - if (operator == OR_OPERATOR) { - // We set REQUIRED if we're introduced by AND or +; PROHIBITED if - // introduced by NOT or -; make sure not to set both. - prohibited = (mods == MOD_NOT); - required = (mods == MOD_REQ); - if (conj == CONJ_AND && !prohibited) { - required = true; - } - } else { - // We set PROHIBITED if we're introduced by NOT or -; We set REQUIRED - // if not PROHIBITED and not introduced by OR - prohibited = (mods == MOD_NOT); - required = (!prohibited && conj != CONJ_OR); - } - if (required && !prohibited) - clauses.addElement(new BooleanClause(q, BooleanClause.Occur.MUST)); - else if (!required && !prohibited) - clauses.addElement(new BooleanClause(q, BooleanClause.Occur.SHOULD)); - else if (!required && prohibited) - clauses.addElement(new BooleanClause(q, BooleanClause.Occur.MUST_NOT)); - else - throw new RuntimeException("Clause cannot be both required and prohibited"); - } - - - /** - * @exception ParseException throw in overridden method to disallow - */ - protected Query getFieldQuery(String field, String queryText) throws ParseException { - // Use the analyzer to get all the tokens, and then build a TermQuery, - // PhraseQuery, or nothing based on the term count - - TokenStream source = analyzer.tokenStream(field, new StringReader(queryText)); - Vector v = new Vector(); - org.apache.lucene.analysis.Token t; - int positionCount = 0; - boolean severalTokensAtSamePosition = false; - - while (true) { - try { - t = source.next(); - } - catch (IOException e) { - t = null; - } - if (t == null) - break; - v.addElement(t); - if (t.getPositionIncrement() != 0) - positionCount += t.getPositionIncrement(); - else - severalTokensAtSamePosition = true; - } - try { - source.close(); - } - catch (IOException e) { - // ignore - } - - if (v.size() == 0) - return null; - else if (v.size() == 1) { - t = (org.apache.lucene.analysis.Token) v.elementAt(0); - return new TermQuery(new Term(field, t.termText())); - } else { - if (severalTokensAtSamePosition) { - if (positionCount == 1) { - // no phrase query: - BooleanQuery q = new BooleanQuery(true); - for (int i = 0; i < v.size(); i++) { - t = (org.apache.lucene.analysis.Token) v.elementAt(i); - TermQuery currentQuery = new TermQuery( - new Term(field, t.termText())); - q.add(currentQuery, BooleanClause.Occur.SHOULD); - } - return q; - } - else { - // phrase query: - MultiPhraseQuery mpq = new MultiPhraseQuery(); - mpq.setSlop(phraseSlop); - List multiTerms = new ArrayList(); - for (int i = 0; i < v.size(); i++) { - t = (org.apache.lucene.analysis.Token) v.elementAt(i); - if (t.getPositionIncrement() == 1 && multiTerms.size() > 0) { - mpq.add((Term[])multiTerms.toArray(new Term[0])); - multiTerms.clear(); - } - multiTerms.add(new Term(field, t.termText())); - } - mpq.add((Term[])multiTerms.toArray(new Term[0])); - return mpq; - } - } - else { - PhraseQuery q = new PhraseQuery(); - q.setSlop(phraseSlop); - for (int i = 0; i < v.size(); i++) { - q.add(new Term(field, ((org.apache.lucene.analysis.Token) - v.elementAt(i)).termText())); - - } - return q; - } - } - } - - - /** - * Base implementation delegates to {@link #getFieldQuery(String,String)}. - * This method may be overridden, for example, to return - * a SpanNearQuery instead of a PhraseQuery. - * - * @exception ParseException throw in overridden method to disallow - */ - protected Query getFieldQuery(String field, String queryText, int slop) - throws ParseException { - Query query = getFieldQuery(field, queryText); - - if (query instanceof PhraseQuery) { - ((PhraseQuery) query).setSlop(slop); - } - if (query instanceof MultiPhraseQuery) { - ((MultiPhraseQuery) query).setSlop(slop); - } - - return query; - } - - - /** - * @exception ParseException throw in overridden method to disallow - */ - protected Query getRangeQuery(String field, - String part1, - String part2, - boolean inclusive) throws ParseException - { - if (lowercaseExpandedTerms) { - part1 = part1.toLowerCase(); - part2 = part2.toLowerCase(); - } - try { - DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); - df.setLenient(true); - Date d1 = df.parse(part1); - Date d2 = df.parse(part2); - if (inclusive) { - // The user can only specify the date, not the time, so make sure - // the time is set to the latest possible time of that date to really - // include all documents: - Calendar cal = Calendar.getInstance(locale); - cal.setTime(d2); - cal.set(Calendar.HOUR_OF_DAY, 23); - cal.set(Calendar.MINUTE, 59); - cal.set(Calendar.SECOND, 59); - cal.set(Calendar.MILLISECOND, 999); - d2 = cal.getTime(); - } - part1 = DateField.dateToString(d1); - part2 = DateField.dateToString(d2); - } - catch (Exception e) { } - - return new RangeQuery(new Term(field, part1), - new Term(field, part2), - inclusive); - } - - /** - * Factory method for generating query, given a set of clauses. - * By default creates a boolean query composed of clauses passed in. - * - * Can be overridden by extending classes, to modify query being - * returned. - * - * @param clauses Vector that contains {@link BooleanClause} instances - * to join. - * - * @return Resulting {@link Query} object. - * @exception ParseException throw in overridden method to disallow - */ - protected Query getBooleanQuery(Vector clauses) throws ParseException { - return getBooleanQuery(clauses, false); - } - - /** - * Factory method for generating query, given a set of clauses. - * By default creates a boolean query composed of clauses passed in. - * - * Can be overridden by extending classes, to modify query being - * returned. - * - * @param clauses Vector that contains {@link BooleanClause} instances - * to join. - * @param disableCoord true if coord scoring should be disabled. - * - * @return Resulting {@link Query} object. - * @exception ParseException throw in overridden method to disallow - */ - protected Query getBooleanQuery(Vector clauses, boolean disableCoord) - throws ParseException - { - BooleanQuery query = new BooleanQuery(disableCoord); - for (int i = 0; i < clauses.size(); i++) { - query.add((BooleanClause)clauses.elementAt(i)); - } - return query; - } - - /** - * Factory method for generating a query. Called when parser - * parses an input term token that contains one or more wildcard - * characters (? and *), but is not a prefix term token (one - * that has just a single * character at the end) - *

- * Depending on settings, prefix term may be lower-cased - * automatically. It will not go through the default Analyzer, - * however, since normal Analyzers are unlikely to work properly - * with wildcard templates. - *

- * Can be overridden by extending classes, to provide custom handling for - * wildcard queries, which may be necessary due to missing analyzer calls. - * - * @param field Name of the field query will use. - * @param termStr Term token that contains one or more wild card - * characters (? or *), but is not simple prefix term - * - * @return Resulting {@link Query} built for the term - * @exception ParseException throw in overridden method to disallow - */ - protected Query getWildcardQuery(String field, String termStr) throws ParseException - { - if (lowercaseExpandedTerms) { - termStr = termStr.toLowerCase(); - } - Term t = new Term(field, termStr); - return new WildcardQuery(t); - } - - /** - * Factory method for generating a query (similar to - * {@link #getWildcardQuery}). Called when parser parses an input term - * token that uses prefix notation; that is, contains a single '*' wildcard - * character as its last character. Since this is a special case - * of generic wildcard term, and such a query can be optimized easily, - * this usually results in a different query object. - *

- * Depending on settings, a prefix term may be lower-cased - * automatically. It will not go through the default Analyzer, - * however, since normal Analyzers are unlikely to work properly - * with wildcard templates. - *

- * Can be overridden by extending classes, to provide custom handling for - * wild card queries, which may be necessary due to missing analyzer calls. - * - * @param field Name of the field query will use. - * @param termStr Term token to use for building term for the query - * (without trailing '*' character!) - * - * @return Resulting {@link Query} built for the term - * @exception ParseException throw in overridden method to disallow - */ - protected Query getPrefixQuery(String field, String termStr) throws ParseException - { - if (lowercaseExpandedTerms) { - termStr = termStr.toLowerCase(); - } - Term t = new Term(field, termStr); - return new PrefixQuery(t); - } - - - /** - * Factory method for generating a query (similar to - * {@link #getWildcardQuery}). Called when parser parses - * an input term token that has the fuzzy suffix (~) appended. - * - * @param field Name of the field query will use. - * @param termStr Term token to use for building term for the query - * - * @return Resulting {@link Query} built for the term - * @exception ParseException throw in overridden method to disallow - */ - protected Query getFuzzyQuery(String field, String termStr, float minSimilarity) throws ParseException - { - if (lowercaseExpandedTerms) { - termStr = termStr.toLowerCase(); - } - Term t = new Term(field, termStr); - return new FuzzyQuery(t, minSimilarity, fuzzyPrefixLength); - } - - /** - * Returns a String where the escape char has been - * removed, or kept only once if there was a double escape. - */ - private String discardEscapeChar(String input) { - char[] caSource = input.toCharArray(); - char[] caDest = new char[caSource.length]; - int j = 0; - for (int i = 0; i < caSource.length; i++) { - if ((caSource[i] != '\\') || (i > 0 && caSource[i-1] == '\\')) { - caDest[j++]=caSource[i]; - } - } - return new String(caDest, 0, j); - } - - /** - * Returns a String where those characters that QueryParser - * expects to be escaped are escaped by a preceding \. - */ - public static String escape(String s) { - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < s.length(); i++) { - char c = s.charAt(i); - // NOTE: keep this in sync with _ESCAPED_CHAR below! - if (c == '\\' || c == '+' || c == '-' || c == '!' || c == '(' || c == ')' || c == ':' - || c == '^' || c == '[' || c == ']' || c == '\"' || c == '{' || c == '}' || c == '~' - || c == '*' || c == '?') { - sb.append('\\'); - } - sb.append(c); - } - return sb.toString(); - } - - /** - * Command line tool to test QueryParser, using {@link org.apache.lucene.analysis.SimpleAnalyzer}. - * Usage:
- * java org.apache.lucene.queryParser.QueryParser <input> - */ - public static void main(String[] args) throws Exception { - if (args.length == 0) { - System.out.println("Usage: java org.apache.lucene.queryParser.QueryParser "); - System.exit(0); - } - QueryParser qp = new QueryParser("field", - new org.apache.lucene.analysis.SimpleAnalyzer()); - Query q = qp.parse(args[0]); - System.out.println(q.toString("field")); - } - -// * Query ::= ( Clause )* -// * Clause ::= ["+", "-"] [ ":"] ( | "(" Query ")" ) - final public int Conjunction() throws ParseException { - int ret = CONJ_NONE; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AND: - case OR: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AND: - jj_consume_token(AND); - ret = CONJ_AND; - break; - case OR: - jj_consume_token(OR); - ret = CONJ_OR; - break; - default: - jj_la1[0] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - default: - jj_la1[1] = jj_gen; - ; - } - {if (true) return ret;} - throw new Error("Missing return statement in function"); - } - - final public int Modifiers() throws ParseException { - int ret = MOD_NONE; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case NOT: - case PLUS: - case MINUS: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - jj_consume_token(PLUS); - ret = MOD_REQ; - break; - case MINUS: - jj_consume_token(MINUS); - ret = MOD_NOT; - break; - case NOT: - jj_consume_token(NOT); - ret = MOD_NOT; - break; - default: - jj_la1[2] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - default: - jj_la1[3] = jj_gen; - ; - } - {if (true) return ret;} - throw new Error("Missing return statement in function"); - } - - final public Query Query(String field) throws ParseException { - Vector clauses = new Vector(); - Query q, firstQuery=null; - int conj, mods; - mods = Modifiers(); - q = Clause(field); - addClause(clauses, CONJ_NONE, mods, q); - if (mods == MOD_NONE) - firstQuery=q; - label_1: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AND: - case OR: - case NOT: - case PLUS: - case MINUS: - case LPAREN: - case QUOTED: - case TERM: - case PREFIXTERM: - case WILDTERM: - case RANGEIN_START: - case RANGEEX_START: - case NUMBER: - ; - break; - default: - jj_la1[4] = jj_gen; - break label_1; - } - conj = Conjunction(); - mods = Modifiers(); - q = Clause(field); - addClause(clauses, conj, mods, q); - } - if (clauses.size() == 1 && firstQuery != null) - {if (true) return firstQuery;} - else { - {if (true) return getBooleanQuery(clauses);} - } - throw new Error("Missing return statement in function"); - } - - final public Query Clause(String field) throws ParseException { - Query q; - Token fieldToken=null, boost=null; - if (jj_2_1(2)) { - fieldToken = jj_consume_token(TERM); - jj_consume_token(COLON); - field=discardEscapeChar(fieldToken.image); - } else { - ; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case QUOTED: - case TERM: - case PREFIXTERM: - case WILDTERM: - case RANGEIN_START: - case RANGEEX_START: - case NUMBER: - q = Term(field); - break; - case LPAREN: - jj_consume_token(LPAREN); - q = Query(field); - jj_consume_token(RPAREN); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CARAT: - jj_consume_token(CARAT); - boost = jj_consume_token(NUMBER); - break; - default: - jj_la1[5] = jj_gen; - ; - } - break; - default: - jj_la1[6] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - if (boost != null) { - float f = (float)1.0; - try { - f = Float.valueOf(boost.image).floatValue(); - q.setBoost(f); - } catch (Exception ignored) { } - } - {if (true) return q;} - throw new Error("Missing return statement in function"); - } - - final public Query Term(String field) throws ParseException { - Token term, boost=null, fuzzySlop=null, goop1, goop2; - boolean prefix = false; - boolean wildcard = false; - boolean fuzzy = false; - boolean rangein = false; - Query q; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case TERM: - case PREFIXTERM: - case WILDTERM: - case NUMBER: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case TERM: - term = jj_consume_token(TERM); - break; - case PREFIXTERM: - term = jj_consume_token(PREFIXTERM); - prefix=true; - break; - case WILDTERM: - term = jj_consume_token(WILDTERM); - wildcard=true; - break; - case NUMBER: - term = jj_consume_token(NUMBER); - break; - default: - jj_la1[7] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FUZZY_SLOP: - fuzzySlop = jj_consume_token(FUZZY_SLOP); - fuzzy=true; - break; - default: - jj_la1[8] = jj_gen; - ; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CARAT: - jj_consume_token(CARAT); - boost = jj_consume_token(NUMBER); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FUZZY_SLOP: - fuzzySlop = jj_consume_token(FUZZY_SLOP); - fuzzy=true; - break; - default: - jj_la1[9] = jj_gen; - ; - } - break; - default: - jj_la1[10] = jj_gen; - ; - } - String termImage=discardEscapeChar(term.image); - if (wildcard) { - q = getWildcardQuery(field, termImage); - } else if (prefix) { - q = getPrefixQuery(field, - discardEscapeChar(term.image.substring - (0, term.image.length()-1))); - } else if (fuzzy) { - float fms = fuzzyMinSim; - try { - fms = Float.valueOf(fuzzySlop.image.substring(1)).floatValue(); - } catch (Exception ignored) { } - if(fms < 0.0f || fms > 1.0f){ - {if (true) throw new ParseException("Minimum similarity for a FuzzyQuery has to be between 0.0f and 1.0f !");} - } - q = getFuzzyQuery(field, termImage,fms); - } else { - q = getFieldQuery(field, termImage); - } - break; - case RANGEIN_START: - jj_consume_token(RANGEIN_START); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case RANGEIN_GOOP: - goop1 = jj_consume_token(RANGEIN_GOOP); - break; - case RANGEIN_QUOTED: - goop1 = jj_consume_token(RANGEIN_QUOTED); - break; - default: - jj_la1[11] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case RANGEIN_TO: - jj_consume_token(RANGEIN_TO); - break; - default: - jj_la1[12] = jj_gen; - ; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case RANGEIN_GOOP: - goop2 = jj_consume_token(RANGEIN_GOOP); - break; - case RANGEIN_QUOTED: - goop2 = jj_consume_token(RANGEIN_QUOTED); - break; - default: - jj_la1[13] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(RANGEIN_END); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CARAT: - jj_consume_token(CARAT); - boost = jj_consume_token(NUMBER); - break; - default: - jj_la1[14] = jj_gen; - ; - } - if (goop1.kind == RANGEIN_QUOTED) { - goop1.image = goop1.image.substring(1, goop1.image.length()-1); - } else { - goop1.image = discardEscapeChar(goop1.image); - } - if (goop2.kind == RANGEIN_QUOTED) { - goop2.image = goop2.image.substring(1, goop2.image.length()-1); - } else { - goop2.image = discardEscapeChar(goop2.image); - } - q = getRangeQuery(field, goop1.image, goop2.image, true); - break; - case RANGEEX_START: - jj_consume_token(RANGEEX_START); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case RANGEEX_GOOP: - goop1 = jj_consume_token(RANGEEX_GOOP); - break; - case RANGEEX_QUOTED: - goop1 = jj_consume_token(RANGEEX_QUOTED); - break; - default: - jj_la1[15] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case RANGEEX_TO: - jj_consume_token(RANGEEX_TO); - break; - default: - jj_la1[16] = jj_gen; - ; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case RANGEEX_GOOP: - goop2 = jj_consume_token(RANGEEX_GOOP); - break; - case RANGEEX_QUOTED: - goop2 = jj_consume_token(RANGEEX_QUOTED); - break; - default: - jj_la1[17] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(RANGEEX_END); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CARAT: - jj_consume_token(CARAT); - boost = jj_consume_token(NUMBER); - break; - default: - jj_la1[18] = jj_gen; - ; - } - if (goop1.kind == RANGEEX_QUOTED) { - goop1.image = goop1.image.substring(1, goop1.image.length()-1); - } else { - goop1.image = discardEscapeChar(goop1.image); - } - if (goop2.kind == RANGEEX_QUOTED) { - goop2.image = goop2.image.substring(1, goop2.image.length()-1); - } else { - goop2.image = discardEscapeChar(goop2.image); - } - - q = getRangeQuery(field, goop1.image, goop2.image, false); - break; - case QUOTED: - term = jj_consume_token(QUOTED); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FUZZY_SLOP: - fuzzySlop = jj_consume_token(FUZZY_SLOP); - break; - default: - jj_la1[19] = jj_gen; - ; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CARAT: - jj_consume_token(CARAT); - boost = jj_consume_token(NUMBER); - break; - default: - jj_la1[20] = jj_gen; - ; - } - int s = phraseSlop; - - if (fuzzySlop != null) { - try { - s = Float.valueOf(fuzzySlop.image.substring(1)).intValue(); - } - catch (Exception ignored) { } - } - q = getFieldQuery(field, term.image.substring(1, term.image.length()-1), s); - break; - default: - jj_la1[21] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - if (boost != null) { - float f = (float) 1.0; - try { - f = Float.valueOf(boost.image).floatValue(); - } - catch (Exception ignored) { - /* Should this be handled somehow? (defaults to "no boost", if - * boost number is invalid) - */ - } - - // avoid boosting null queries, such as those caused by stop words - if (q != null) { - q.setBoost(f); - } - } - {if (true) return q;} - throw new Error("Missing return statement in function"); - } - - final private boolean jj_2_1(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(0, xla); } - } - - final private boolean jj_3_1() { - if (jj_scan_token(TERM)) return true; - if (jj_scan_token(COLON)) return true; - return false; - } - - public QueryParserTokenManager token_source; - public Token token, jj_nt; - private int jj_ntk; - private Token jj_scanpos, jj_lastpos; - private int jj_la; - public boolean lookingAhead = false; - private boolean jj_semLA; - private int jj_gen; - final private int[] jj_la1 = new int[22]; - static private int[] jj_la1_0; - static { - jj_la1_0(); - } - private static void jj_la1_0() { - jj_la1_0 = new int[] {0x180,0x180,0xe00,0xe00,0xfb1f80,0x8000,0xfb1000,0x9a0000,0x40000,0x40000,0x8000,0xc000000,0x1000000,0xc000000,0x8000,0xc0000000,0x10000000,0xc0000000,0x8000,0x40000,0x8000,0xfb0000,}; - } - final private JJCalls[] jj_2_rtns = new JJCalls[1]; - private boolean jj_rescan = false; - private int jj_gc = 0; - - public QueryParser(CharStream stream) { - token_source = new QueryParserTokenManager(stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 22; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - public void ReInit(CharStream stream) { - token_source.ReInit(stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 22; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - public QueryParser(QueryParserTokenManager tm) { - token_source = tm; - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 22; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - public void ReInit(QueryParserTokenManager tm) { - token_source = tm; - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 22; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - final private Token jj_consume_token(int kind) throws ParseException { - Token oldToken; - if ((oldToken = token).next != null) token = token.next; - else token = token.next = token_source.getNextToken(); - jj_ntk = -1; - if (token.kind == kind) { - jj_gen++; - if (++jj_gc > 100) { - jj_gc = 0; - for (int i = 0; i < jj_2_rtns.length; i++) { - JJCalls c = jj_2_rtns[i]; - while (c != null) { - if (c.gen < jj_gen) c.first = null; - c = c.next; - } - } - } - return token; - } - token = oldToken; - jj_kind = kind; - throw generateParseException(); - } - - static private final class LookaheadSuccess extends java.lang.Error { } - final private LookaheadSuccess jj_ls = new LookaheadSuccess(); - final private boolean jj_scan_token(int kind) { - if (jj_scanpos == jj_lastpos) { - jj_la--; - if (jj_scanpos.next == null) { - jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); - } else { - jj_lastpos = jj_scanpos = jj_scanpos.next; - } - } else { - jj_scanpos = jj_scanpos.next; - } - if (jj_rescan) { - int i = 0; Token tok = token; - while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } - if (tok != null) jj_add_error_token(kind, i); - } - if (jj_scanpos.kind != kind) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; - return false; - } - - final public Token getNextToken() { - if (token.next != null) token = token.next; - else token = token.next = token_source.getNextToken(); - jj_ntk = -1; - jj_gen++; - return token; - } - - final public Token getToken(int index) { - Token t = lookingAhead ? jj_scanpos : token; - for (int i = 0; i < index; i++) { - if (t.next != null) t = t.next; - else t = t.next = token_source.getNextToken(); - } - return t; - } - - final private int jj_ntk() { - if ((jj_nt=token.next) == null) - return (jj_ntk = (token.next=token_source.getNextToken()).kind); - else - return (jj_ntk = jj_nt.kind); - } - - private java.util.Vector jj_expentries = new java.util.Vector(); - private int[] jj_expentry; - private int jj_kind = -1; - private int[] jj_lasttokens = new int[100]; - private int jj_endpos; - - private void jj_add_error_token(int kind, int pos) { - if (pos >= 100) return; - if (pos == jj_endpos + 1) { - jj_lasttokens[jj_endpos++] = kind; - } else if (jj_endpos != 0) { - jj_expentry = new int[jj_endpos]; - for (int i = 0; i < jj_endpos; i++) { - jj_expentry[i] = jj_lasttokens[i]; - } - boolean exists = false; - for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) { - int[] oldentry = (int[])(e.nextElement()); - if (oldentry.length == jj_expentry.length) { - exists = true; - for (int i = 0; i < jj_expentry.length; i++) { - if (oldentry[i] != jj_expentry[i]) { - exists = false; - break; - } - } - if (exists) break; - } - } - if (!exists) jj_expentries.addElement(jj_expentry); - if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; - } - } - - public ParseException generateParseException() { - jj_expentries.removeAllElements(); - boolean[] la1tokens = new boolean[32]; - for (int i = 0; i < 32; i++) { - la1tokens[i] = false; - } - if (jj_kind >= 0) { - la1tokens[jj_kind] = true; - jj_kind = -1; - } - for (int i = 0; i < 22; i++) { - if (jj_la1[i] == jj_gen) { - for (int j = 0; j < 32; j++) { - if ((jj_la1_0[i] & (1< jj_gen) { - jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; - switch (i) { - case 0: jj_3_1(); break; - } - } - p = p.next; - } while (p != null); - } catch(LookaheadSuccess ls) { } - } - jj_rescan = false; - } - - final private void jj_save(int index, int xla) { - JJCalls p = jj_2_rtns[index]; - while (p.gen > jj_gen) { - if (p.next == null) { p = p.next = new JJCalls(); break; } - p = p.next; - } - p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; - } - - static final class JJCalls { - int gen; - Token first; - int arg; - JJCalls next; - } - -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/QueryParser.jj b/source/java/org/alfresco/repo/search/impl/lucene/QueryParser.jj deleted file mode 100644 index 6098160919..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/QueryParser.jj +++ /dev/null @@ -1,899 +0,0 @@ -/** - * Copyright 2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -options { - STATIC=false; - JAVA_UNICODE_ESCAPE=true; - USER_CHAR_STREAM=true; -} - -PARSER_BEGIN(QueryParser) - -package org.alfresco.repo.search.impl.lucene; - -import java.util.Vector; -import java.io.*; -import java.text.*; -import java.util.*; -import org.apache.lucene.index.Term; -import org.apache.lucene.analysis.*; -import org.apache.lucene.document.*; -import org.apache.lucene.search.*; -import org.apache.lucene.util.Parameter; - -/** - * This class is generated by JavaCC. The most important method is - * {@link #parse(String)}. - * - * The syntax for query strings is as follows: - * A Query is a series of clauses. - * A clause may be prefixed by: - *

- * - * A clause may be either: - * - * - * Thus, in BNF, the query grammar is: - *
- *   Query  ::= ( Clause )*
- *   Clause ::= ["+", "-"] [<TERM> ":"] ( <TERM> | "(" Query ")" )
- * 
- * - *

- * Examples of appropriately formatted queries can be found in the query syntax - * documentation. - *

- * - *

In {@link RangeQuery}s, QueryParser tries to detect date values, e.g. date:[6/1/2005 TO 6/4/2005] - * produces a range query that searches for "date" fields between 2005-06-01 and 2005-06-04. Note - * that the format of the accpeted input depends on {@link #setLocale(Locale) the locale}. This - * feature also assumes that your index uses the {@link DateField} class to store dates. - * If you use a different format (e.g. {@link DateTools}) and you still want QueryParser - * to turn local dates in range queries into valid queries you need to create your own - * query parser that inherits QueryParser and overwrites - * {@link #getRangeQuery(String, String, String, boolean)}.

- * - *

Note that QueryParser is not thread-safe.

- * - * @author Brian Goetz - * @author Peter Halacsy - * @author Tatu Saloranta - */ - -public class QueryParser { - - private static final int CONJ_NONE = 0; - private static final int CONJ_AND = 1; - private static final int CONJ_OR = 2; - - private static final int MOD_NONE = 0; - private static final int MOD_NOT = 10; - private static final int MOD_REQ = 11; - - // make it possible to call setDefaultOperator() without accessing - // the nested class: - /** Alternative form of QueryParser.Operator.AND */ - public static final Operator AND_OPERATOR = Operator.AND; - /** Alternative form of QueryParser.Operator.OR */ - public static final Operator OR_OPERATOR = Operator.OR; - - /** The actual operator that parser uses to combine query terms */ - private Operator operator = OR_OPERATOR; - - boolean lowercaseExpandedTerms = true; - - Analyzer analyzer; - String field; - int phraseSlop = 0; - float fuzzyMinSim = FuzzyQuery.defaultMinSimilarity; - int fuzzyPrefixLength = FuzzyQuery.defaultPrefixLength; - Locale locale = Locale.getDefault(); - - /** The default operator for parsing queries. - * Use {@link QueryParser#setDefaultOperator} to change it. - */ - static public final class Operator extends Parameter { - private Operator(String name) { - super(name); - } - static public final Operator OR = new Operator("OR"); - static public final Operator AND = new Operator("AND"); - } - - - /** Constructs a query parser. - * @param f the default field for query terms. - * @param a used to find terms in the query text. - */ - public QueryParser(String f, Analyzer a) { - this(new FastCharStream(new StringReader(""))); - analyzer = a; - field = f; - } - - /** Parses a query string, returning a {@link org.apache.lucene.search.Query}. - * @param query the query string to be parsed. - * @throws ParseException if the parsing fails - */ - public Query parse(String query) throws ParseException { - ReInit(new FastCharStream(new StringReader(query))); - try { - return Query(field); - } - catch (TokenMgrError tme) { - throw new ParseException(tme.getMessage()); - } - catch (BooleanQuery.TooManyClauses tmc) { - throw new ParseException("Too many boolean clauses"); - } - } - - /** - * @return Returns the analyzer. - */ - public Analyzer getAnalyzer() { - return analyzer; - } - - /** - * @return Returns the field. - */ - public String getField() { - return field; - } - - /** - * Get the minimal similarity for fuzzy queries. - */ - public float getFuzzyMinSim() { - return fuzzyMinSim; - } - - /** - * Set the minimum similarity for fuzzy queries. - * Default is 0.5f. - */ - public void setFuzzyMinSim(float fuzzyMinSim) { - this.fuzzyMinSim = fuzzyMinSim; - } - - /** - * Get the prefix length for fuzzy queries. - * @return Returns the fuzzyPrefixLength. - */ - public int getFuzzyPrefixLength() { - return fuzzyPrefixLength; - } - - /** - * Set the prefix length for fuzzy queries. Default is 0. - * @param fuzzyPrefixLength The fuzzyPrefixLength to set. - */ - public void setFuzzyPrefixLength(int fuzzyPrefixLength) { - this.fuzzyPrefixLength = fuzzyPrefixLength; - } - - /** - * Sets the default slop for phrases. If zero, then exact phrase matches - * are required. Default value is zero. - */ - public void setPhraseSlop(int phraseSlop) { - this.phraseSlop = phraseSlop; - } - - /** - * Gets the default slop for phrases. - */ - public int getPhraseSlop() { - return phraseSlop; - } - - - /** - * Sets the boolean operator of the QueryParser. - * In default mode (OR_OPERATOR) terms without any modifiers - * are considered optional: for example capital of Hungary is equal to - * capital OR of OR Hungary.
- * In AND_OPERATOR mode terms are considered to be in conjuction: the - * above mentioned query is parsed as capital AND of AND Hungary - */ - public void setDefaultOperator(Operator op) { - this.operator = op; - } - - - /** - * Gets implicit operator setting, which will be either AND_OPERATOR - * or OR_OPERATOR. - */ - public Operator getDefaultOperator() { - return operator; - } - - - /** - * Whether terms of wildcard, prefix, fuzzy and range queries are to be automatically - * lower-cased or not. Default is true. - */ - public void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms) { - this.lowercaseExpandedTerms = lowercaseExpandedTerms; - } - - - /** - * @see #setLowercaseExpandedTerms(boolean) - */ - public boolean getLowercaseExpandedTerms() { - return lowercaseExpandedTerms; - } - - /** - * Set locale used by date range parsing. - */ - public void setLocale(Locale locale) { - this.locale = locale; - } - - /** - * Returns current locale, allowing access by subclasses. - */ - public Locale getLocale() { - return locale; - } - - protected void addClause(Vector clauses, int conj, int mods, Query q) { - boolean required, prohibited; - - // If this term is introduced by AND, make the preceding term required, - // unless it's already prohibited - if (clauses.size() > 0 && conj == CONJ_AND) { - BooleanClause c = (BooleanClause) clauses.elementAt(clauses.size()-1); - if (!c.isProhibited()) - c.setOccur(BooleanClause.Occur.MUST); - } - - if (clauses.size() > 0 && operator == AND_OPERATOR && conj == CONJ_OR) { - // If this term is introduced by OR, make the preceding term optional, - // unless it's prohibited (that means we leave -a OR b but +a OR b-->a OR b) - // notice if the input is a OR b, first term is parsed as required; without - // this modification a OR b would parsed as +a OR b - BooleanClause c = (BooleanClause) clauses.elementAt(clauses.size()-1); - if (!c.isProhibited()) - c.setOccur(BooleanClause.Occur.SHOULD); - } - - // We might have been passed a null query; the term might have been - // filtered away by the analyzer. - if (q == null) - return; - - if (operator == OR_OPERATOR) { - // We set REQUIRED if we're introduced by AND or +; PROHIBITED if - // introduced by NOT or -; make sure not to set both. - prohibited = (mods == MOD_NOT); - required = (mods == MOD_REQ); - if (conj == CONJ_AND && !prohibited) { - required = true; - } - } else { - // We set PROHIBITED if we're introduced by NOT or -; We set REQUIRED - // if not PROHIBITED and not introduced by OR - prohibited = (mods == MOD_NOT); - required = (!prohibited && conj != CONJ_OR); - } - if (required && !prohibited) - clauses.addElement(new BooleanClause(q, BooleanClause.Occur.MUST)); - else if (!required && !prohibited) - clauses.addElement(new BooleanClause(q, BooleanClause.Occur.SHOULD)); - else if (!required && prohibited) - clauses.addElement(new BooleanClause(q, BooleanClause.Occur.MUST_NOT)); - else - throw new RuntimeException("Clause cannot be both required and prohibited"); - } - - - /** - * @exception ParseException throw in overridden method to disallow - */ - protected Query getFieldQuery(String field, String queryText) throws ParseException { - // Use the analyzer to get all the tokens, and then build a TermQuery, - // PhraseQuery, or nothing based on the term count - - TokenStream source = analyzer.tokenStream(field, new StringReader(queryText)); - Vector v = new Vector(); - org.apache.lucene.analysis.Token t; - int positionCount = 0; - boolean severalTokensAtSamePosition = false; - - while (true) { - try { - t = source.next(); - } - catch (IOException e) { - t = null; - } - if (t == null) - break; - v.addElement(t); - if (t.getPositionIncrement() != 0) - positionCount += t.getPositionIncrement(); - else - severalTokensAtSamePosition = true; - } - try { - source.close(); - } - catch (IOException e) { - // ignore - } - - if (v.size() == 0) - return null; - else if (v.size() == 1) { - t = (org.apache.lucene.analysis.Token) v.elementAt(0); - return new TermQuery(new Term(field, t.termText())); - } else { - if (severalTokensAtSamePosition) { - if (positionCount == 1) { - // no phrase query: - BooleanQuery q = new BooleanQuery(true); - for (int i = 0; i < v.size(); i++) { - t = (org.apache.lucene.analysis.Token) v.elementAt(i); - TermQuery currentQuery = new TermQuery( - new Term(field, t.termText())); - q.add(currentQuery, BooleanClause.Occur.SHOULD); - } - return q; - } - else { - // phrase query: - MultiPhraseQuery mpq = new MultiPhraseQuery(); - mpq.setSlop(phraseSlop); - List multiTerms = new ArrayList(); - for (int i = 0; i < v.size(); i++) { - t = (org.apache.lucene.analysis.Token) v.elementAt(i); - if (t.getPositionIncrement() == 1 && multiTerms.size() > 0) { - mpq.add((Term[])multiTerms.toArray(new Term[0])); - multiTerms.clear(); - } - multiTerms.add(new Term(field, t.termText())); - } - mpq.add((Term[])multiTerms.toArray(new Term[0])); - return mpq; - } - } - else { - PhraseQuery q = new PhraseQuery(); - q.setSlop(phraseSlop); - for (int i = 0; i < v.size(); i++) { - q.add(new Term(field, ((org.apache.lucene.analysis.Token) - v.elementAt(i)).termText())); - - } - return q; - } - } - } - - - /** - * Base implementation delegates to {@link #getFieldQuery(String,String)}. - * This method may be overridden, for example, to return - * a SpanNearQuery instead of a PhraseQuery. - * - * @exception ParseException throw in overridden method to disallow - */ - protected Query getFieldQuery(String field, String queryText, int slop) - throws ParseException { - Query query = getFieldQuery(field, queryText); - - if (query instanceof PhraseQuery) { - ((PhraseQuery) query).setSlop(slop); - } - if (query instanceof MultiPhraseQuery) { - ((MultiPhraseQuery) query).setSlop(slop); - } - - return query; - } - - - /** - * @exception ParseException throw in overridden method to disallow - */ - protected Query getRangeQuery(String field, - String part1, - String part2, - boolean inclusive) throws ParseException - { - if (lowercaseExpandedTerms) { - part1 = part1.toLowerCase(); - part2 = part2.toLowerCase(); - } - try { - DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); - df.setLenient(true); - Date d1 = df.parse(part1); - Date d2 = df.parse(part2); - if (inclusive) { - // The user can only specify the date, not the time, so make sure - // the time is set to the latest possible time of that date to really - // include all documents: - Calendar cal = Calendar.getInstance(locale); - cal.setTime(d2); - cal.set(Calendar.HOUR_OF_DAY, 23); - cal.set(Calendar.MINUTE, 59); - cal.set(Calendar.SECOND, 59); - cal.set(Calendar.MILLISECOND, 999); - d2 = cal.getTime(); - } - part1 = DateField.dateToString(d1); - part2 = DateField.dateToString(d2); - } - catch (Exception e) { } - - return new RangeQuery(new Term(field, part1), - new Term(field, part2), - inclusive); - } - - /** - * Factory method for generating query, given a set of clauses. - * By default creates a boolean query composed of clauses passed in. - * - * Can be overridden by extending classes, to modify query being - * returned. - * - * @param clauses Vector that contains {@link BooleanClause} instances - * to join. - * - * @return Resulting {@link Query} object. - * @exception ParseException throw in overridden method to disallow - */ - protected Query getBooleanQuery(Vector clauses) throws ParseException { - return getBooleanQuery(clauses, false); - } - - /** - * Factory method for generating query, given a set of clauses. - * By default creates a boolean query composed of clauses passed in. - * - * Can be overridden by extending classes, to modify query being - * returned. - * - * @param clauses Vector that contains {@link BooleanClause} instances - * to join. - * @param disableCoord true if coord scoring should be disabled. - * - * @return Resulting {@link Query} object. - * @exception ParseException throw in overridden method to disallow - */ - protected Query getBooleanQuery(Vector clauses, boolean disableCoord) - throws ParseException - { - BooleanQuery query = new BooleanQuery(disableCoord); - for (int i = 0; i < clauses.size(); i++) { - query.add((BooleanClause)clauses.elementAt(i)); - } - return query; - } - - /** - * Factory method for generating a query. Called when parser - * parses an input term token that contains one or more wildcard - * characters (? and *), but is not a prefix term token (one - * that has just a single * character at the end) - *

- * Depending on settings, prefix term may be lower-cased - * automatically. It will not go through the default Analyzer, - * however, since normal Analyzers are unlikely to work properly - * with wildcard templates. - *

- * Can be overridden by extending classes, to provide custom handling for - * wildcard queries, which may be necessary due to missing analyzer calls. - * - * @param field Name of the field query will use. - * @param termStr Term token that contains one or more wild card - * characters (? or *), but is not simple prefix term - * - * @return Resulting {@link Query} built for the term - * @exception ParseException throw in overridden method to disallow - */ - protected Query getWildcardQuery(String field, String termStr) throws ParseException - { - if (lowercaseExpandedTerms) { - termStr = termStr.toLowerCase(); - } - Term t = new Term(field, termStr); - return new WildcardQuery(t); - } - - /** - * Factory method for generating a query (similar to - * {@link #getWildcardQuery}). Called when parser parses an input term - * token that uses prefix notation; that is, contains a single '*' wildcard - * character as its last character. Since this is a special case - * of generic wildcard term, and such a query can be optimized easily, - * this usually results in a different query object. - *

- * Depending on settings, a prefix term may be lower-cased - * automatically. It will not go through the default Analyzer, - * however, since normal Analyzers are unlikely to work properly - * with wildcard templates. - *

- * Can be overridden by extending classes, to provide custom handling for - * wild card queries, which may be necessary due to missing analyzer calls. - * - * @param field Name of the field query will use. - * @param termStr Term token to use for building term for the query - * (without trailing '*' character!) - * - * @return Resulting {@link Query} built for the term - * @exception ParseException throw in overridden method to disallow - */ - protected Query getPrefixQuery(String field, String termStr) throws ParseException - { - if (lowercaseExpandedTerms) { - termStr = termStr.toLowerCase(); - } - Term t = new Term(field, termStr); - return new PrefixQuery(t); - } - - - /** - * Factory method for generating a query (similar to - * {@link #getWildcardQuery}). Called when parser parses - * an input term token that has the fuzzy suffix (~) appended. - * - * @param field Name of the field query will use. - * @param termStr Term token to use for building term for the query - * - * @return Resulting {@link Query} built for the term - * @exception ParseException throw in overridden method to disallow - */ - protected Query getFuzzyQuery(String field, String termStr, float minSimilarity) throws ParseException - { - if (lowercaseExpandedTerms) { - termStr = termStr.toLowerCase(); - } - Term t = new Term(field, termStr); - return new FuzzyQuery(t, minSimilarity, fuzzyPrefixLength); - } - - /** - * Returns a String where the escape char has been - * removed, or kept only once if there was a double escape. - */ - private String discardEscapeChar(String input) { - char[] caSource = input.toCharArray(); - char[] caDest = new char[caSource.length]; - int j = 0; - for (int i = 0; i < caSource.length; i++) { - if ((caSource[i] != '\\') || (i > 0 && caSource[i-1] == '\\')) { - caDest[j++]=caSource[i]; - } - } - return new String(caDest, 0, j); - } - - /** - * Returns a String where those characters that QueryParser - * expects to be escaped are escaped by a preceding \. - */ - public static String escape(String s) { - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < s.length(); i++) { - char c = s.charAt(i); - // NOTE: keep this in sync with _ESCAPED_CHAR below! - if (c == '\\' || c == '+' || c == '-' || c == '!' || c == '(' || c == ')' || c == ':' - || c == '^' || c == '[' || c == ']' || c == '\"' || c == '{' || c == '}' || c == '~' - || c == '*' || c == '?') { - sb.append('\\'); - } - sb.append(c); - } - return sb.toString(); - } - - /** - * Command line tool to test QueryParser, using {@link org.apache.lucene.analysis.SimpleAnalyzer}. - * Usage:
- * java org.apache.lucene.queryParser.QueryParser <input> - */ - public static void main(String[] args) throws Exception { - if (args.length == 0) { - System.out.println("Usage: java org.apache.lucene.queryParser.QueryParser "); - System.exit(0); - } - QueryParser qp = new QueryParser("field", - new org.apache.lucene.analysis.SimpleAnalyzer()); - Query q = qp.parse(args[0]); - System.out.println(q.toString("field")); - } -} - -PARSER_END(QueryParser) - -/* ***************** */ -/* Token Definitions */ -/* ***************** */ - -<*> TOKEN : { - <#_NUM_CHAR: ["0"-"9"] > -// NOTE: keep this in sync with escape(String) above! -| <#_ESCAPED_CHAR: "\\" [ "\\", "+", "-", "!", "(", ")", ":", "^", - "[", "]", "\"", "{", "}", "~", "*", "?" ] > -| <#_TERM_START_CHAR: ( ~[ " ", "\t", "\n", "\r", "+", "-", "!", "(", ")", ":", "^", - "[", "]", "\"", "{", "}", "~", "*", "?" ] - | <_ESCAPED_CHAR> ) > -| <#_TERM_CHAR: ( <_TERM_START_CHAR> | <_ESCAPED_CHAR> | "-" | "+" ) > -| <#_WHITESPACE: ( " " | "\t" | "\n" | "\r") > -} - - SKIP : { - < <_WHITESPACE>> -} - -// OG: to support prefix queries: -// http://issues.apache.org/bugzilla/show_bug.cgi?id=12137 -// Change from: -// -// | -// (<_TERM_CHAR> | ( [ "*", "?" ] ))* > -// To: -// -// (<_TERM_START_CHAR> | [ "*", "?" ]) (<_TERM_CHAR> | ( [ "*", "?" ] ))* > - - TOKEN : { - -| -| -| -| -| -| -| -| : Boost -| -| (<_TERM_CHAR>)* > -| )+ ( "." (<_NUM_CHAR>)+ )? )? > -| (<_TERM_CHAR>)* "*" > -| | [ "*", "?" ]) (<_TERM_CHAR> | ( [ "*", "?" ] ))* > -| : RangeIn -| : RangeEx -} - - TOKEN : { -)+ ( "." (<_NUM_CHAR>)+ )? > : DEFAULT -} - - TOKEN : { - -| : DEFAULT -| -| -} - - TOKEN : { - -| : DEFAULT -| -| -} - -// * Query ::= ( Clause )* -// * Clause ::= ["+", "-"] [ ":"] ( | "(" Query ")" ) - -int Conjunction() : { - int ret = CONJ_NONE; -} -{ - [ - { ret = CONJ_AND; } - | { ret = CONJ_OR; } - ] - { return ret; } -} - -int Modifiers() : { - int ret = MOD_NONE; -} -{ - [ - { ret = MOD_REQ; } - | { ret = MOD_NOT; } - | { ret = MOD_NOT; } - ] - { return ret; } -} - -Query Query(String field) : -{ - Vector clauses = new Vector(); - Query q, firstQuery=null; - int conj, mods; -} -{ - mods=Modifiers() q=Clause(field) - { - addClause(clauses, CONJ_NONE, mods, q); - if (mods == MOD_NONE) - firstQuery=q; - } - ( - conj=Conjunction() mods=Modifiers() q=Clause(field) - { addClause(clauses, conj, mods, q); } - )* - { - if (clauses.size() == 1 && firstQuery != null) - return firstQuery; - else { - return getBooleanQuery(clauses); - } - } -} - -Query Clause(String field) : { - Query q; - Token fieldToken=null, boost=null; -} -{ - [ - LOOKAHEAD(2) - fieldToken= { - field=discardEscapeChar(fieldToken.image); - } - ] - - ( - q=Term(field) - | q=Query(field) ( boost=)? - - ) - { - if (boost != null) { - float f = (float)1.0; - try { - f = Float.valueOf(boost.image).floatValue(); - q.setBoost(f); - } catch (Exception ignored) { } - } - return q; - } -} - - -Query Term(String field) : { - Token term, boost=null, fuzzySlop=null, goop1, goop2; - boolean prefix = false; - boolean wildcard = false; - boolean fuzzy = false; - boolean rangein = false; - Query q; -} -{ - ( - ( - term= - | term= { prefix=true; } - | term= { wildcard=true; } - | term= - ) - [ fuzzySlop= { fuzzy=true; } ] - [ boost= [ fuzzySlop= { fuzzy=true; } ] ] - { - String termImage=discardEscapeChar(term.image); - if (wildcard) { - q = getWildcardQuery(field, termImage); - } else if (prefix) { - q = getPrefixQuery(field, - discardEscapeChar(term.image.substring - (0, term.image.length()-1))); - } else if (fuzzy) { - float fms = fuzzyMinSim; - try { - fms = Float.valueOf(fuzzySlop.image.substring(1)).floatValue(); - } catch (Exception ignored) { } - if(fms < 0.0f || fms > 1.0f){ - throw new ParseException("Minimum similarity for a FuzzyQuery has to be between 0.0f and 1.0f !"); - } - q = getFuzzyQuery(field, termImage,fms); - } else { - q = getFieldQuery(field, termImage); - } - } - | ( ( goop1=|goop1= ) - [ ] ( goop2=|goop2= ) - ) - [ boost= ] - { - if (goop1.kind == RANGEIN_QUOTED) { - goop1.image = goop1.image.substring(1, goop1.image.length()-1); - } else { - goop1.image = discardEscapeChar(goop1.image); - } - if (goop2.kind == RANGEIN_QUOTED) { - goop2.image = goop2.image.substring(1, goop2.image.length()-1); - } else { - goop2.image = discardEscapeChar(goop2.image); - } - q = getRangeQuery(field, goop1.image, goop2.image, true); - } - | ( ( goop1=|goop1= ) - [ ] ( goop2=|goop2= ) - ) - [ boost= ] - { - if (goop1.kind == RANGEEX_QUOTED) { - goop1.image = goop1.image.substring(1, goop1.image.length()-1); - } else { - goop1.image = discardEscapeChar(goop1.image); - } - if (goop2.kind == RANGEEX_QUOTED) { - goop2.image = goop2.image.substring(1, goop2.image.length()-1); - } else { - goop2.image = discardEscapeChar(goop2.image); - } - - q = getRangeQuery(field, goop1.image, goop2.image, false); - } - | term= - [ fuzzySlop= ] - [ boost= ] - { - int s = phraseSlop; - - if (fuzzySlop != null) { - try { - s = Float.valueOf(fuzzySlop.image.substring(1)).intValue(); - } - catch (Exception ignored) { } - } - q = getFieldQuery(field, term.image.substring(1, term.image.length()-1), s); - } - ) - { - if (boost != null) { - float f = (float) 1.0; - try { - f = Float.valueOf(boost.image).floatValue(); - } - catch (Exception ignored) { - /* Should this be handled somehow? (defaults to "no boost", if - * boost number is invalid) - */ - } - - // avoid boosting null queries, such as those caused by stop words - if (q != null) { - q.setBoost(f); - } - } - return q; - } -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/QueryParserConstants.java b/source/java/org/alfresco/repo/search/impl/lucene/QueryParserConstants.java deleted file mode 100644 index a60f36a9d6..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/QueryParserConstants.java +++ /dev/null @@ -1,78 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. QueryParserConstants.java */ -package org.alfresco.repo.search.impl.lucene; - -public interface QueryParserConstants { - - int EOF = 0; - int _NUM_CHAR = 1; - int _ESCAPED_CHAR = 2; - int _TERM_START_CHAR = 3; - int _TERM_CHAR = 4; - int _WHITESPACE = 5; - int AND = 7; - int OR = 8; - int NOT = 9; - int PLUS = 10; - int MINUS = 11; - int LPAREN = 12; - int RPAREN = 13; - int COLON = 14; - int CARAT = 15; - int QUOTED = 16; - int TERM = 17; - int FUZZY_SLOP = 18; - int PREFIXTERM = 19; - int WILDTERM = 20; - int RANGEIN_START = 21; - int RANGEEX_START = 22; - int NUMBER = 23; - int RANGEIN_TO = 24; - int RANGEIN_END = 25; - int RANGEIN_QUOTED = 26; - int RANGEIN_GOOP = 27; - int RANGEEX_TO = 28; - int RANGEEX_END = 29; - int RANGEEX_QUOTED = 30; - int RANGEEX_GOOP = 31; - - int Boost = 0; - int RangeEx = 1; - int RangeIn = 2; - int DEFAULT = 3; - - String[] tokenImage = { - "", - "<_NUM_CHAR>", - "<_ESCAPED_CHAR>", - "<_TERM_START_CHAR>", - "<_TERM_CHAR>", - "<_WHITESPACE>", - "", - "", - "", - "", - "\"+\"", - "\"-\"", - "\"(\"", - "\")\"", - "\":\"", - "\"^\"", - "", - "", - "", - "", - "", - "\"[\"", - "\"{\"", - "", - "\"TO\"", - "\"]\"", - "", - "", - "\"TO\"", - "\"}\"", - "", - "", - }; - -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/QueryParserTokenManager.java b/source/java/org/alfresco/repo/search/impl/lucene/QueryParserTokenManager.java deleted file mode 100644 index 6ded453f28..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/QueryParserTokenManager.java +++ /dev/null @@ -1,1079 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. QueryParserTokenManager.java */ -package org.alfresco.repo.search.impl.lucene; - -public class QueryParserTokenManager implements QueryParserConstants -{ - public java.io.PrintStream debugStream = System.out; - public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } -private final int jjStopStringLiteralDfa_3(int pos, long active0) -{ - switch (pos) - { - default : - return -1; - } -} -private final int jjStartNfa_3(int pos, long active0) -{ - return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1); -} -private final int jjStopAtPos(int pos, int kind) -{ - jjmatchedKind = kind; - jjmatchedPos = pos; - return pos + 1; -} -private final int jjStartNfaWithStates_3(int pos, int kind, int state) -{ - jjmatchedKind = kind; - jjmatchedPos = pos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return pos + 1; } - return jjMoveNfa_3(state, pos + 1); -} -private final int jjMoveStringLiteralDfa0_3() -{ - switch(curChar) - { - case 40: - return jjStopAtPos(0, 12); - case 41: - return jjStopAtPos(0, 13); - case 43: - return jjStopAtPos(0, 10); - case 45: - return jjStopAtPos(0, 11); - case 58: - return jjStopAtPos(0, 14); - case 91: - return jjStopAtPos(0, 21); - case 94: - return jjStopAtPos(0, 15); - case 123: - return jjStopAtPos(0, 22); - default : - return jjMoveNfa_3(0, 0); - } -} -private final void jjCheckNAdd(int state) -{ - if (jjrounds[state] != jjround) - { - jjstateSet[jjnewStateCnt++] = state; - jjrounds[state] = jjround; - } -} -private final void jjAddStates(int start, int end) -{ - do { - jjstateSet[jjnewStateCnt++] = jjnextStates[start]; - } while (start++ != end); -} -private final void jjCheckNAddTwoStates(int state1, int state2) -{ - jjCheckNAdd(state1); - jjCheckNAdd(state2); -} -private final void jjCheckNAddStates(int start, int end) -{ - do { - jjCheckNAdd(jjnextStates[start]); - } while (start++ != end); -} -private final void jjCheckNAddStates(int start) -{ - jjCheckNAdd(jjnextStates[start]); - jjCheckNAdd(jjnextStates[start + 1]); -} -static final long[] jjbitVec0 = { - 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL -}; -static final long[] jjbitVec2 = { - 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL -}; -private final int jjMoveNfa_3(int startState, int curPos) -{ - int[] nextStates; - int startsAt = 0; - jjnewStateCnt = 34; - int i = 1; - jjstateSet[0] = startState; - int j, kind = 0x7fffffff; - for (;;) - { - if (++jjround == 0x7fffffff) - ReInitRounds(); - if (curChar < 64) - { - long l = 1L << curChar; - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - if ((0xfbffd4f8ffffd9ffL & l) != 0L) - { - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - } - else if ((0x100002600L & l) != 0L) - { - if (kind > 6) - kind = 6; - } - else if (curChar == 34) - jjCheckNAdd(15); - else if (curChar == 33) - { - if (kind > 9) - kind = 9; - } - if ((0x7bffd0f8ffffd9ffL & l) != 0L) - { - if (kind > 17) - kind = 17; - jjCheckNAddStates(0, 4); - } - if (curChar == 38) - jjstateSet[jjnewStateCnt++] = 4; - break; - case 4: - if (curChar == 38 && kind > 7) - kind = 7; - break; - case 5: - if (curChar == 38) - jjstateSet[jjnewStateCnt++] = 4; - break; - case 13: - if (curChar == 33 && kind > 9) - kind = 9; - break; - case 14: - if (curChar == 34) - jjCheckNAdd(15); - break; - case 15: - if ((0xfffffffbffffffffL & l) != 0L) - jjCheckNAddTwoStates(15, 16); - break; - case 16: - if (curChar == 34 && kind > 16) - kind = 16; - break; - case 18: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 18) - kind = 18; - jjAddStates(5, 6); - break; - case 19: - if (curChar == 46) - jjCheckNAdd(20); - break; - case 20: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 18) - kind = 18; - jjCheckNAdd(20); - break; - case 21: - if ((0xfbffd4f8ffffd9ffL & l) == 0L) - break; - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - break; - case 22: - if ((0xfbfffcf8ffffd9ffL & l) == 0L) - break; - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - break; - case 24: - if ((0x84002f0600000000L & l) == 0L) - break; - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - break; - case 25: - if ((0x7bffd0f8ffffd9ffL & l) == 0L) - break; - if (kind > 17) - kind = 17; - jjCheckNAddStates(0, 4); - break; - case 26: - if ((0x7bfff8f8ffffd9ffL & l) == 0L) - break; - if (kind > 17) - kind = 17; - jjCheckNAddTwoStates(26, 27); - break; - case 28: - if ((0x84002f0600000000L & l) == 0L) - break; - if (kind > 17) - kind = 17; - jjCheckNAddTwoStates(26, 27); - break; - case 29: - if ((0x7bfff8f8ffffd9ffL & l) != 0L) - jjCheckNAddStates(7, 9); - break; - case 30: - if (curChar == 42 && kind > 19) - kind = 19; - break; - case 32: - if ((0x84002f0600000000L & l) != 0L) - jjCheckNAddStates(7, 9); - break; - default : break; - } - } while(i != startsAt); - } - else if (curChar < 128) - { - long l = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - if ((0x97ffffff97ffffffL & l) != 0L) - { - if (kind > 17) - kind = 17; - jjCheckNAddStates(0, 4); - } - else if (curChar == 126) - { - if (kind > 18) - kind = 18; - jjstateSet[jjnewStateCnt++] = 18; - } - if ((0x97ffffff97ffffffL & l) != 0L) - { - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - } - if (curChar == 92) - jjCheckNAddStates(10, 12); - else if (curChar == 78) - jjstateSet[jjnewStateCnt++] = 11; - else if (curChar == 124) - jjstateSet[jjnewStateCnt++] = 8; - else if (curChar == 79) - jjstateSet[jjnewStateCnt++] = 6; - else if (curChar == 65) - jjstateSet[jjnewStateCnt++] = 2; - break; - case 1: - if (curChar == 68 && kind > 7) - kind = 7; - break; - case 2: - if (curChar == 78) - jjstateSet[jjnewStateCnt++] = 1; - break; - case 3: - if (curChar == 65) - jjstateSet[jjnewStateCnt++] = 2; - break; - case 6: - if (curChar == 82 && kind > 8) - kind = 8; - break; - case 7: - if (curChar == 79) - jjstateSet[jjnewStateCnt++] = 6; - break; - case 8: - if (curChar == 124 && kind > 8) - kind = 8; - break; - case 9: - if (curChar == 124) - jjstateSet[jjnewStateCnt++] = 8; - break; - case 10: - if (curChar == 84 && kind > 9) - kind = 9; - break; - case 11: - if (curChar == 79) - jjstateSet[jjnewStateCnt++] = 10; - break; - case 12: - if (curChar == 78) - jjstateSet[jjnewStateCnt++] = 11; - break; - case 15: - jjAddStates(13, 14); - break; - case 17: - if (curChar != 126) - break; - if (kind > 18) - kind = 18; - jjstateSet[jjnewStateCnt++] = 18; - break; - case 21: - case 22: - if ((0x97ffffff97ffffffL & l) == 0L) - break; - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - break; - case 23: - if (curChar == 92) - jjCheckNAddTwoStates(24, 24); - break; - case 24: - if ((0x6800000078000000L & l) == 0L) - break; - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - break; - case 25: - if ((0x97ffffff97ffffffL & l) == 0L) - break; - if (kind > 17) - kind = 17; - jjCheckNAddStates(0, 4); - break; - case 26: - if ((0x97ffffff97ffffffL & l) == 0L) - break; - if (kind > 17) - kind = 17; - jjCheckNAddTwoStates(26, 27); - break; - case 27: - if (curChar == 92) - jjCheckNAddTwoStates(28, 28); - break; - case 28: - if ((0x6800000078000000L & l) == 0L) - break; - if (kind > 17) - kind = 17; - jjCheckNAddTwoStates(26, 27); - break; - case 29: - if ((0x97ffffff97ffffffL & l) != 0L) - jjCheckNAddStates(7, 9); - break; - case 31: - if (curChar == 92) - jjCheckNAddTwoStates(32, 32); - break; - case 32: - if ((0x6800000078000000L & l) != 0L) - jjCheckNAddStates(7, 9); - break; - case 33: - if (curChar == 92) - jjCheckNAddStates(10, 12); - break; - default : break; - } - } while(i != startsAt); - } - else - { - int hiByte = (int)(curChar >> 8); - int i1 = hiByte >> 6; - long l1 = 1L << (hiByte & 077); - int i2 = (curChar & 0xff) >> 6; - long l2 = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - { - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - } - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - { - if (kind > 17) - kind = 17; - jjCheckNAddStates(0, 4); - } - break; - case 15: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(13, 14); - break; - case 21: - case 22: - if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) - break; - if (kind > 20) - kind = 20; - jjCheckNAddTwoStates(22, 23); - break; - case 25: - if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) - break; - if (kind > 17) - kind = 17; - jjCheckNAddStates(0, 4); - break; - case 26: - if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) - break; - if (kind > 17) - kind = 17; - jjCheckNAddTwoStates(26, 27); - break; - case 29: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(7, 9); - break; - default : break; - } - } while(i != startsAt); - } - if (kind != 0x7fffffff) - { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 34 - (jjnewStateCnt = startsAt))) - return curPos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return curPos; } - } -} -private final int jjStopStringLiteralDfa_1(int pos, long active0) -{ - switch (pos) - { - case 0: - if ((active0 & 0x10000000L) != 0L) - { - jjmatchedKind = 31; - return 4; - } - return -1; - default : - return -1; - } -} -private final int jjStartNfa_1(int pos, long active0) -{ - return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1); -} -private final int jjStartNfaWithStates_1(int pos, int kind, int state) -{ - jjmatchedKind = kind; - jjmatchedPos = pos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return pos + 1; } - return jjMoveNfa_1(state, pos + 1); -} -private final int jjMoveStringLiteralDfa0_1() -{ - switch(curChar) - { - case 84: - return jjMoveStringLiteralDfa1_1(0x10000000L); - case 125: - return jjStopAtPos(0, 29); - default : - return jjMoveNfa_1(0, 0); - } -} -private final int jjMoveStringLiteralDfa1_1(long active0) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_1(0, active0); - return 1; - } - switch(curChar) - { - case 79: - if ((active0 & 0x10000000L) != 0L) - return jjStartNfaWithStates_1(1, 28, 4); - break; - default : - break; - } - return jjStartNfa_1(0, active0); -} -private final int jjMoveNfa_1(int startState, int curPos) -{ - int[] nextStates; - int startsAt = 0; - jjnewStateCnt = 5; - int i = 1; - jjstateSet[0] = startState; - int j, kind = 0x7fffffff; - for (;;) - { - if (++jjround == 0x7fffffff) - ReInitRounds(); - if (curChar < 64) - { - long l = 1L << curChar; - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - if ((0xfffffffeffffffffL & l) != 0L) - { - if (kind > 31) - kind = 31; - jjCheckNAdd(4); - } - if ((0x100002600L & l) != 0L) - { - if (kind > 6) - kind = 6; - } - else if (curChar == 34) - jjCheckNAdd(2); - break; - case 1: - if (curChar == 34) - jjCheckNAdd(2); - break; - case 2: - if ((0xfffffffbffffffffL & l) != 0L) - jjCheckNAddTwoStates(2, 3); - break; - case 3: - if (curChar == 34 && kind > 30) - kind = 30; - break; - case 4: - if ((0xfffffffeffffffffL & l) == 0L) - break; - if (kind > 31) - kind = 31; - jjCheckNAdd(4); - break; - default : break; - } - } while(i != startsAt); - } - else if (curChar < 128) - { - long l = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - case 4: - if ((0xdfffffffffffffffL & l) == 0L) - break; - if (kind > 31) - kind = 31; - jjCheckNAdd(4); - break; - case 2: - jjAddStates(15, 16); - break; - default : break; - } - } while(i != startsAt); - } - else - { - int hiByte = (int)(curChar >> 8); - int i1 = hiByte >> 6; - long l1 = 1L << (hiByte & 077); - int i2 = (curChar & 0xff) >> 6; - long l2 = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - case 4: - if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) - break; - if (kind > 31) - kind = 31; - jjCheckNAdd(4); - break; - case 2: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(15, 16); - break; - default : break; - } - } while(i != startsAt); - } - if (kind != 0x7fffffff) - { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 5 - (jjnewStateCnt = startsAt))) - return curPos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return curPos; } - } -} -private final int jjMoveStringLiteralDfa0_0() -{ - return jjMoveNfa_0(0, 0); -} -private final int jjMoveNfa_0(int startState, int curPos) -{ - int[] nextStates; - int startsAt = 0; - jjnewStateCnt = 3; - int i = 1; - jjstateSet[0] = startState; - int j, kind = 0x7fffffff; - for (;;) - { - if (++jjround == 0x7fffffff) - ReInitRounds(); - if (curChar < 64) - { - long l = 1L << curChar; - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 23) - kind = 23; - jjAddStates(17, 18); - break; - case 1: - if (curChar == 46) - jjCheckNAdd(2); - break; - case 2: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 23) - kind = 23; - jjCheckNAdd(2); - break; - default : break; - } - } while(i != startsAt); - } - else if (curChar < 128) - { - long l = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - default : break; - } - } while(i != startsAt); - } - else - { - int hiByte = (int)(curChar >> 8); - int i1 = hiByte >> 6; - long l1 = 1L << (hiByte & 077); - int i2 = (curChar & 0xff) >> 6; - long l2 = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - default : break; - } - } while(i != startsAt); - } - if (kind != 0x7fffffff) - { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt))) - return curPos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return curPos; } - } -} -private final int jjStopStringLiteralDfa_2(int pos, long active0) -{ - switch (pos) - { - case 0: - if ((active0 & 0x1000000L) != 0L) - { - jjmatchedKind = 27; - return 4; - } - return -1; - default : - return -1; - } -} -private final int jjStartNfa_2(int pos, long active0) -{ - return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1); -} -private final int jjStartNfaWithStates_2(int pos, int kind, int state) -{ - jjmatchedKind = kind; - jjmatchedPos = pos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return pos + 1; } - return jjMoveNfa_2(state, pos + 1); -} -private final int jjMoveStringLiteralDfa0_2() -{ - switch(curChar) - { - case 84: - return jjMoveStringLiteralDfa1_2(0x1000000L); - case 93: - return jjStopAtPos(0, 25); - default : - return jjMoveNfa_2(0, 0); - } -} -private final int jjMoveStringLiteralDfa1_2(long active0) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_2(0, active0); - return 1; - } - switch(curChar) - { - case 79: - if ((active0 & 0x1000000L) != 0L) - return jjStartNfaWithStates_2(1, 24, 4); - break; - default : - break; - } - return jjStartNfa_2(0, active0); -} -private final int jjMoveNfa_2(int startState, int curPos) -{ - int[] nextStates; - int startsAt = 0; - jjnewStateCnt = 5; - int i = 1; - jjstateSet[0] = startState; - int j, kind = 0x7fffffff; - for (;;) - { - if (++jjround == 0x7fffffff) - ReInitRounds(); - if (curChar < 64) - { - long l = 1L << curChar; - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - if ((0xfffffffeffffffffL & l) != 0L) - { - if (kind > 27) - kind = 27; - jjCheckNAdd(4); - } - if ((0x100002600L & l) != 0L) - { - if (kind > 6) - kind = 6; - } - else if (curChar == 34) - jjCheckNAdd(2); - break; - case 1: - if (curChar == 34) - jjCheckNAdd(2); - break; - case 2: - if ((0xfffffffbffffffffL & l) != 0L) - jjCheckNAddTwoStates(2, 3); - break; - case 3: - if (curChar == 34 && kind > 26) - kind = 26; - break; - case 4: - if ((0xfffffffeffffffffL & l) == 0L) - break; - if (kind > 27) - kind = 27; - jjCheckNAdd(4); - break; - default : break; - } - } while(i != startsAt); - } - else if (curChar < 128) - { - long l = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - case 4: - if ((0xffffffffdfffffffL & l) == 0L) - break; - if (kind > 27) - kind = 27; - jjCheckNAdd(4); - break; - case 2: - jjAddStates(15, 16); - break; - default : break; - } - } while(i != startsAt); - } - else - { - int hiByte = (int)(curChar >> 8); - int i1 = hiByte >> 6; - long l1 = 1L << (hiByte & 077); - int i2 = (curChar & 0xff) >> 6; - long l2 = 1L << (curChar & 077); - MatchLoop: do - { - switch(jjstateSet[--i]) - { - case 0: - case 4: - if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) - break; - if (kind > 27) - kind = 27; - jjCheckNAdd(4); - break; - case 2: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(15, 16); - break; - default : break; - } - } while(i != startsAt); - } - if (kind != 0x7fffffff) - { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 5 - (jjnewStateCnt = startsAt))) - return curPos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return curPos; } - } -} -static final int[] jjnextStates = { - 26, 29, 30, 31, 27, 18, 19, 29, 30, 31, 28, 32, 24, 15, 16, 2, - 3, 0, 1, -}; -private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2) -{ - switch(hiByte) - { - case 0: - return ((jjbitVec2[i2] & l2) != 0L); - default : - if ((jjbitVec0[i1] & l1) != 0L) - return true; - return false; - } -} -public static final String[] jjstrLiteralImages = { -"", null, null, null, null, null, null, null, null, null, "\53", "\55", "\50", -"\51", "\72", "\136", null, null, null, null, null, "\133", "\173", null, "\124\117", -"\135", null, null, "\124\117", "\175", null, null, }; -public static final String[] lexStateNames = { - "Boost", - "RangeEx", - "RangeIn", - "DEFAULT", -}; -public static final int[] jjnewLexState = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 2, 1, 3, -1, - 3, -1, -1, -1, 3, -1, -1, -}; -static final long[] jjtoToken = { - 0xffffff81L, -}; -static final long[] jjtoSkip = { - 0x40L, -}; -protected CharStream input_stream; -private final int[] jjrounds = new int[34]; -private final int[] jjstateSet = new int[68]; -protected char curChar; -public QueryParserTokenManager(CharStream stream){ - input_stream = stream; -} -public QueryParserTokenManager(CharStream stream, int lexState){ - this(stream); - SwitchTo(lexState); -} -public void ReInit(CharStream stream) -{ - jjmatchedPos = jjnewStateCnt = 0; - curLexState = defaultLexState; - input_stream = stream; - ReInitRounds(); -} -private final void ReInitRounds() -{ - int i; - jjround = 0x80000001; - for (i = 34; i-- > 0;) - jjrounds[i] = 0x80000000; -} -public void ReInit(CharStream stream, int lexState) -{ - ReInit(stream); - SwitchTo(lexState); -} -public void SwitchTo(int lexState) -{ - if (lexState >= 4 || lexState < 0) - throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); - else - curLexState = lexState; -} - -protected Token jjFillToken() -{ - Token t = Token.newToken(jjmatchedKind); - t.kind = jjmatchedKind; - String im = jjstrLiteralImages[jjmatchedKind]; - t.image = (im == null) ? input_stream.GetImage() : im; - t.beginLine = input_stream.getBeginLine(); - t.beginColumn = input_stream.getBeginColumn(); - t.endLine = input_stream.getEndLine(); - t.endColumn = input_stream.getEndColumn(); - return t; -} - -int curLexState = 3; -int defaultLexState = 3; -int jjnewStateCnt; -int jjround; -int jjmatchedPos; -int jjmatchedKind; - -public Token getNextToken() -{ - int kind; - Token specialToken = null; - Token matchedToken; - int curPos = 0; - - EOFLoop : - for (;;) - { - try - { - curChar = input_stream.BeginToken(); - } - catch(java.io.IOException e) - { - jjmatchedKind = 0; - matchedToken = jjFillToken(); - return matchedToken; - } - - switch(curLexState) - { - case 0: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_0(); - break; - case 1: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_1(); - break; - case 2: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_2(); - break; - case 3: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_3(); - break; - } - if (jjmatchedKind != 0x7fffffff) - { - if (jjmatchedPos + 1 < curPos) - input_stream.backup(curPos - jjmatchedPos - 1); - if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) - { - matchedToken = jjFillToken(); - if (jjnewLexState[jjmatchedKind] != -1) - curLexState = jjnewLexState[jjmatchedKind]; - return matchedToken; - } - else - { - if (jjnewLexState[jjmatchedKind] != -1) - curLexState = jjnewLexState[jjmatchedKind]; - continue EOFLoop; - } - } - int error_line = input_stream.getEndLine(); - int error_column = input_stream.getEndColumn(); - String error_after = null; - boolean EOFSeen = false; - try { input_stream.readChar(); input_stream.backup(1); } - catch (java.io.IOException e1) { - EOFSeen = true; - error_after = curPos <= 1 ? "" : input_stream.GetImage(); - if (curChar == '\n' || curChar == '\r') { - error_line++; - error_column = 0; - } - else - error_column++; - } - if (!EOFSeen) { - input_stream.backup(1); - error_after = curPos <= 1 ? "" : input_stream.GetImage(); - } - throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR); - } -} - -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/Token.java b/source/java/org/alfresco/repo/search/impl/lucene/Token.java deleted file mode 100644 index ca7dd23c21..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/Token.java +++ /dev/null @@ -1,80 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. Token.java Version 3.0 */package org.alfresco.repo.search.impl.lucene; - -/** - * Describes the input token stream. - */ - -public class Token { - - /** - * An integer that describes the kind of this token. This numbering - * system is determined by JavaCCParser, and a table of these numbers is - * stored in the file ...Constants.java. - */ - public int kind; - - /** - * beginLine and beginColumn describe the position of the first character - * of this token; endLine and endColumn describe the position of the - * last character of this token. - */ - public int beginLine, beginColumn, endLine, endColumn; - - /** - * The string image of the token. - */ - public String image; - - /** - * A reference to the next regular (non-special) token from the input - * stream. If this is the last token from the input stream, or if the - * token manager has not read tokens beyond this one, this field is - * set to null. This is true only if this token is also a regular - * token. Otherwise, see below for a description of the contents of - * this field. - */ - public Token next; - - /** - * This field is used to access special tokens that occur prior to this - * token, but after the immediately preceding regular (non-special) token. - * If there are no such special tokens, this field is set to null. - * When there are more than one such special token, this field refers - * to the last of these special tokens, which in turn refers to the next - * previous special token through its specialToken field, and so on - * until the first special token (whose specialToken field is null). - * The next fields of special tokens refer to other special tokens that - * immediately follow it (without an intervening regular token). If there - * is no such token, this field is null. - */ - public Token specialToken; - - /** - * Returns the image. - */ - public String toString() - { - return image; - } - - /** - * Returns a new Token object, by default. However, if you want, you - * can create and return subclass objects based on the value of ofKind. - * Simply add the cases to the switch for all those special cases. - * For example, if you have a subclass of Token called IDToken that - * you want to create if ofKind is ID, simlpy add something like : - * - * case MyParserConstants.ID : return new IDToken(); - * - * to the following switch statement. Then you can cast matchedToken - * variable to the appropriate type and use it in your lexical actions. - */ - public static final Token newToken(int ofKind) - { - switch(ofKind) - { - default : return new Token(); - } - } - -} diff --git a/source/java/org/alfresco/repo/search/impl/lucene/TokenMgrError.java b/source/java/org/alfresco/repo/search/impl/lucene/TokenMgrError.java deleted file mode 100644 index 57c9c65fec..0000000000 --- a/source/java/org/alfresco/repo/search/impl/lucene/TokenMgrError.java +++ /dev/null @@ -1,133 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 3.0 */ -package org.alfresco.repo.search.impl.lucene; - -public class TokenMgrError extends Error -{ - /* - * Ordinals for various reasons why an Error of this type can be thrown. - */ - - /** - * Lexical error occured. - */ - static final int LEXICAL_ERROR = 0; - - /** - * An attempt wass made to create a second instance of a static token manager. - */ - static final int STATIC_LEXER_ERROR = 1; - - /** - * Tried to change to an invalid lexical state. - */ - static final int INVALID_LEXICAL_STATE = 2; - - /** - * Detected (and bailed out of) an infinite loop in the token manager. - */ - static final int LOOP_DETECTED = 3; - - /** - * Indicates the reason why the exception is thrown. It will have - * one of the above 4 values. - */ - int errorCode; - - /** - * Replaces unprintable characters by their espaced (or unicode escaped) - * equivalents in the given string - */ - protected static final String addEscapes(String str) { - StringBuffer retval = new StringBuffer(); - char ch; - for (int i = 0; i < str.length(); i++) { - switch (str.charAt(i)) - { - case 0 : - continue; - case '\b': - retval.append("\\b"); - continue; - case '\t': - retval.append("\\t"); - continue; - case '\n': - retval.append("\\n"); - continue; - case '\f': - retval.append("\\f"); - continue; - case '\r': - retval.append("\\r"); - continue; - case '\"': - retval.append("\\\""); - continue; - case '\'': - retval.append("\\\'"); - continue; - case '\\': - retval.append("\\\\"); - continue; - default: - if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { - String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); - } else { - retval.append(ch); - } - continue; - } - } - return retval.toString(); - } - - /** - * Returns a detailed message for the Error when it is thrown by the - * token manager to indicate a lexical error. - * Parameters : - * EOFSeen : indicates if EOF caused the lexicl error - * curLexState : lexical state in which this error occured - * errorLine : line number when the error occured - * errorColumn : column number when the error occured - * errorAfter : prefix that was seen before this error occured - * curchar : the offending character - * Note: You can customize the lexical error message by modifying this method. - */ - protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) { - return("Lexical error at line " + - errorLine + ", column " + - errorColumn + ". Encountered: " + - (EOFSeen ? " " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") + - "after : \"" + addEscapes(errorAfter) + "\""); - } - - /** - * You can also modify the body of this method to customize your error messages. - * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not - * of end-users concern, so you can return something like : - * - * "Internal Error : Please file a bug report .... " - * - * from this method for such cases in the release version of your parser. - */ - public String getMessage() { - return super.getMessage(); - } - - /* - * Constructors of various flavors follow. - */ - - public TokenMgrError() { - } - - public TokenMgrError(String message, int reason) { - super(message); - errorCode = reason; - } - - public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { - this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); - } -} diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/FunctionEvaluationContext.java b/source/java/org/alfresco/repo/search/impl/querymodel/FunctionEvaluationContext.java index 1712395ace..cb1d315167 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/FunctionEvaluationContext.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/FunctionEvaluationContext.java @@ -29,10 +29,10 @@ import java.util.Collection; import java.util.Map; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.namespace.QName; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneConjunction.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneConjunction.java index a55364b89b..f5d2a5b98b 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneConjunction.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneConjunction.java @@ -28,12 +28,12 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.Constraint; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.Negation; import org.alfresco.repo.search.impl.querymodel.impl.BaseConjunction; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.BooleanClause.Occur; diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java index 6e70f17fcf..d3cdd195e9 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java @@ -28,12 +28,12 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.Constraint; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.Negation; import org.alfresco.repo.search.impl.querymodel.impl.BaseDisjunction; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.BooleanClause.Occur; diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneFunctionalConstraint.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneFunctionalConstraint.java index d519ce9307..6b156e4b73 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneFunctionalConstraint.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneFunctionalConstraint.java @@ -27,11 +27,11 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene; import java.util.Map; import java.util.Set; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.Function; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.impl.BaseFunctionalConstraint; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneNegation.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneNegation.java index d1933e9c2c..9fffc42873 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneNegation.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneNegation.java @@ -27,11 +27,11 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene; import java.util.Map; import java.util.Set; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.Constraint; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.impl.BaseNegation; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQuery.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQuery.java index c30c5dd762..24156a500a 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQuery.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQuery.java @@ -27,7 +27,6 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene; import java.util.List; import java.util.Set; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Column; import org.alfresco.repo.search.impl.querymodel.Constraint; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; @@ -42,6 +41,7 @@ import org.alfresco.repo.search.impl.querymodel.impl.BaseQuery; import org.alfresco.repo.search.impl.querymodel.impl.functions.PropertyAccessor; import org.alfresco.repo.search.impl.querymodel.impl.functions.Score; import org.alfresco.service.namespace.QName; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.Sort; diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilder.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilder.java index 20f84bc9d0..26df64774f 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilder.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilder.java @@ -26,8 +26,8 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene; import java.util.Set; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; import org.apache.lucene.search.Sort; diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderComponent.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderComponent.java index 9807670817..01315ebac2 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderComponent.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderComponent.java @@ -27,9 +27,9 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene; import java.util.Map; import java.util.Set; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderContext.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderContext.java index eb5d0f20a6..942ff6da7d 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderContext.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneQueryBuilderContext.java @@ -27,7 +27,6 @@ package org.alfresco.repo.search.impl.querymodel.impl.lucene; import org.alfresco.repo.search.impl.lucene.LuceneAnalyser; import org.alfresco.repo.search.impl.lucene.LuceneConfig; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.tenant.TenantService; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.search.SearchParameters; @@ -49,7 +48,7 @@ public class LuceneQueryBuilderContext LuceneAnalyser analyzer = new LuceneAnalyser(dictionaryService, searchParameters.getMlAnalaysisMode() == null ? config.getDefaultMLSearchAnalysisMode() : searchParameters .getMlAnalaysisMode()); lqp = new LuceneQueryParser("TEXT", analyzer); - lqp.setDefaultOperator(QueryParser.OR_OPERATOR); + lqp.setDefaultOperator(LuceneQueryParser.OR_OPERATOR); lqp.setDictionaryService(dictionaryService); lqp.setNamespacePrefixResolver(namespacePrefixResolver); lqp.setTenantService(tenantService); 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 7a63dd04e1..ee8d51bb92 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 @@ -35,7 +35,6 @@ import org.alfresco.repo.search.impl.lucene.ClosingIndexSearcher; import org.alfresco.repo.search.impl.lucene.LuceneIndexerAndSearcher; import org.alfresco.repo.search.impl.lucene.LuceneResultSet; import org.alfresco.repo.search.impl.lucene.LuceneSearcher; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.Query; import org.alfresco.repo.search.impl.querymodel.QueryEngine; @@ -52,6 +51,7 @@ import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.util.Pair; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Hits; import org.apache.lucene.search.Sort; diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneSelector.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneSelector.java index fc3968b3d8..3d9c1b373d 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneSelector.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneSelector.java @@ -28,11 +28,11 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.impl.BaseSelector; import org.alfresco.service.namespace.QName; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneChild.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneChild.java index 34a1eca85f..affd0a7371 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneChild.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneChild.java @@ -30,7 +30,6 @@ import java.util.Set; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.QueryModelException; @@ -39,6 +38,7 @@ import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderCo import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneDescendant.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneDescendant.java index 4bfcb0b73c..042e73c5a0 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneDescendant.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneDescendant.java @@ -30,7 +30,6 @@ import java.util.Set; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.QueryModelException; @@ -40,6 +39,7 @@ import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderCo import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneEquals.java index 0d4190b0f7..2a6068a931 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneEquals.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneEquals.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PredicateMode; @@ -36,6 +35,7 @@ import org.alfresco.repo.search.impl.querymodel.QueryModelException; import org.alfresco.repo.search.impl.querymodel.impl.functions.Equals; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** @@ -44,6 +44,9 @@ import org.apache.lucene.search.Query; */ public class LuceneEquals extends Equals implements LuceneQueryBuilderComponent { + /** + * + */ public LuceneEquals() { super(); diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneExists.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneExists.java index d3d52ac10d..6416a83e49 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneExists.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneExists.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PropertyArgument; @@ -37,6 +36,7 @@ import org.alfresco.repo.search.impl.querymodel.impl.functions.Exists; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSExactTerm.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSExactTerm.java index b79234ad3a..67bf7e8224 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSExactTerm.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSExactTerm.java @@ -28,12 +28,12 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSExactTerm; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSPhrase.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSPhrase.java index c09b966a25..5210f3b0e8 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSPhrase.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSPhrase.java @@ -28,12 +28,12 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSPhrase; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSTerm.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSTerm.java index 891184a0bd..5544aee7b3 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSTerm.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneFTSTerm.java @@ -28,12 +28,12 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.impl.functions.FTSTerm; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThan.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThan.java index 3aac7d0431..e3a7ef9df7 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThan.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThan.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PredicateMode; @@ -36,6 +35,7 @@ import org.alfresco.repo.search.impl.querymodel.QueryModelException; import org.alfresco.repo.search.impl.querymodel.impl.functions.GreaterThan; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThanOrEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThanOrEquals.java index 7f4bce0570..4880001a97 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThanOrEquals.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneGreaterThanOrEquals.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PredicateMode; @@ -36,6 +35,7 @@ import org.alfresco.repo.search.impl.querymodel.QueryModelException; import org.alfresco.repo.search.impl.querymodel.impl.functions.GreaterThanOrEquals; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneIn.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneIn.java index 2b0b84efb7..c5bde17155 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneIn.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneIn.java @@ -30,7 +30,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.ListArgument; @@ -41,6 +40,7 @@ import org.alfresco.repo.search.impl.querymodel.impl.functions.In; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThan.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThan.java index abb9910927..06ee039acb 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThan.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThan.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PredicateMode; @@ -36,6 +35,7 @@ import org.alfresco.repo.search.impl.querymodel.QueryModelException; import org.alfresco.repo.search.impl.querymodel.impl.functions.LessThan; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThanOrEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThanOrEquals.java index 9d057c0d6b..cde4020f31 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThanOrEquals.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLessThanOrEquals.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PredicateMode; @@ -36,6 +35,7 @@ import org.alfresco.repo.search.impl.querymodel.QueryModelException; import org.alfresco.repo.search.impl.querymodel.impl.functions.LessThanOrEquals; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLike.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLike.java index 700897cd5d..d9ddf8c7b9 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLike.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneLike.java @@ -29,7 +29,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PropertyArgument; @@ -38,6 +37,7 @@ import org.alfresco.repo.search.impl.querymodel.impl.functions.Like; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneNotEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneNotEquals.java index 41fec1b88c..7f46cd1c3f 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneNotEquals.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/functions/LuceneNotEquals.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; -import org.alfresco.repo.search.impl.lucene.ParseException; import org.alfresco.repo.search.impl.querymodel.Argument; import org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext; import org.alfresco.repo.search.impl.querymodel.PredicateMode; @@ -36,6 +35,7 @@ import org.alfresco.repo.search.impl.querymodel.QueryModelException; import org.alfresco.repo.search.impl.querymodel.impl.functions.NotEquals; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderComponent; import org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext; +import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Query; /** diff --git a/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java b/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java index 5a76454d18..66371dbf2a 100644 --- a/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java +++ b/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java @@ -38,7 +38,7 @@ import java.util.regex.Pattern; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.model.ContentModel; import org.alfresco.repo.cache.SimpleCache; -import org.alfresco.repo.search.impl.lucene.QueryParser; +import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; @@ -55,7 +55,6 @@ import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.RegexQNamePattern; import org.alfresco.util.ISO9075; import org.alfresco.util.SearchLanguageConversion; -import org.hibernate.loader.hql.QueryLoader; public class AuthorityDAOImpl implements AuthorityDAO { @@ -225,7 +224,7 @@ public class AuthorityDAOImpl implements AuthorityDAO sp.setLanguage("lucene"); sp.setQuery("+TYPE:\"" + ContentModel.TYPE_AUTHORITY_CONTAINER + "\"" + " +@" - + QueryParser.escape("{" + ContentModel.PROP_AUTHORITY_NAME.getNamespaceURI() + "}" + ISO9075.encode(ContentModel.PROP_AUTHORITY_NAME.getLocalName())) + ":\"" + + LuceneQueryParser.escape("{" + ContentModel.PROP_AUTHORITY_NAME.getNamespaceURI() + "}" + ISO9075.encode(ContentModel.PROP_AUTHORITY_NAME.getLocalName())) + ":\"" + namePattern + "\""); ResultSet rs = null; try @@ -385,7 +384,7 @@ public class AuthorityDAOImpl implements AuthorityDAO sp.setLanguage("lucene"); sp.setQuery("+TYPE:\"" + ContentModel.TYPE_AUTHORITY_CONTAINER + "\"" + " +@" - + QueryParser.escape("{" + ContentModel.PROP_MEMBERS.getNamespaceURI() + "}" + ISO9075.encode(ContentModel.PROP_MEMBERS.getLocalName())) + ":\"" + name + "\""); + + LuceneQueryParser.escape("{" + ContentModel.PROP_MEMBERS.getNamespaceURI() + "}" + ISO9075.encode(ContentModel.PROP_MEMBERS.getLocalName())) + ":\"" + name + "\""); ResultSet rs = null; try { @@ -563,7 +562,7 @@ public class AuthorityDAOImpl implements AuthorityDAO sp.setLanguage("lucene"); sp.setQuery("+TYPE:\"" + ContentModel.TYPE_AUTHORITY_CONTAINER + "\"" + " +@" - + QueryParser.escape("{" + ContentModel.PROP_AUTHORITY_NAME.getNamespaceURI() + "}" + ISO9075.encode(ContentModel.PROP_AUTHORITY_NAME.getLocalName())) + ":\"" + + LuceneQueryParser.escape("{" + ContentModel.PROP_AUTHORITY_NAME.getNamespaceURI() + "}" + ISO9075.encode(ContentModel.PROP_AUTHORITY_NAME.getLocalName())) + ":\"" + name + "\""); ResultSet rs = null; try diff --git a/source/java/org/alfresco/repo/site/SiteServiceImpl.java b/source/java/org/alfresco/repo/site/SiteServiceImpl.java index ed6e8625e4..1398a769b6 100644 --- a/source/java/org/alfresco/repo/site/SiteServiceImpl.java +++ b/source/java/org/alfresco/repo/site/SiteServiceImpl.java @@ -36,7 +36,7 @@ import java.util.concurrent.ConcurrentHashMap; import org.alfresco.model.ContentModel; import org.alfresco.repo.activities.ActivityType; import org.alfresco.repo.search.QueryParameterDefImpl; -import org.alfresco.repo.search.impl.lucene.QueryParser; +import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; import org.alfresco.repo.security.authentication.AuthenticationComponent; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; @@ -579,7 +579,7 @@ public class SiteServiceImpl implements SiteService, SiteModel dictionaryService.getDataType( DataTypeDefinition.TEXT), true, - QueryParser.escape(nameFilter.replace('"', ' '))); + LuceneQueryParser.escape(nameFilter.replace('"', ' '))); // get the sites that match the specified names StringBuilder query = new StringBuilder(128); diff --git a/source/java/org/alfresco/util/SearchLanguageConversion.java b/source/java/org/alfresco/util/SearchLanguageConversion.java index 6c26f4a4d0..8084b80e50 100644 --- a/source/java/org/alfresco/util/SearchLanguageConversion.java +++ b/source/java/org/alfresco/util/SearchLanguageConversion.java @@ -24,7 +24,8 @@ */ package org.alfresco.util; -import org.alfresco.repo.search.impl.lucene.QueryParser; +import org.alfresco.repo.search.impl.lucene.LuceneQueryParser; +import org.apache.lucene.queryParser.QueryParser; /** * Helper class to provide conversions between different search languages @@ -306,7 +307,7 @@ public class SearchLanguageConversion char[] chars = new char[] { ch }; String unescaped = new String(chars); // check it - String escaped = QueryParser.escape(unescaped); + String escaped = LuceneQueryParser.escape(unescaped); if (!escaped.equals(unescaped)) { // it was escaped