|
Oracle Fusion Middleware Java API for Oracle WebLogic Portal 10g Release 3 (10.3.4) E14255-03 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.bea.content.expression.Search
public class Search
This represents parameters for searching Nodes in the repository.
The search criteria are validated, but by default, will only print a WARNING to the WebLogic console if they are
invalid. It is recommended that you enable full validation of the search critera, which will throw an Exception for invalid
criteria; otherwise, the sort may fail to return valid or sorted results. To enable full validation, set this
repository property in your content-config.xml:
If not using full text search, the sort criteria are restricted to either system or explicit properties.
There are reserved system properties that may be part of a search. They are:
Explicit properties may be used as part of the sort criteria. They may be specified by the user, in addition to those that exist OOTB: "cm_nodeName", "cm_value","cm_lifeCycleStatus", "cm_isContent", "cm_isHierarchy", "cm_isHierarchy", "cm_objectClass", "cm_path", "cm_createdBy", "cm_createdDate", "cm_objectClassInstance", "cm_parent_uid", "cm_version", "cm_versionComment", "cm_checkedOut", "cm_assignedToUser", "cm_role", "cm_uid", "cm_modifiedBy", "cm_modifiedDate", "cm_contentType", "cm_binarySize", "cm_binaryName"
For more complex sort criteria, rather than SortCriteria, use the Search constructor that takes a sort string:
public Search(String searchPath, int maxReturn, String sort, Expression expr) throws IllegalArgumentException
where the 'sort' parameter may be something like:
Here is an example of how to build a search Expression:
String expStr = "cm_objectClass = 'CATALOG_PRODUCT_ITEM' && keywords containsall ('camera')"; Expression exp = ExpressionHelper.parse(expStr);
And here is an example of how that same search would be passed in as a String:
String expStr = "cm_objectClass = 'CATALOG_PRODUCT_ITEM' && keywords containsall ('camera')";
Here is a full example of constructing and executing a search:
IMetadataQuery mQuery = FullTextQueryFactory.getMetadataQuery(); ITextQuery tQuery = FullTextQueryFactory.getTextQuery(); String textString = "winter"; ITextQueryParameter textCriteria = tQuery.buildEquals(textString); String metaDataString = "Nederland"; IMetadataQueryParameter metadataCriteria = mQuery.buildContains("*", new String[]{metaDataString}); IFullTextSearch expression = FullTextSearchFactory.buildFullTextSearch(metadataCriteria, textCriteria, true); String repositoryPath = "/MyRepository"; Search search = new Search(repositoryPath, -1, null, expression, true); ISearchManager searchManager = ContentManagerFactory.getSearchManager(); ContentContext cc = new ContentContext(); cc.setParameter(ContentListKeys.BATCH_LOADING_SIZE_KEY, 100); ISortableFilterablePagedListresults = searchManager.search(cc, search);
A note about search paths:
Note that Node link properties are not currently supported in a search expression.
Field Summary | |
---|---|
protected Map |
contextParams
The context params. |
protected Expression |
expression
The search expression. |
protected IFullTextSearch |
fullText
The full text search expression. |
protected int |
maxReturn
The maximum number of objects to return. |
protected List |
searchPaths
The paths under which to search. |
protected SortCriteria[] |
sortCriteria
The sorting criteria |
protected boolean |
useCache
indicates whether or not the search should use the cache or not |
protected boolean |
useFullTextSearch
Whether a full text search is to be performed instead of a database search. |
Constructor Summary | |
---|---|
Search()
Empty constructor. |
|
Search(Expression expr)
Constructor. |
|
Search(int maxReturn,
Expression expr)
Constructor. |
|
Search(int maxReturn,
SortCriteria[] sortCriteria,
Expression expr)
Constructor. |
|
Search(int maxReturn,
SortCriteria[] sortCriteria,
String expr)
Constructor. |
|
Search(int maxReturn,
String expr)
Constructor. |
|
Search(int maxReturn,
String sort,
Expression expr)
Constructor. |
|
Search(int maxReturn,
String sort,
String expr)
Constructor. |
|
Search(String expr)
Constructor. |
|
Search(String searchPath,
int maxReturn,
SortCriteria[] sortCriteria,
Expression expr)
Constructor. |
|
Search(String searchPath,
int maxReturn,
SortCriteria[] sortCriteria,
IFullTextSearch expr,
boolean performFullTextSearch)
Constructor. |
|
Search(String searchPath,
int maxReturn,
SortCriteria[] sortCriteria,
String expr)
Constructor. |
|
Search(String searchPath,
int maxReturn,
String sort,
Expression expr)
Constructor. |
|
Search(String searchPath,
int maxReturn,
String sort,
String expr)
Constructor. |
Method Summary | |
---|---|
void |
addSearchPath(String path)
Add a search path. |
void |
clearSearchPaths()
Clear the search paths. |
Object |
clone()
Make a deep copy of this object |
boolean |
equals(Object o)
Determine if another object is equals to this. |
Object |
getContextParam(Object key)
Get the value of a context param. |
Map |
getContextParams()
Get an unmodifiable copy of the context params. |
Expression |
getExpression()
Get the search expression. |
IFullTextSearch |
getFullTextExpression()
Get the search expression corresponding to a full text search. |
int |
getMaxReturn()
Get the maximum number of objects to return. |
int |
getNumSearchPaths()
Get the number of search paths set directly on the Search object. |
String[] |
getSearchPaths()
Get the search paths. |
Iterator |
getSearchPathsIterator()
Get an iterator over the search paths. |
SortCriteria[] |
getSortCriteria()
Get the sort criteria. |
int |
hashCode()
Override hashcode to use our parts. |
boolean |
isFullTextSearch()
Check if this is a Full Text Search instead of the Database Search. |
boolean |
isUseCache()
Indicates whether or not the search, when executed will try to use the global search cache or not. |
void |
removeSearchPath(String path)
Remove a search path. |
Object |
setContextParam(Object key,
Object value)
Set the value of a context param. |
void |
setContextParams(Map input)
Set the context params based upon the objects in the input map. |
void |
setExpression(Expression expression)
Set the search expression. |
void |
setFullTextExpression(IFullTextSearch expression)
Set the search expression corresponding to a full text search. |
void |
setFullTextSearch(boolean fullTextSearch)
Enable/Disable Full Text Search |
void |
setMaxReturn(int maxReturn)
Set the maximum number of objects to return. |
void |
setSearchPath(String searchPath)
Set the search path to contain just this one. |
void |
setSearchPaths(String[] paths)
Set the search paths. |
void |
setSortCriteria(SortCriteria[] sortCriteria)
Set the sort criteria. |
void |
setSortCriteria(String sort)
Set the sort criteria. |
void |
setUseCache(boolean useCache)
Indicates to the search API whether or not to use the search cache when executing the search expression. |
String |
toString()
Get a String representation of this. |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected List searchPaths
This should be empty to search under all paths (repositories in a federeated search.) This is an OR'ed list.
In a federated search, this can begin with "/*" (e.g."/*/some/path") to denote a search path under each repository. In non-federated search, this should not be construed to contain any special characters.
protected int maxReturn
Less than 0 signifies returning all matches.
protected SortCriteria[] sortCriteria
protected Expression expression
protected IFullTextSearch fullText
protected Map contextParams
Note from com.bea.p13n.content.expression.Search:
Attribute: contextParams
protected boolean useCache
protected boolean useFullTextSearch
Constructor Detail |
---|
public Search(String searchPath, int maxReturn, SortCriteria[] sortCriteria, IFullTextSearch expr, boolean performFullTextSearch)
searchPath
- The path to search within, thus limiting the scope of the search. If this is null, then
all content in all repositories will be searched. If you wish to search only one repository, the path will be
something like "/MyRepository". If you wish to further scope that search in that repository beneath a folder
called "Accounts", the search path will be "/MyRepository/Accounts". Multiple search paths can be added by calling
'addSearchPath()" once the Search object has been created. Search paths set directly on the Search object imply
recursive search beneath that folder, if the underlying repository supports it.maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sortCriteria
- The sort criteria. This can be null, and if so, results are returned unsorted. If multiple
sortCriteria are specified in the array, the first specified will be the primary, and the next the secondary, etc.expr
- The search expression.performFullTextSearch
- Setting this to true will search binary data (eg, file content). Setting it to
false will search only metadata.public Search(String searchPath, int maxReturn, SortCriteria[] sortCriteria, Expression expr)
searchPath
- The path to search within, thus limiting the scope of the search. If this is null, then
all content in all repositories will be searched. If you wish to search only one repository, the path will be
something like "/MyRepository". If you wish to further scope that search in that repository beneath a folder
called "Accounts", the search path will be "/MyRepository/Accounts". Multiple search paths can be added by calling
'addSearchPath()" once the Search object has been created. Search paths set directly on the Search object imply
recursive search beneath that folder, if the underlying repository supports it.maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sortCriteria
- The sort criteria. This can be null, and if so, results are returned unsorted. If multiple
sortCriteria are specified in the array, the first specified will be the primary, and the next the secondary, etc.expr
- The search expression.public Search(String searchPath, int maxReturn, SortCriteria[] sortCriteria, String expr) throws IllegalArgumentException
searchPath
- The path to search within, thus limiting the scope of the search. If this is null, then
all content in all repositories will be searched. If you wish to search only one repository, the path will be
something like "/MyRepository". If you wish to further scope that search in that repository beneath a folder
called "Accounts", the search path will be "/MyRepository/Accounts". Multiple search paths can be added by calling
'addSearchPath()" once the Search object has been created. Search paths set directly on the Search object imply
recursive search beneath that folder, if the underlying repository supports it.maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sortCriteria
- The sort criteria. This can be null, and if so, results are returned unsorted. If multiple
sortCriteria are specified in the array, the first specified will be the primary, and the next the secondary, etc.expr
- The search expression.
IllegalArgumentException
- If the construction failed.public Search(String searchPath, int maxReturn, String sort, Expression expr) throws IllegalArgumentException
searchPath
- The path to search within, thus limiting the scope of the search. If this is null, then
all content in all repositories will be searched. If you wish to search only one repository, the path will be
something like "/MyRepository". If you wish to further scope that search in that repository beneath a folder
called "Accounts", the search path will be "/MyRepository/Accounts". Multiple search paths can be added by calling
'addSearchPath()" once the Search object has been created. Search paths set directly on the Search object imply
recursive search beneath that folder, if the underlying repository supports it.maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sort
- The sort criteria. This can be null, and if so, results are returned unsorted. If multiple
sortCriteria are specified in the array, the first specified will be the primary, and the next the secondary, etc.expr
- The search expression.
IllegalArgumentException
- If the construction failed.public Search(String searchPath, int maxReturn, String sort, String expr) throws IllegalArgumentException
searchPath
- The path to search within, thus limiting the scope of the search. If this is null, then
all content in all repositories will be searched. If you wish to search only one repository, the path will be
something like "/MyRepository". If you wish to further scope that search in that repository beneath a folder
called "Accounts", the search path will be "/MyRepository/Accounts". Multiple search paths can be added by calling
'addSearchPath()" once the Search object has been created. Search paths set directly on the Search object imply
recursive search beneath that folder, if the underlying repository supports it.maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sort
- The sort criteria. Can be null. An example would be: "cm_nodeName", which would sort results by node name.expr
- The search expression.
IllegalArgumentException
- If the construction failed.public Search(int maxReturn, SortCriteria[] sortCriteria, Expression expr)
maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sortCriteria
- The sort criteria. This can be null, and if so, results are returned unsorted. If multiple
sortCriteria are specified in the array, the first specified will be the primary, and the next the secondary, etc.expr
- The search expression.
IllegalArgumentException
- If the construction failed.public Search(int maxReturn, SortCriteria[] sortCriteria, String expr) throws IllegalArgumentException
maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sortCriteria
- The sort criteria. This can be null, and if so, results are returned unsorted. If multiple
sortCriteria are specified in the array, the first specified will be the primary, and the next the secondary, etc.expr
- The search expression.
IllegalArgumentException
- If the construction failed.public Search(int maxReturn, String sort, Expression expr) throws IllegalArgumentException
maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sort
- The sort criteria. Can be null. An example would be: "cm_nodeName", which would sort results by node name.expr
- The search expression. See javadocs at the top of this class for an example.
IllegalArgumentException
- If the construction failed.public Search(int maxReturn, String sort, String expr) throws IllegalArgumentException
maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.sort
- The sort criteria. Can be null. An example would be: "cm_nodeName", which would sort results by node name.expr
- The search expression. See javadocs at the top of this class for an example.
IllegalArgumentException
- If the construction failed.public Search(int maxReturn, Expression expr)
maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.expr
- The search expression. See javadocs at the top of this class for an example.public Search(int maxReturn, String expr) throws IllegalArgumentException
maxReturn
- The maximum number of results to return. Less than 0 signifies returning all matches.expr
- The search expression. See javadocs at the top of this class for an example.
IllegalArgumentException
- If the construction failed.public Search(Expression expr)
expr
- The search expression. See javadocs at the top of this class for an example.public Search(String expr) throws IllegalArgumentException
expr
- The search expression. See javadocs at the top of this class for an example.
IllegalArgumentException
- If the construction failed.public Search()
Method Detail |
---|
public boolean isFullTextSearch()
public void setFullTextSearch(boolean fullTextSearch)
fullTextSearch
- Setting this to true will search binary data (e.g., file content) and metadata.
Setting it to false will search only metadata in the CM repository backing store.public String[] getSearchPaths()
See searchPaths
for details about what this can be.
public Iterator getSearchPathsIterator()
See searchPaths
for details about what this can be.
public int getNumSearchPaths()
public void setSearchPath(String searchPath)
See searchPaths
for details about what this can be.
searchPath
- The search path.public void setSearchPaths(String[] paths)
paths
- The search paths.public void addSearchPath(String path)
See searchPaths
for details about what this can be.
path
- The search path to add.public void removeSearchPath(String path)
path
- The path to remove.public void clearSearchPaths()
public int getMaxReturn()
Use less than 0 to signify returning all matches.
public void setMaxReturn(int maxReturn)
Use less than 0 to signify returning all matches.
maxReturn
- The maximum number of items to return.public SortCriteria[] getSortCriteria()
public void setSortCriteria(SortCriteria[] sortCriteria)
sortCriteria
- The sort criteria.public void setSortCriteria(String sort) throws IllegalArgumentException
sort
- The sort criteria.
IllegalArgumentException
- if the str string isn't valid occurred
to SortCriteria.getSortCriteria(java.lang.String)
.public Expression getExpression()
public IFullTextSearch getFullTextExpression()
public void setFullTextExpression(IFullTextSearch expression)
expression
- The full text search expression.public void setExpression(Expression expression)
expression
- The search expression.public Map getContextParams()
public void setContextParams(Map input)
input
- The context parameters.public Object getContextParam(Object key)
public Object setContextParam(Object key, Object value)
The key and value must be Serializable.
key
- the context param key.value
- the context param value.
public Object clone()
clone
in class Object
public int hashCode()
hashCode
in class Object
public boolean isUseCache()
public void setUseCache(boolean useCache)
useCache
- variable indicating whether or not to use the search cache.public boolean equals(Object o)
equals
in class Object
public String toString()
toString
in class Object
|
Oracle Fusion Middleware Java API for Oracle WebLogic Portal 10g Release 3 (10.3.4) E14255-03 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |