Class ElasticSearchNativePageProvider
- java.lang.Object
-
- org.nuxeo.ecm.platform.query.api.AbstractPageProvider<DocumentModel>
-
- org.nuxeo.elasticsearch.provider.ElasticSearchNativePageProvider
-
- All Implemented Interfaces:
Serializable
,PageProvider<DocumentModel>
public class ElasticSearchNativePageProvider extends AbstractPageProvider<DocumentModel>
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
CORE_SESSION_PROPERTY
protected Map<String,Aggregate<? extends Bucket>>
currentAggregates
protected List<DocumentModel>
currentPageDocuments
protected static Log
log
static String
SEARCH_ON_ALL_REPOSITORIES_PROPERTY
-
Fields inherited from class org.nuxeo.ecm.platform.query.api.AbstractPageProvider
currentEntryIndex, currentHigherNonEmptyPageIndex, currentSelectPage, definition, error, errorMessage, highlights, maxPageSize, name, offset, PAGEPROVIDER_TRACK_PROPERTY_NAME, pageProviderChangedListener, pageSize, pageSizeOptions, parameters, properties, quickFilters, resultsCount, searchDocumentModel, selectedEntries, SKIPPED_SCHEMAS_FOR_SEARCHFIELD, sortable, sortInfos, tracking
-
Fields inherited from interface org.nuxeo.ecm.platform.query.api.PageProvider
DEFAULT_MAX_PAGE_SIZE, DEFAULT_MAX_PAGE_SIZE_RUNTIME_PROP, HIGHLIGHT_CTX_DATA, PAGE_LIMIT_UNKNOWN, SKIP_AGGREGATES_PROP, UNKNOWN_SIZE, UNKNOWN_SIZE_AFTER_QUERY
-
-
Constructor Summary
Constructors Constructor Description ElasticSearchNativePageProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Map<String,Aggregate<? extends Bucket>>
getAggregates()
protected CoreSession
getCoreSession()
List<DocumentModel>
getCurrentPage()
Returns the list of current page items.boolean
hasAggregateSupport()
boolean
isNativeQuery()
protected org.elasticsearch.index.query.QueryBuilder
makeQueryBuilder()
protected void
pageChanged()
Page change hook, to override for custom behaviorvoid
refresh()
Refresh hook, to override for custom behaviorprotected boolean
searchOnAllRepositories()
-
Methods inherited from class org.nuxeo.ecm.platform.query.api.AbstractPageProvider
addQuickFilter, addSortInfo, fireSearchEvent, firstPage, getAggregateDefinitions, getAvailableQuickFilters, getBooleanProperty, getCurrentEntry, getCurrentHigherNonEmptyPageIndex, getCurrentPageIndex, getCurrentPageOffset, getCurrentPageSize, getCurrentPageStatus, getCurrentSelectPage, getDefaultMaxPageSize, getDefinition, getError, getErrorMessage, getHighlights, getMaxNumberOfEmptyPages, getMaxPageSize, getMinMaxPageSize, getName, getNumberOfPages, getPageLimit, getPageSize, getPageSizeOptions, getParameters, getParametersChanged, getProperties, getQuickFilters, getResultsCount, getResultsCountLimit, getSearchDocumentModel, getSortInfo, getSortInfoIndex, getSortInfos, hasChangedParameters, hasError, incorporateAggregates, isLastPageAvailable, isNextEntryAvailable, isNextPageAvailable, isPreviousEntryAvailable, isPreviousPageAvailable, isSkipAggregates, isSortable, isTrackingEnabled, lastPage, nextEntry, nextPage, notifyPageChanged, notifyRefresh, previousEntry, previousPage, searchDocumentModelChanged, setCurrentEntry, setCurrentEntryIndex, setCurrentHigherNonEmptyPageIndex, setCurrentPage, setCurrentPageIndex, setCurrentPageOffset, setDefinition, setHighlights, setMaxPageSize, setName, setPageProviderChangedListener, setPageSize, setPageSizeOptions, setParameters, setProperties, setQuickFilters, setResultsCount, setSearchDocumentModel, setSelectedEntries, setSortable, setSortInfo, setSortInfo, setSortInfos, sortInfoChanged
-
-
-
-
Field Detail
-
CORE_SESSION_PROPERTY
public static final String CORE_SESSION_PROPERTY
- See Also:
- Constant Field Values
-
SEARCH_ON_ALL_REPOSITORIES_PROPERTY
public static final String SEARCH_ON_ALL_REPOSITORIES_PROPERTY
- See Also:
- Constant Field Values
-
log
protected static final Log log
-
currentPageDocuments
protected List<DocumentModel> currentPageDocuments
-
-
Method Detail
-
getAggregates
public Map<String,Aggregate<? extends Bucket>> getAggregates()
- Specified by:
getAggregates
in interfacePageProvider<DocumentModel>
- Overrides:
getAggregates
in classAbstractPageProvider<DocumentModel>
-
getCurrentPage
public List<DocumentModel> getCurrentPage()
Description copied from class:AbstractPageProvider
Returns the list of current page items.Custom implementation can be added here, based on the page provider properties, parameters and
WhereClauseDefinition
on thePageProviderDefinition
, as well as search document, sort information, etc...Implementation of this method usually consists in setting a non-null value to a field caching current items, and nullifying this field by overriding
AbstractPageProvider.pageChanged()
andAbstractPageProvider.refresh()
.Fields
AbstractPageProvider.errorMessage
andAbstractPageProvider.error
can also be filled to provide accurate feedback in case an error occurs during the search.When items are retrieved, a call to
AbstractPageProvider.setResultsCount(long)
should be made to ensure proper pagination as implemented in this abstract class. The implementation inCoreQueryAndFetchPageProvider
is a good example when the total results count is known.If for performance reasons, for instance, the number of results cannot be known, a fall-back strategy can be applied to provide the "next" button but not the "last" one, by calling
AbstractPageProvider.getCurrentHigherNonEmptyPageIndex()
andAbstractPageProvider.setCurrentHigherNonEmptyPageIndex(int)
. In this case,CoreQueryDocumentPageProvider
is a good example.- Specified by:
getCurrentPage
in interfacePageProvider<DocumentModel>
- Specified by:
getCurrentPage
in classAbstractPageProvider<DocumentModel>
- Returns:
- the current page
-
hasAggregateSupport
public boolean hasAggregateSupport()
- Specified by:
hasAggregateSupport
in interfacePageProvider<DocumentModel>
- Overrides:
hasAggregateSupport
in classAbstractPageProvider<DocumentModel>
-
makeQueryBuilder
protected org.elasticsearch.index.query.QueryBuilder makeQueryBuilder()
-
pageChanged
protected void pageChanged()
Description copied from class:AbstractPageProvider
Page change hook, to override for custom behaviorWhen overriding it, call
super.pageChanged()
as last statement to make sure that thePageProviderChangedListener
is called with the up-to-date @{code PageProvider} state.- Overrides:
pageChanged
in classAbstractPageProvider<DocumentModel>
-
refresh
public void refresh()
Description copied from class:AbstractPageProvider
Refresh hook, to override for custom behaviorWhen overriding it, call
super.refresh()
as last statement to make sure that thePageProviderChangedListener
is called with the up-to-date @{code PageProvider} state.- Specified by:
refresh
in interfacePageProvider<DocumentModel>
- Overrides:
refresh
in classAbstractPageProvider<DocumentModel>
-
getCoreSession
protected CoreSession getCoreSession()
-
searchOnAllRepositories
protected boolean searchOnAllRepositories()
-
isNativeQuery
public boolean isNativeQuery()
-
-