01: /*
02: JSPWiki - a JSP-based WikiWiki clone.
03:
04: Copyright (C) 2005 Janne Jalkanen (Janne.Jalkanen@iki.fi)
05:
06: This program is free software; you can redistribute it and/or modify
07: it under the terms of the GNU Lesser General Public License as published by
08: the Free Software Foundation; either version 2.1 of the License, or
09: (at your option) any later version.
10:
11: This program is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU Lesser General Public License for more details.
15:
16: You should have received a copy of the GNU Lesser General Public License
17: along with this program; if not, write to the Free Software
18: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: */
20: package com.ecyrd.jspwiki.search;
21:
22: import java.io.IOException;
23: import java.util.Collection;
24:
25: import com.ecyrd.jspwiki.WikiPage;
26: import com.ecyrd.jspwiki.WikiProvider;
27: import com.ecyrd.jspwiki.providers.ProviderException;
28:
29: /**
30: * Interface for the search providers that handle searching the Wiki
31: *
32: * @author Arent-Jan Banck
33: * @since 2.2.21.
34: */
35: public interface SearchProvider extends WikiProvider {
36: /**
37: * Delete a page from the search index
38: * @param page Page to remove from search index
39: */
40: public void pageRemoved(WikiPage page);
41:
42: /**
43: * Adds a WikiPage for indexing queue. This is called a queue, since
44: * this method is expected to return pretty quickly, and indexing to
45: * be done in a separate thread.
46: *
47: * @param page The WikiPage to be indexed.
48: */
49: public void reindexPage(WikiPage page);
50:
51: /**
52: * Search for pages matching a search query
53: * @param query query to search for
54: * @return collection of pages that match query
55: * @throws ProviderException if the search provider failed.
56: * @throws IOException if for some reason the query could not be executed.
57: */
58: public Collection findPages(String query) throws ProviderException,
59: IOException;
60: }
|