Package org.alfresco.util
Class SearchLanguageConversion
- java.lang.Object
-
- org.alfresco.util.SearchLanguageConversion
-
public class SearchLanguageConversion extends java.lang.ObjectHelper 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 java.lang.Stringconvert(SearchLanguageConversion.LanguageDefinition from, SearchLanguageConversion.LanguageDefinition to, java.lang.String query)static java.lang.StringconvertCifsToLucene(java.lang.String cifsNamePath)Convert a CIFS name path into the equivalent Lucene query.static java.lang.StringconvertSQLLikeToLucene(java.lang.String sqlLikeClause)Convert a sql like function clause into a Lucene query.static java.lang.StringconvertSQLLikeToRegex(java.lang.String sqlLikeClause)Convert a sql like function clause into a regex query.static java.lang.StringconvertXPathLikeToLucene(java.lang.String xpathLikeClause)Convert an xpath like function clause into a Lucene query.static java.lang.StringconvertXPathLikeToRegex(java.lang.String xpathLikeClause)Convert an xpath like function clause into a regex query.static java.lang.StringescapeForLucene(java.lang.String str)Escape a string according to the Lucene query syntax.static java.lang.StringescapeForRegex(java.lang.String str)Escape a string according to the regex language syntax.static java.lang.StringescapeForXPathLike(java.lang.String str)Escape a string according to the XPath like function syntax.static java.lang.StringescapeLuceneQuery(java.lang.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 java.lang.String[]tokenizeString(java.lang.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 java.lang.String escapeForXPathLike(java.lang.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 java.lang.String escapeForRegex(java.lang.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 java.lang.String escapeForLucene(java.lang.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 java.lang.String convertXPathLikeToRegex(java.lang.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 java.lang.String convertXPathLikeToLucene(java.lang.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 java.lang.String convertSQLLikeToLucene(java.lang.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 java.lang.String convertSQLLikeToRegex(java.lang.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 java.lang.String convertCifsToLucene(java.lang.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 java.lang.String convert(SearchLanguageConversion.LanguageDefinition from, SearchLanguageConversion.LanguageDefinition to, java.lang.String query)
-
escapeLuceneQuery
public static java.lang.String escapeLuceneQuery(java.lang.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
-
tokenizeString
public static java.lang.String[] tokenizeString(java.lang.String query)
-
-