Package org.alfresco.util
Class SearchLanguageConversion
java.lang.Object
org.alfresco.util.SearchLanguageConversion
Helper class to provide conversions between different search languages
- Author:
- Derek Hulley
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Simple store of special characters for a given query language -
Field Summary
FieldsModifier and TypeFieldDescriptionCIFS name patch query language summary: Escape: \ (but not used) Single char search: ? Multiple char search: * Reserved: "*\<>?/:|£%&+;Lucene syntax summary: Lucene Query ParserRegular expression query language summary: Escape: \ Single char search: . Multiple char search: .* Reserved: \*.+?^$(){}[]|SQL like query language summary: Escape: \ Single char search: _ Multiple char search: % Reserved: \%_XPath like query language summary: Escape: \ Single char search: _ Multiple char search: % Reserved: \%_ -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
convert
(SearchLanguageConversion.LanguageDefinition from, SearchLanguageConversion.LanguageDefinition to, String query) static String
convertCifsToLucene
(String cifsNamePath) Convert a CIFS name path into the equivalent Lucene query.static String
convertSQLLikeToLucene
(String sqlLikeClause) Convert a sql like function clause into a Lucene query.static String
convertSQLLikeToRegex
(String sqlLikeClause) Convert a sql like function clause into a regex query.static String
convertXPathLikeToLucene
(String xpathLikeClause) Convert an xpath like function clause into a Lucene query.static String
convertXPathLikeToRegex
(String xpathLikeClause) Convert an xpath like function clause into a regex query.static String
escapeForLucene
(String str) Escape a string according to the Lucene query syntax.static String
escapeForRegex
(String str) Escape a string according to the regex language syntax.static String
escapeForXPathLike
(String str) Escape a string according to the XPath like function syntax.static String
escapeLuceneQuery
(String query) We have to escape lucene query strings outside of lucene - as we do not depend on any given version of lucene The escaping here is taken from lucene 4.9.0 The reserved (and escaped characters) are: \ + - ! ( ) : ^ [ ] " { } ~ * ? | & / The escape character is \static String[]
tokenizeString
(String query)
-
Field Details
-
DEF_SQL_LIKE
SQL like query language summary:- Escape: \
- Single char search: _
- Multiple char search: %
- Reserved: \%_
-
DEF_XPATH_LIKE
XPath like query language summary:- Escape: \
- Single char search: _
- Multiple char search: %
- Reserved: \%_
-
DEF_REGEX
Regular expression query language summary:- Escape: \
- Single char search: .
- Multiple char search: .*
- Reserved: \*.+?^$(){}[]|
-
DEF_LUCENE
Lucene syntax summary: Lucene Query Parser -
DEF_LUCENE_INTERNAL
-
DEF_CIFS
CIFS name patch query language summary:- Escape: \ (but not used)
- Single char search: ?
- Multiple char search: *
- Reserved: "*\<>?/:|£%&+;
-
-
Constructor Details
-
SearchLanguageConversion
public SearchLanguageConversion()
-
-
Method Details
-
escapeForXPathLike
Escape a string according to the XPath like function syntax.- Parameters:
str
- the string to escape- Returns:
- Returns the escaped string
-
escapeForRegex
Escape a string according to the regex language syntax.- Parameters:
str
- the string to escape- Returns:
- Returns the escaped string
-
escapeForLucene
Escape a string according to the Lucene query syntax.- Parameters:
str
- the string to escape- Returns:
- Returns the escaped string
-
convertXPathLikeToRegex
Convert an xpath like function clause into a regex query.- Parameters:
xpathLikeClause
- String- Returns:
- Returns a valid regular expression that is equivalent to the given xpath like clause.
-
convertXPathLikeToLucene
Convert an xpath like function clause into a Lucene query.- Parameters:
xpathLikeClause
- String- Returns:
- Returns a valid Lucene expression that is equivalent to the given xpath like clause.
-
convertSQLLikeToLucene
Convert a sql like function clause into a Lucene query.- Parameters:
sqlLikeClause
- String- Returns:
- Returns a valid Lucene expression that is equivalent to the given sql like clause.
-
convertSQLLikeToRegex
Convert a sql like function clause into a regex query.- Parameters:
sqlLikeClause
- String- Returns:
- Returns a valid regular expression that is equivalent to the given sql like clause.
-
convertCifsToLucene
Convert a CIFS name path into the equivalent Lucene query.- Parameters:
cifsNamePath
- the CIFS named path- Returns:
- Returns a valid Lucene expression that is equivalent to the given CIFS name path
-
convert
public static String convert(SearchLanguageConversion.LanguageDefinition from, SearchLanguageConversion.LanguageDefinition to, String query) -
escapeLuceneQuery
We have to escape lucene query strings outside of lucene - as we do not depend on any given version of lucene The escaping here is taken from lucene 4.9.0 The reserved (and escaped characters) are: \ + - ! ( ) : ^ [ ] " { } ~ * ? | & / The escape character is \- Parameters:
query
- String- Returns:
- - the escaped query string
-
tokenizeString
-