|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
@PublicApi public interface SearchService
Provides functionality (search, query string generation, parsing, validation, context generation, etc...) related to
searching in JIRA. This deals with Query
's which contain the search criteria in JIRA.
Nested Class Summary | |
---|---|
static class |
SearchService.ParseResult
|
Method Summary | |
---|---|
boolean |
doesQueryFitFilterForm(com.atlassian.crowd.embedded.api.User user,
Query query)
Checks if a Query is capable of being shown on the simple (GUI-based) issue navigator edit screen. |
String |
getGeneratedJqlString(Query query)
Generates a JQL string representation for the passed query. |
String |
getJqlString(Query query)
Gets the JQL string representation for the passed query. |
QueryContext |
getQueryContext(com.atlassian.crowd.embedded.api.User searcher,
Query query)
Generates a full QueryContext for the specified Query for the searching user. |
String |
getQueryString(com.atlassian.crowd.embedded.api.User user,
Query query)
Returns the query string to represent the specified SearchQuery. |
SearchContext |
getSearchContext(com.atlassian.crowd.embedded.api.User searcher,
Query query)
This produces an old-style SearchContext based on the passed in
search query and the user that is performing the search. |
QueryContext |
getSimpleQueryContext(com.atlassian.crowd.embedded.api.User searcher,
Query query)
Generates a simple QueryContext for the specified Query for the searching user. |
SearchService.ParseResult |
parseQuery(com.atlassian.crowd.embedded.api.User searcher,
String query)
Parses the query string into a JQL Query . |
Query |
sanitiseSearchQuery(com.atlassian.crowd.embedded.api.User searcher,
Query query)
Returns an equivalent Query with all the potential "information leaks" removed,
with regards to the specified user. |
SearchResults |
search(com.atlassian.crowd.embedded.api.User searcher,
Query query,
PagerFilter pager)
Search the index, and only return issues that are in the pager's range. |
long |
searchCount(com.atlassian.crowd.embedded.api.User searcher,
Query query)
Search the index, and return the count of the issues matching the query. |
MessageSet |
validateQuery(com.atlassian.crowd.embedded.api.User searcher,
Query query)
Validates the specified Query for passed user. |
MessageSet |
validateQuery(com.atlassian.crowd.embedded.api.User searcher,
Query query,
Long searchRequestId)
Validates the specified Query for passed user and search request. |
Method Detail |
---|
SearchResults search(com.atlassian.crowd.embedded.api.User searcher, Query query, PagerFilter pager) throws SearchException
Issue
objects, and should not be
used where you need the issue for update.
Also note that if you are after running a more complicated query see SearchProvider
.
query
- contains the information required to perform the search.searcher
- the user performing the search, which will be used to create a permission filter that filters out
any of the results the user is not able to see and will be used to provide context for the search.pager
- Pager filter (use PagerFilter.getUnlimitedFilter()
to get all issues).
SearchResults
containing the resulting issues.
SearchException
- thrown if there is a severe problem encountered with lucene when searching (wraps an
IOException).long searchCount(com.atlassian.crowd.embedded.api.User searcher, Query query) throws SearchException
query
- contains the information required to perform the search.searcher
- the user performing the search, which will be used to create a permission filter that filters out
any of the results the user is not able to see and will be used to provide context for the search.
SearchException
- thrown if there is a severe problem encountered with lucene when searching (wraps an
IOException).String getQueryString(com.atlassian.crowd.embedded.api.User user, Query query)
The query string is prepended with "&jqlQuery=
" so that it is ready for use in building a URL.
user
- the user performing the searchquery
- the SearchQuery to generate the query string of. Does not accept null.
SearchService.ParseResult parseQuery(com.atlassian.crowd.embedded.api.User searcher, String query)
Query
.
searcher
- the user in contextquery
- the query to parse into a Query
.
@Nonnull MessageSet validateQuery(com.atlassian.crowd.embedded.api.User searcher, @Nonnull Query query)
Query
for passed user. The same as calling
validateQuery(searcher, query, null);
.
searcher
- the user performing the searchquery
- the search query to validate
@Nonnull MessageSet validateQuery(com.atlassian.crowd.embedded.api.User searcher, @Nonnull Query query, Long searchRequestId)
Query
for passed user and search request. This validates the
the passed query as if it was run as the passed search request.
searcher
- the user performing the search.query
- the search query to validate.searchRequestId
- validate in the context of this search request. Can be null to indicate the passed
query is not currently a search request.
boolean doesQueryFitFilterForm(com.atlassian.crowd.embedded.api.User user, Query query)
Query
is capable of being shown on the simple (GUI-based) issue navigator edit screen.
user
- the user who is executing the query.query
- the Query which to check that is displayable on the simple (GUI-based) issue navigator edit screen.
Does not accept null.
QueryContext getQueryContext(com.atlassian.crowd.embedded.api.User searcher, Query query)
Query
for the searching user. The full
QueryContext contains all explicit and implicitly specified projects and issue types from the Query.
For a better explanation of the differences between the full and simple QueryContexts, see
QueryContextVisitor
.
searcher
- the user performing the searchquery
- the search query to generate the context for
QueryContextVisitor
QueryContext getSimpleQueryContext(com.atlassian.crowd.embedded.api.User searcher, Query query)
Query
for the searching user.
The simple QueryContext contains only the explicit projects and issue types specified in the Query. If none were
specified, it will be the Global context.
For a better explanation of the differences between the full and simple QueryContexts, see
QueryContextVisitor
.
searcher
- the user performing the searchquery
- the search query to generate the context for
QueryContextVisitor
SearchContext getSearchContext(com.atlassian.crowd.embedded.api.User searcher, Query query)
SearchContext
based on the passed in
search query and the user that is performing the search.
This will only make sense if the query returns true for doesQueryFitFilterForm(com.atlassian.crowd.embedded.api.User, com.atlassian.query.Query)
since SearchContext is only relevant for simple queries.
The more acurate context can be gotten by calling getQueryContext(com.atlassian.crowd.embedded.api.User, com.atlassian.query.Query)
.
If the query will not fit in the simple issue navigator then the generated SearchContext will be empty. This
method never returns a null SearchContext, even when passed a null SearchQuery.
searcher
- the user performing the search, not always the SearchRequest's ownerquery
- the query for which you want a context
String getJqlString(Query query)
Query.getQueryString()
if it exists or generates one if it does not. Equilavent to:
if (query.getQueryString() != null) return query.getQueryString(); else return getGeneratedJqlString(query);
query
- the query. Cannot be null.
String getGeneratedJqlString(Query query)
Query.getQueryString()
is completely ignored if it exists. The returned JQL is automatically escaped as necessary.
query
- the query. Cannot be null.
Query sanitiseSearchQuery(com.atlassian.crowd.embedded.api.User searcher, Query query)
Query
with all the potential "information leaks" removed,
with regards to the specified user. For example, if the query contains the clause "project = Invisible", and the
specified user does not have browse permission for project "Invisible", the sanitised query will replace this
clause with "project = 12345" (where 12345 is the id of the project).
searcher
- the user performing the searchquery
- the query to sanitise; must not be null.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |