org.appng.search

## Interface SearchProvider

- All Known Implementing Classes:
    StandardSearcher

      public interface SearchProvider

  When performing a global search within a `Site`, every `Application` of the site is checked for `SearchProvider`s offering some `Document`s.
  Author:
    Matthias Müller
  See Also:
    `Document`, `FeatureProvider.getIndexer()`, `DocumentProvider`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MAX_HITS`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Iterable<Document>` | `doSearch(Environment env, Site site, Application application, org.apache.lucene.store.Directory directory, String term, String language, String[] parseFields, org.apache.lucene.analysis.Analyzer analyzer, String highlightWith, Map<String,String> parameters)` Performs the actual search

- - ### Field Detail

    - #### MAX_HITS

          static final int MAX_HITS

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### doSearch

          Iterable<Document> doSearch(Environment env,
                                      Site site,
                                      Application application,
                                      org.apache.lucene.store.Directory directory,
                                      String term,
                                      String language,
                                      String[] parseFields,
                                      org.apache.lucene.analysis.Analyzer analyzer,
                                      String highlightWith,
                                      Map<String,String> parameters)
                               throws IOException

      Performs the actual search
      Parameters:
        `env` - the current `Environment`
        `site` - the current `Site`
        `application` - the current `Application`
        `directory` - the `Directory` representing the current `Site`'s Lucene index.
        Note that it only makes sense to use this directory for searching if the `Application` also contributes some `Document`s to the `Site`'s global index by using `FeatureProvider.getIndexer()` or implementing `DocumentProvider`. Otherwise, the `Application` might have it's own Lucene index or even get the `Document`s from somewhere else (for example from the database or filesystem).
        `term` - the search term
        `language` - the language for the search
        `parseFields` - the fields to search
        `analyzer` - the `Analyzer` to use
        `highlightWith` - a tagname to highlight fragments with, e.g `span` or `div`
        `parameters` - some custom parameters for this search
      Returns:
        an `Iterable`<`Document`> containing the found `Document`s
      Throws:
        `IOException` - if an error occurs while searching

Copyright © 2011–2023 aiticon GmbH. All rights reserved.