com.atlassian.jira.issue.search.providers
Class LuceneSearchProvider

java.lang.Object
  extended by com.atlassian.jira.issue.search.providers.LuceneSearchProvider
All Implemented Interfaces:
SearchProvider

public class LuceneSearchProvider
extends Object
implements SearchProvider


Constructor Summary
LuceneSearchProvider(IssueFactory issueFactory, IssueManager issueManager, SearchProviderFactory searchProviderFactory, PermissionManager permissionManager)
           
 
Method Summary
static org.apache.lucene.search.Hits runSearch(org.apache.lucene.search.Searcher searcher, org.apache.lucene.search.Query query, org.apache.lucene.search.Filter filter, org.apache.lucene.search.SortField[] sortFields)
           
 List search(SearchRequest request, User searcher)
          Deprecated.  
 void search(SearchRequest request, User user, org.apache.lucene.search.HitCollector hitCollector)
          Create a search, and for each match, call hitCollector.collect().
 SearchResults search(SearchRequest request, User searcher, PagerFilter pager)
          Search the index, and only return issues that are in the pager's range.
 SearchResults search(SearchRequest request, User searcher, PagerFilter pager, org.apache.lucene.search.Query andQuery)
          Search the index, and only return issues that are in the pager's range.
 void searchAndSort(SearchRequest request, User user, DocumentHitCollector hitCollector, PagerFilter pagerFilter)
          For HitCollectors that need the search results to be sorted, use this method.
 long searchCount(SearchRequest request, User user)
          Return the number of issues matching a search request.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LuceneSearchProvider

public LuceneSearchProvider(IssueFactory issueFactory,
                            IssueManager issueManager,
                            SearchProviderFactory searchProviderFactory,
                            PermissionManager permissionManager)
Method Detail

searchCount

public long searchCount(SearchRequest request,
                        User user)
                 throws SearchException
Description copied from interface: SearchProvider
Return the number of issues matching a search request. Note: This does not load all results into memory and provides better performance than SearchProvider.search(SearchRequest,com.opensymphony.user.User,com.atlassian.jira.web.bean.PagerFilter)

Specified by:
searchCount in interface SearchProvider
Returns:
Number of matching results.
Throws:
SearchException

search

public void search(SearchRequest request,
                   User user,
                   org.apache.lucene.search.HitCollector hitCollector)
            throws IOException,
                   SearchException
Description copied from interface: SearchProvider
Create a search, and for each match, call hitCollector.collect(). HitCollectors 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).

Specified by:
search in interface SearchProvider
Throws:
IOException
SearchException

searchAndSort

public void searchAndSort(SearchRequest request,
                          User user,
                          DocumentHitCollector hitCollector,
                          PagerFilter pagerFilter)
                   throws IOException,
                          SearchException
Description copied from interface: SearchProvider
For HitCollectors that need the search results to be sorted, use this method. However, this is much slower than using SearchProvider.search(SearchRequest,com.opensymphony.user.User,org.apache.lucene.search.HitCollector). You may limit the number of results being collected by the HitCollector 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).

Specified by:
searchAndSort in interface SearchProvider
Throws:
IOException
SearchException

runSearch

public static org.apache.lucene.search.Hits runSearch(org.apache.lucene.search.Searcher searcher,
                                                      org.apache.lucene.search.Query query,
                                                      org.apache.lucene.search.Filter filter,
                                                      org.apache.lucene.search.SortField[] sortFields)
                                               throws IOException
Throws:
IOException

search

public List search(SearchRequest request,
                   User searcher)
            throws SearchException
Deprecated. 

This is the deprecated method on the interface, consider retiring...

Specified by:
search in interface SearchProvider
Throws:
SearchException

search

public SearchResults search(SearchRequest request,
                            User searcher,
                            PagerFilter pager)
                     throws SearchException
Description copied from interface: SearchProvider
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 SearchProvider.searchCount(SearchRequest,com.opensymphony.user.User) as it provides better performance.

Specified by:
search in interface SearchProvider
pager - Pager filter (use PagerFilter.getUnlimitedFilter() to get all issues).
Returns:
A SearchResults object which basically stores a list or resulting issues.
Throws:
SearchException

search

public SearchResults search(SearchRequest request,
                            User searcher,
                            PagerFilter pager,
                            org.apache.lucene.search.Query andQuery)
                     throws SearchException
Description copied from interface: SearchProvider
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 SearchProvider.searchCount(SearchRequest,com.opensymphony.user.User) as it provides better performance.

Specified by:
search in interface SearchProvider
pager - Pager filter (use PagerFilter.getUnlimitedFilter() to get all issues).
andQuery - Query to join with the request. Basically an easy way to filter results if needed.
Returns:
A SearchResults object which basically stores a list or resulting issues.
Throws:
SearchException


Copyright © 2002-2008 Atlassian. All Rights Reserved.