Package org.alfresco.util
Class SearchLanguageConversion
- java.lang.Object
-
- org.alfresco.util.SearchLanguageConversion
-
public class SearchLanguageConversion extends Object
Helper class to provide conversions between different search languages- Author:
- Derek Hulley
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSearchLanguageConversion.LanguageDefinitionSimple store of special characters for a given query language
-
Field Summary
Fields Modifier and Type Field Description static SearchLanguageConversion.LanguageDefinitionDEF_CIFSCIFS name patch query language summary: Escape: \ (but not used) Single char search: ? Multiple char search: * Reserved: "*\<>?/:|£%&+;static SearchLanguageConversion.LanguageDefinitionDEF_LUCENELucene syntax summary: Lucene Query Parserstatic SearchLanguageConversion.LanguageDefinitionDEF_LUCENE_INTERNALstatic SearchLanguageConversion.LanguageDefinitionDEF_REGEXRegular expression query language summary: Escape: \ Single char search: . Multiple char search: .* Reserved: \*.+?^$(){}[]|static SearchLanguageConversion.LanguageDefinitionDEF_SQL_LIKESQL like query language summary: Escape: \ Single char search: _ Multiple char search: % Reserved: \%_static SearchLanguageConversion.LanguageDefinitionDEF_XPATH_LIKEXPath like query language summary: Escape: \ Single char search: _ Multiple char search: % Reserved: \%_
-
Constructor Summary
Constructors Constructor Description SearchLanguageConversion()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Stringconvert(SearchLanguageConversion.LanguageDefinition from, SearchLanguageConversion.LanguageDefinition to, String query)static StringconvertCifsToLucene(String cifsNamePath)Convert a CIFS name path into the equivalent Lucene query.static StringconvertSQLLikeToLucene(String sqlLikeClause)Convert a sql like function clause into a Lucene query.static StringconvertSQLLikeToRegex(String sqlLikeClause)Convert a sql like function clause into a regex query.static StringconvertXPathLikeToLucene(String xpathLikeClause)Convert an xpath like function clause into a Lucene query.static StringconvertXPathLikeToRegex(String xpathLikeClause)Convert an xpath like function clause into a regex query.static StringescapeForLucene(String str)Escape a string according to the Lucene query syntax.static StringescapeForRegex(String str)Escape a string according to the regex language syntax.static StringescapeForXPathLike(String str)Escape a string according to the XPath like function syntax.static StringescapeLuceneQuery(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 Detail
-
DEF_SQL_LIKE
public static SearchLanguageConversion.LanguageDefinition DEF_SQL_LIKE
SQL like query language summary:- Escape: \
- Single char search: _
- Multiple char search: %
- Reserved: \%_
-
DEF_XPATH_LIKE
public static SearchLanguageConversion.LanguageDefinition DEF_XPATH_LIKE
XPath like query language summary:- Escape: \
- Single char search: _
- Multiple char search: %
- Reserved: \%_
-
DEF_REGEX
public static SearchLanguageConversion.LanguageDefinition DEF_REGEX
Regular expression query language summary:- Escape: \
- Single char search: .
- Multiple char search: .*
- Reserved: \*.+?^$(){}[]|
-
DEF_LUCENE
public static SearchLanguageConversion.LanguageDefinition DEF_LUCENE
Lucene syntax summary: Lucene Query Parser
-
DEF_LUCENE_INTERNAL
public static SearchLanguageConversion.LanguageDefinition DEF_LUCENE_INTERNAL
-
DEF_CIFS
public static SearchLanguageConversion.LanguageDefinition DEF_CIFS
CIFS name patch query language summary:- Escape: \ (but not used)
- Single char search: ?
- Multiple char search: *
- Reserved: "*\<>?/:|£%&+;
-
-
Method Detail
-
escapeForXPathLike
public static String escapeForXPathLike(String str)
Escape a string according to the XPath like function syntax.- Parameters:
str- the string to escape- Returns:
- Returns the escaped string
-
escapeForRegex
public static String escapeForRegex(String str)
Escape a string according to the regex language syntax.- Parameters:
str- the string to escape- Returns:
- Returns the escaped string
-
escapeForLucene
public static String escapeForLucene(String str)
Escape a string according to the Lucene query syntax.- Parameters:
str- the string to escape- Returns:
- Returns the escaped string
-
convertXPathLikeToRegex
public static String convertXPathLikeToRegex(String xpathLikeClause)
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
public static String convertXPathLikeToLucene(String xpathLikeClause)
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
public static String convertSQLLikeToLucene(String sqlLikeClause)
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
public static String convertSQLLikeToRegex(String sqlLikeClause)
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
public static String convertCifsToLucene(String cifsNamePath)
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
public 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 \- Parameters:
query- String- Returns:
- - the escaped query string
-
-