Class KendraSearchProvider

java.lang.Object
org.apache.wiki.search.kendra.KendraSearchProvider
All Implemented Interfaces:
org.apache.wiki.api.providers.WikiProvider, SearchProvider

public class KendraSearchProvider extends Object implements SearchProvider
Search provider that implements {link SearchProvider} using AWS Kendra for indexing. Note that we are using a Custom DataSource which limits the attributes that can be uploaded / searched for each page (as per https://docs.aws.amazon.com/kendra/latest/dg/custom-attributes.html). This could be overcome by using an S3 bucket where any custom attributes can be added.
Since:
2.11.0
  • Constructor Details

  • Method Details

    • initialize

      public void initialize(org.apache.wiki.api.core.Engine engine, Properties properties) throws org.apache.wiki.api.exceptions.NoRequiredPropertyException, IOException
      Specified by:
      initialize in interface org.apache.wiki.api.providers.WikiProvider
      Throws:
      org.apache.wiki.api.exceptions.NoRequiredPropertyException
      IOException
    • getProviderInfo

      Specified by:
      getProviderInfo in interface org.apache.wiki.api.providers.WikiProvider
    • pageRemoved

      public void pageRemoved(org.apache.wiki.api.core.Page page)
      Specified by:
      pageRemoved in interface SearchProvider
    • reindexPage

      public void reindexPage(org.apache.wiki.api.core.Page page)
      Specified by:
      reindexPage in interface SearchProvider
    • findPages

      public Collection<org.apache.wiki.api.search.SearchResult> findPages(String query, org.apache.wiki.api.core.Context wikiContext) throws org.apache.wiki.api.exceptions.ProviderException, IOException
      Specified by:
      findPages in interface SearchProvider
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
      IOException
    • initializeIndexAndDataSource

      This method initialize the AWS Kendra Index and Datasources to be used.
    • getKendra

      public com.amazonaws.services.kendra.AWSkendra getKendra()
    • setKendra

      public void setKendra(com.amazonaws.services.kendra.AWSkendra kendra)
    • buildClient

      protected com.amazonaws.services.kendra.AWSkendra buildClient()
    • getIndexName

      public String getIndexName()
    • getDataSourceName