|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opencms.search.CmsSearch
public class CmsSearch
Helper class to access the search facility within a jsp.
Typically, the following fields are available for searching:
Field Summary | |
---|---|
protected java.util.Map<java.lang.String,java.lang.Integer> |
m_categoriesFound
The result categories of a search. |
protected CmsObject |
m_cms
The cms object. |
protected java.lang.Exception |
m_lastException
The latest exception. |
protected java.lang.String |
m_nextUrl
The URL which leads to the next result page. |
protected int |
m_pageCount
The number of pages for the result list. |
protected CmsSearchParameters |
m_parameterRestriction
The restriction for the search parameters, used for "search in search result". |
protected CmsSearchParameters |
m_parameters
The search parameters used for searching, build out of the given individual parameter values. |
protected java.lang.String |
m_prevUrl
The URL which leads to the previous result page. |
protected java.util.List<CmsSearchResult> |
m_result
The current search result. |
protected java.lang.String |
m_searchParameters
The search parameter String. |
protected int |
m_searchResultCount
The total number of search results matching the query. |
Constructor Summary | |
---|---|
CmsSearch()
Default constructor, used to instantiate the search facility as a bean. |
Method Summary | |
---|---|
void |
addFieldQuery(java.lang.String fieldName,
java.lang.String searchQuery,
org.apache.lucene.search.BooleanClause.Occur occur)
Adds an individual query for a search field. |
void |
addFieldQueryMust(java.lang.String fieldName,
java.lang.String searchQuery)
Adds an individual query for a search field that MUST occur. |
void |
addFieldQueryMustNot(java.lang.String fieldName,
java.lang.String searchQuery)
Adds an individual query for a search field that MUST NOT occur. |
void |
addFieldQueryShould(java.lang.String fieldName,
java.lang.String searchQuery)
Adds an individual query for a search field that SHOULD occur. |
boolean |
getCalculateCategories()
Returns true if a category overview should be shown as part of the result. |
java.lang.String[] |
getCategories()
Returns the search categories. |
int |
getDisplayPages()
Returns the maximum number of pages which should be shown. |
java.lang.String |
getFields()
Gets the current fields list. |
java.lang.String |
getIndex()
Gets the name of the current search index. |
java.lang.Exception |
getLastException()
Gets the last exception after a search operation. |
int |
getMatchesPerPage()
Gets the number of matches displayed on each page. |
java.lang.String |
getNextUrl()
Gets the URL for the link to the next result page. |
java.util.Map<java.lang.Integer,java.lang.String> |
getPageLinks()
Creates a sorted map of URLs to link to other search result pages. |
CmsSearchParameters |
getParameters()
Returns the search parameters used for searching, build out of the given individual parameter values. |
java.lang.String |
getPreviousUrl()
Gets the URL for the link to the previous result page. |
java.lang.String |
getQuery()
Gets the current search query. |
int |
getQueryLength()
Gets the minimum search query length. |
int |
getSearchPage()
Gets the current result page. |
java.lang.String |
getSearchParameters()
Deprecated. use CmsSearchParameters.toQueryString() instead |
java.util.List<CmsSearchResult> |
getSearchResult()
Returns the search result for the current query, as a list of objects. |
java.util.Map<java.lang.String,java.lang.Integer> |
getSearchResultCategories()
Returns a map of categories (Strings) for the last search result, mapped to the hit count (Integer) of the documents in this category, or null if the categories have not been calculated. |
int |
getSearchResultCount()
Returns the total number of search results matching the query. |
java.lang.String[] |
getSearchRoots()
Returns the search roots. |
org.apache.lucene.search.Sort |
getSortOrder()
Returns the sort order used for sorting the results of s search. |
void |
init(CmsObject cms)
Initializes the bean with the cms object. |
void |
setCalculateCategories(boolean calculateCategories)
Sets the flag that controls calculation of result categories for the next search, use this only if it's really required since the search can become very slow using this option. |
void |
setCategories(java.lang.String[] categories)
Sets the search categories, all search results must be in one of the categories, the category set must match the indexed category exactly. |
void |
setDisplayPages(int value)
Sets the maximum number of pages which should be shown. |
void |
setExcerptOnlySearchedFields(boolean value)
Controls if the excerpt from a field is generated only for searched fields, or for all fields (the default). |
void |
setField(java.lang.String[] fields)
Sets the fields to search. |
void |
setIndex(java.lang.String indexName)
Set the name of the index to search. |
void |
setMatchesPerPage(int matches)
Sets the number of matches per page. |
void |
setParameters(CmsSearchParameters parameters)
Set the parameters to use if a non null instance is provided. |
void |
setQuery(java.lang.String query)
Sets the search query. |
void |
setQueryLength(int length)
Sets the minimum length of the search query. |
void |
setResourceType(java.lang.String resourceType)
Limits the search to a given of resource type only. |
void |
setResourceTypes(java.lang.String[] resourceTypes)
Limits the search to a given list of resource types only. |
void |
setResultRestriction(CmsSearchParameters restriction)
Restrict the result of the next search to the results of the last search, restricted with the provided parameters. |
void |
setSearchPage(int page)
Sets the current result page. |
void |
setSearchRoot(java.lang.String searchRoot)
Convenience method to set exactly one search root. |
void |
setSearchRoots(java.lang.String[] searchRoots)
Sets the search root list. |
void |
setSortOrder(org.apache.lucene.search.Sort sortOrder)
Sets the sort order used for sorting the results of s search. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected java.util.Map<java.lang.String,java.lang.Integer> m_categoriesFound
protected transient CmsObject m_cms
protected java.lang.Exception m_lastException
protected java.lang.String m_nextUrl
protected int m_pageCount
protected CmsSearchParameters m_parameterRestriction
protected CmsSearchParameters m_parameters
protected java.lang.String m_prevUrl
protected java.util.List<CmsSearchResult> m_result
protected java.lang.String m_searchParameters
protected int m_searchResultCount
Constructor Detail |
---|
public CmsSearch()
Method Detail |
---|
public void addFieldQuery(java.lang.String fieldName, java.lang.String searchQuery, org.apache.lucene.search.BooleanClause.Occur occur)
If this is used, any setting made with setQuery(String)
and setField(String[])
will be ignored and only the individual field search settings will be used.
When combining occurrences of SHOULD, MUST and MUST_NOT, keep the following in mind: All SHOULD clauses will be grouped and wrapped in one query, all MUST and MUST_NOT clauses will be grouped in another query. This means that at least one of the terms which are given as a SHOULD query must occur in the search result.
fieldName
- the field namesearchQuery
- the search queryoccur
- the occur parameter for the query in the fieldpublic void addFieldQueryMust(java.lang.String fieldName, java.lang.String searchQuery)
If this is used, any setting made with setQuery(String)
and setField(String[])
will be ignored and only the individual field search settings will be used.
When combining occurrences of SHOULD, MUST and MUST_NOT, keep the following in mind: All SHOULD clauses will be grouped and wrapped in one query, all MUST and MUST_NOT clauses will be grouped in another query. This means that at least one of the terms which are given as a SHOULD query must occur in the search result.
fieldName
- the field namesearchQuery
- the search querypublic void addFieldQueryMustNot(java.lang.String fieldName, java.lang.String searchQuery)
If this is used, any setting made with setQuery(String)
and setField(String[])
will be ignored and only the individual field search settings will be used.
When combining occurrences of SHOULD, MUST and MUST_NOT, keep the following in mind: All SHOULD clauses will be grouped and wrapped in one query, all MUST and MUST_NOT clauses will be grouped in another query. This means that at least one of the terms which are given as a SHOULD query must occur in the search result.
fieldName
- the field namesearchQuery
- the search querypublic void addFieldQueryShould(java.lang.String fieldName, java.lang.String searchQuery)
If this is used, any setting made with setQuery(String)
and setField(String[])
will be ignored and only the individual field search settings will be used.
When combining occurrences of SHOULD, MUST and MUST_NOT, keep the following in mind: All SHOULD clauses will be grouped and wrapped in one query, all MUST and MUST_NOT clauses will be grouped in another query. This means that at least one of the terms which are given as a SHOULD query must occur in the search result.
fieldName
- the field namesearchQuery
- the search querypublic boolean getCalculateCategories()
true
if a category overview should be shown as part of the result.Please note: The calculation of the category count slows down the search time by an order of magnitude. Make sure that you only use this feature if it's really required! Be especially careful if your search result list can become large (> 1000 documents), since in this case overall system performance will certainly be impacted considerably when calculating the categories.
true
if a category overview should be shown as part of the resultpublic java.lang.String[] getCategories()
public int getDisplayPages()
public java.lang.String getFields()
public java.lang.String getIndex()
public java.lang.Exception getLastException()
public int getMatchesPerPage()
public java.lang.String getNextUrl()
public java.util.Map<java.lang.Integer,java.lang.String> getPageLinks()
The key values are Integers representing the page number, the entry holds the corresponding link.
public CmsSearchParameters getParameters()
public java.lang.String getPreviousUrl()
public java.lang.String getQuery()
public int getQueryLength()
public int getSearchPage()
public java.lang.String getSearchParameters()
CmsSearchParameters.toQueryString()
instead
getParameters()
public java.util.List<CmsSearchResult> getSearchResult()
CmsSearchResult
objects.
public java.util.Map<java.lang.String,java.lang.Integer> getSearchResultCategories()
null
if the categories have not been calculated.
getCalculateCategories()
,
setCalculateCategories(boolean)
public int getSearchResultCount()
public java.lang.String[] getSearchRoots()
Only resources that are sub-resources of one of the search roots are included in the search result.
The search roots are used in addition to the current site root of the user performing the search.
By default, the search roots contain only one entry with an empty string.
public org.apache.lucene.search.Sort getSortOrder()
public void init(CmsObject cms)
cms
- the cms objectpublic void setCalculateCategories(boolean calculateCategories)
Please note: The calculation of the category count slows down the search time by an order of magnitude. Make sure that you only use this feature if it's really required! Be especially careful if your search result list can become large (> 1000 documents), since in this case overall system performance will certainly be impacted considerably when calculating the categories.
calculateCategories
- if true
, the category count will be calculated for the next searchpublic void setCategories(java.lang.String[] categories)
All categories will automatically be trimmed and lower cased, since search categories are also stored this way in the index.
categories
- the categories to setpublic void setDisplayPages(int value)
Enter an odd value to achieve a nice, "symmetric" output.
value
- the maximum number of pages which should be shownpublic void setExcerptOnlySearchedFields(boolean value)
The default setting is false
, which means all text fields configured for the excerpt will
be used to gernerate the excerpt, regardless if they have been searched in or not.
Please note: A field will only be included in the excerpt if it has been configured as excerpt="true"
in opencms-search.xml
. This method controls if so configured fields are used depending on the
fields searched, see setField(String[])
.
value
- if true
, the excerpt is generated only from the fields actually searched inpublic void setField(java.lang.String[] fields)
If the fields are set to null
,
or not set at all, the default fields "content" and "meta" are used.
For a list of valid field names, see the Interface constants of
.
I_CmsDocumentFactory
fields
- the fields to searchpublic void setIndex(java.lang.String indexName)
A former search result will be deleted.
indexName
- the name of the indexpublic void setMatchesPerPage(int matches)
matches
- the number of matches per pagepublic void setParameters(CmsSearchParameters parameters)
parameters
- the parameters to use for the search if a non null instance is providedpublic void setQuery(java.lang.String query)
The syntax of the query depends on the search engine used. A former search result will be deleted.
query
- the search query (escaped format)public void setQueryLength(int length)
length
- the minimum search query lengthpublic void setResourceType(java.lang.String resourceType)
resourceType
- the resource type to limit the search result topublic void setResourceTypes(java.lang.String[] resourceTypes)
resourceTypes
- the resource types to limit the search result topublic void setResultRestriction(CmsSearchParameters restriction)
Use this for "seach in search result" functions.
restriction
- the restriction to useCmsSearchParameters.restrict(CmsSearchParameters)
public void setSearchPage(int page)
Works with jsp bean mechanism for request parameter "searchPage" that is generated here for page links.
page
- the current result pagepublic void setSearchRoot(java.lang.String searchRoot)
searchRoot
- the search root to setsetSearchRoots(String[])
public void setSearchRoots(java.lang.String[] searchRoots)
Only resources that are sub-resources of one of the search roots are included in the search result.
The search roots set here are used in addition to the current site root of the user performing the search.
By default, the search roots contain only one entry with an empty string.
searchRoots
- the search roots to setpublic void setSortOrder(org.apache.lucene.search.Sort sortOrder)
sortOrder
- the sort order to set
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |