com.atlassian.jira.issue.search.SearchProvider |
![]() |
A SearchProvider in JIRA allows users to run structured searches against JIRA Lucene index as opposed to database (SQL) based queries.
All search methods take a Query
which defines the criteria of the search,
including any sort information.
WARNING: As of JIRA v7.0, this component has been moved to the Lucene DMZ, as it contains
too many low-level and Lucene-specific concepts. The methods that were not specific to Lucene have been
re-implemented on SearchService
to make them accessible from the API (specifically, this means
those that permit searching with security disabled, but without using a Collector
or andQuery
).
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Run a search based on the provided search criteria and, for each match, call Collector.collect().
| |||||||||||
Run a search based on the provided search criteria and, for each match, call Collector.collect().
| |||||||||||
Search the index, and only return issues that are in the pager's range.
| |||||||||||
Search the index, and only return issues that are in the pager's range while AND'ing the raw lucene query
to the generated query from the provided searchQuery.
| |||||||||||
Run a search based on the provided search criteria and, for each match call Collector.collect().
| |||||||||||
Run a search based on the provided search criteria and, for each match call Collector.collect().
| |||||||||||
Return the number of issues matching the provided search criteria.
| |||||||||||
Return the number of issues matching the provided search criteria, overridding any security constraints.
| |||||||||||
Run a search based on the provided search criteria and, for each match, call Collector.collect() not taking
into account any security constraints.
| |||||||||||
Search the index, and only return issues that are in the pager's range while AND'ing the raw lucene query
to the generated query from the provided searchQuery, not taking into account any security
constraints.
|
Run a search based on the provided search criteria and, for each match, call Collector.collect(). Collectors are low level Lucene classes, but they allow issues to be placed into buckets very quickly. Many of JIRA's graphs and stats are generated in this manner. This method is useful if you need to execute a query in constant-memory (i.e. you do not want to load the results of your complete search into memory) and the query generated via JQL needs to be augmented with some custom Lucene query.
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which will be used to provide context for the search. |
collector | the Lucene object that will have collect called for each match. |
andQuery | additional Lucene query to be anded with the lucene query that will be generated from JQL |
SearchException | thrown if there is a severe problem encountered with lucene when searching (wraps an IOException). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Run a search based on the provided search criteria and, for each match, call Collector.collect(). Collectors are low level Lucene classes, but they allow issues to be placed into buckets very quickly. Many of JIRA's graphs and stats are generated in this manner. This method is useful if you need to execute a query in constant-memory (i.e. you do not want to load the results of your complete search into memory).
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which will be used to provide context for the search. |
collector | the Lucene object that will have collect called for each match. |
SearchException | thrown if there is a severe problem encountered with lucene when searching (wraps an IOException). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Search the index, and only return issues that are in the pager's range.
Note: that this method returns read only Issue
objects, and should not be
used where you need the issue for update.
Also note that if you are only after the number of search results use
searchCount(Query, ApplicationUser)
as it provides better performance.
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 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). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Search the index, and only return issues that are in the pager's range while AND'ing the raw lucene query to the generated query from the provided searchQuery.
Note that this method returns read only Issue
objects, and should not be
used where you need the issue for update.
Also note that if you are only after the number of search results use
searchCount(Query, ApplicationUser)
as it provides better performance.
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 getUnlimitedFilter() to get all issues). |
andQuery | raw lucene Query to AND with the request. |
SearchResults
containing the resulting issues.SearchException | thrown if there is a severe problem encountered with lucene when searching (wraps an IOException). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Run a search based on the provided search criteria and, for each match call Collector.collect(). This method is for Collectors that need the search results to be sorted.
Note: this is much slower than using search(Query, ApplicationUser, Collector)
.
You may limit the number of results being collected by the Collector using the PagerFilter parameter. This method is useful if you need to execute a query in constant-memory (i.e. you do not want to load the results of your complete search into memory).
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which will be used to provide context for the search. |
collector | the Lucene object that will have collect called for each match. |
pager | Pager filter (use getUnlimitedFilter() to get all issues). |
SearchException | thrown if there is a severe problem encountered with lucene when searching (wraps an IOException). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Run a search based on the provided search criteria and, for each match call Collector.collect(). This method is for Collectors that need the search results to be sorted.
Do not use this method, user searchAndSort(Query, ApplicationUser, Collector, PagerFilter)
instead, this should only be used when performing administrative tasks where you need to know ALL the issues
that will be effected.
Note: this is much slower than using search(Query, ApplicationUser, Collector)
.
You may limit the number of results being collected by the Collector using the PagerFilter parameter. This method is useful if you need to execute a query in constant-memory (i.e. you do not want to load the results of your complete search into memory).
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which will be used to provide context for the search. |
collector | the Lucene object that will have collect called for each match. |
pager | Pager filter (use getUnlimitedFilter() to get all issues). |
SearchException | thrown if there is a severe problem encountered with lucene when searching (wraps an IOException). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Return the number of issues matching the provided search criteria.
Note: This does not load all results into memory and provides better performance than
search(Query, ApplicationUser, PagerFilter)
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which 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). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Return the number of issues matching the provided search criteria, overridding any security constraints.
Do not use this method, use searchCount(Query, ApplicationUser)
instead, this should only be used when performing administrative tasks where you need to know ALL the issues
that will be affected.
Note: This does not load all results into memory and provides better performance than
search(Query, ApplicationUser, PagerFilter)
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which 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). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Run a search based on the provided search criteria and, for each match, call Collector.collect() not taking into account any security constraints.
Do not use this method, use search(Query, ApplicationUser, Collector)
instead, this should only be used when performing administrative tasks where you need to know ALL the issues
that will be affected.
Collectors are low level Lucene classes, but they allow issues to be placed into buckets very quickly. Many of JIRA's graphs and stats are generated in this manner. This method is useful if you need to execute a query in constant-memory (i.e. you do not want to load the results of your complete search into memory).
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which will be used to provide context for the search. |
collector | the Lucene object that will have collect called for each match. |
SearchException | thrown if there is a severe problem encountered with lucene when searching (wraps an IOException). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |
Search the index, and only return issues that are in the pager's range while AND'ing the raw lucene query to the generated query from the provided searchQuery, not taking into account any security constraints.
Do not use this method, user search(Query, ApplicationUser, PagerFilter, org.apache.lucene.search.Query)
instead, this should only be used when performing administrative tasks where you need to know ALL the issues
that will be affected.
Note that this method returns read only Issue
objects, and should not be
used where you need the issue for update. Also note that if you are only after the number of search
results use searchCount(Query, ApplicationUser)
as it provides better performance.
query | contains the information required to perform the search. |
---|---|
searcher | the user performing the search which will be used to provide context for the search. |
pager | Pager filter (use getUnlimitedFilter() to get all issues). |
andQuery | raw lucene Query to AND with the request. |
SearchResults
containing the resulting issues.SearchException | thrown if there is a severe problem encountered with lucene when searching (wraps an IOException). |
---|---|
ClauseTooComplexSearchException | if the query or part of the query produces lucene that is too complex to be processed. |