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 class
SearchLanguageConversion.LanguageDefinition
Simple store of special characters for a given query language
-
Field Summary
Fields Modifier and Type Field Description static SearchLanguageConversion.LanguageDefinition
DEF_CIFS
CIFS name patch query language summary: Escape: \ (but not used) Single char search: ? Multiple char search: * Reserved: "*\<>?/:|£%&+;static SearchLanguageConversion.LanguageDefinition
DEF_LUCENE
Lucene syntax summary: Lucene Query Parserstatic SearchLanguageConversion.LanguageDefinition
DEF_LUCENE_INTERNAL
static SearchLanguageConversion.LanguageDefinition
DEF_REGEX
Regular expression query language summary: Escape: \ Single char search: . Multiple char search: .* Reserved: \*.+?^$(){}[]|static SearchLanguageConversion.LanguageDefinition
DEF_SQL_LIKE
SQL like query language summary: Escape: \ Single char search: _ Multiple char search: % Reserved: \%_static SearchLanguageConversion.LanguageDefinition
DEF_XPATH_LIKE
XPath 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 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 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
-
-