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