Package org.apache.wiki.search.kendra
Class KendraSearchProvider
- java.lang.Object
-
- org.apache.wiki.search.kendra.KendraSearchProvider
-
- All Implemented Interfaces:
WikiProvider
,SearchProvider
public class KendraSearchProvider extends java.lang.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
-
-
Field Summary
-
Fields inherited from interface org.apache.wiki.api.providers.WikiProvider
LATEST_VERSION
-
-
Constructor Summary
Constructors Constructor Description KendraSearchProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected com.amazonaws.services.kendra.AWSkendra
buildClient()
java.util.Collection<SearchResult>
findPages(java.lang.String query, Context wikiContext)
Search for pages matching a search query.java.lang.String
getDataSourceName()
java.lang.String
getIndexName()
com.amazonaws.services.kendra.AWSkendra
getKendra()
java.lang.String
getProviderInfo()
Return a valid HTML string for information.void
initialize(Engine engine, java.util.Properties properties)
Initializes the page provider.void
initializeIndexAndDataSource()
This method initialize the AWS Kendra Index and Datasources to be used.void
pageRemoved(Page page)
Delete a page from the search index.void
reindexPage(Page page)
Adds a WikiPage for indexing queue.void
setKendra(com.amazonaws.services.kendra.AWSkendra kendra)
-
-
-
Constructor Detail
-
KendraSearchProvider
public KendraSearchProvider()
-
-
Method Detail
-
initialize
public void initialize(Engine engine, java.util.Properties properties) throws NoRequiredPropertyException, java.io.IOException
Initializes the page provider.- Specified by:
initialize
in interfaceWikiProvider
- Parameters:
engine
- Engine to own this providerproperties
- A set of properties used to initialize this provider- Throws:
NoRequiredPropertyException
- If the provider needs a property which is not found in the property setjava.io.IOException
- If there is an IO problem
-
getProviderInfo
public java.lang.String getProviderInfo()
Return a valid HTML string for information. May be anything.- Specified by:
getProviderInfo
in interfaceWikiProvider
- Returns:
- A string describing the provider.
-
pageRemoved
public void pageRemoved(Page page)
Delete a page from the search index.- Specified by:
pageRemoved
in interfaceSearchProvider
- Parameters:
page
- Page to remove from search index.
-
reindexPage
public void reindexPage(Page page)
Adds a WikiPage for indexing queue. This is called a queue, since this method is expected to return pretty quickly, and indexing to be done in a separate thread.- Specified by:
reindexPage
in interfaceSearchProvider
- Parameters:
page
- The WikiPage to be indexed.
-
findPages
public java.util.Collection<SearchResult> findPages(java.lang.String query, Context wikiContext) throws ProviderException, java.io.IOException
Search for pages matching a search query.- Specified by:
findPages
in interfaceSearchProvider
- Parameters:
query
- query to search forwikiContext
- the context within which to run the search- Returns:
- collection of pages that match query
- Throws:
ProviderException
- if the search provider failed.java.io.IOException
- if for some reason the query could not be executed.
-
initializeIndexAndDataSource
public void 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 java.lang.String getIndexName()
-
getDataSourceName
public java.lang.String getDataSourceName()
-
-