Package org.apache.wiki.search

## Class SearchMatcher

- java.lang.Object
- - org.apache.wiki.search.SearchMatcher

    public class SearchMatcher
    extends java.lang.Object

SearchMatcher performs the task of matching a search query to a page's contents. This utility class is isolated to simplify WikiPageProvider implementations and to offer an easy target for upgrades. The upcoming(?) TranslatorReader rewrite will presumably invalidate this, among other things.

Since:
  2.1.5

### Nested Class Summary

Nested Classes
`class` `SearchMatcher.SearchResultImpl` A local search result.

### Constructor Summary

Constructors
`SearchMatcher​(Engine engine, QueryItem[] queries)` Creates a new SearchMatcher.
`SearchMatcher​(WikiEngine engine, QueryItem[] queries)` Deprecated. kept for compatibility with page/attachment providers not using public API.

### Method Summary

All Methods Instance Methods Concrete Methods
`SearchResult` `matchPageContent​(java.lang.String wikiname, java.lang.String pageText)` Compares the page content, available through the given stream, to the query items of this matcher.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SearchMatcher

    public SearchMatcher​(Engine engine,
                         QueryItem[] queries)

Creates a new SearchMatcher.

Parameters:
  `engine` - The Engine
  `queries` - A list of queries

#### SearchMatcher

    @Deprecated
    public SearchMatcher​(WikiEngine engine,
                         QueryItem[] queries)

Deprecated.
kept for compatibility with page/attachment providers not using public API. Use `SearchMatcher(Engine, QueryItem)` instead.
Creates a new SearchMatcher.

Parameters:
  `engine` - The Engine
  `queries` - A list of queries

### Method Detail

#### matchPageContent

    public SearchResult matchPageContent​(java.lang.String wikiname,
                                         java.lang.String pageText)
                                  throws java.io.IOException

Compares the page content, available through the given stream, to the query items of this matcher. Returns a search result object describing the quality of the match.

This method would benefit of regexps (1.4) and streaming. FIXME!

Parameters:
  `wikiname` - The name of the page
  `pageText` - The content of the page
Returns:
  A SearchResult item, or null, there are no queries
Throws:
  `java.io.IOException` - If reading page content fails