Searchable.java
01 /*
02  *  Searchable.java
03  *
04  *  Niraj Aswani, 19/March/07
05  *
06  *  $Id: Searchable.html,v 1.0 2007/03/19 16:22:01 niraj Exp $
07  */
08 package gate.creole.annic;
09 
10 import java.util.Map;
11 
12 /**
13  * The interface declares methods which should be implemented by an
14  * object wishing to get indexed and being searchable.
15  
16  @author niraj
17  
18  */
19 public interface Searchable {
20 
21   /**
22    * This method is used to specify the indexer which is used to index
23    * documents
24    
25    @param indexer
26    @param parameters - parameters required by the specific
27    *          implementation of provided indexer
28    @throws IndexException
29    */
30   public void setIndexer(Indexer indexer, Map<String,Object> parametersthrows IndexException;
31 
32   /**
33    * Returns the Indexer
34    */
35   public Indexer getIndexer();
36 
37   /**
38    * This method is used to specify the searcher which is used for
39    * searchering the index
40    
41    @param searcher
42    @throws SearchException
43    */
44   public void setSearcher(Searcher searcherthrows SearchException;
45 
46   /**
47    * Returns the Searcher
48    */
49   public Searcher getSearcher();
50 
51   /**
52    @param query
53    @param searchParameters - parameters required for searching an
54    *          index (e.g. location of the index)
55    @return true if the search was successful
56    @throws SearchException
57    */
58   public boolean search(String query, Map<String,Object> searchParameters)
59           throws SearchException;
60 
61   /**
62    @param numberOfPatterns
63    @return an Array of Hit that has atleast a document ID, start and
64    *         end offset and the original query string
65    @throws SearchException
66    */
67   public Hit[] next(int numberOfPatternsthrows SearchException;
68 
69 }