public class ElasticSearchNativePageProvider extends AbstractPageProvider<DocumentModel>
Modifier and Type | Field and Description |
---|---|
static String |
CORE_SESSION_PROPERTY |
protected Map<String,Aggregate<? extends Bucket>> |
currentAggregates |
protected List<DocumentModel> |
currentPageDocuments |
protected static org.apache.commons.logging.Log |
log |
static String |
SEARCH_ON_ALL_REPOSITORIES_PROPERTY |
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
DEFAULT_MAX_PAGE_SIZE, DEFAULT_MAX_PAGE_SIZE_RUNTIME_PROP, HIGHLIGHT_CTX_DATA, PAGE_LIMIT_UNKNOWN, UNKNOWN_SIZE, UNKNOWN_SIZE_AFTER_QUERY
Constructor and Description |
---|
ElasticSearchNativePageProvider() |
Modifier and Type | Method and 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 behavior
|
void |
refresh()
Refresh hook, to override for custom behavior
|
protected boolean |
searchOnAllRepositories() |
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, getSearchDocumentModel, getSortInfo, getSortInfoIndex, getSortInfos, hasChangedParameters, hasError, incorporateAggregates, isLastPageAvailable, isNextEntryAvailable, isNextPageAvailable, isPreviousEntryAvailable, isPreviousPageAvailable, 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
public static final String CORE_SESSION_PROPERTY
public static final String SEARCH_ON_ALL_REPOSITORIES_PROPERTY
protected static final org.apache.commons.logging.Log log
protected List<DocumentModel> currentPageDocuments
protected Map<String,Aggregate<? extends Bucket>> currentAggregates
public ElasticSearchNativePageProvider()
public Map<String,Aggregate<? extends Bucket>> getAggregates()
getAggregates
in interface PageProvider<DocumentModel>
getAggregates
in class AbstractPageProvider<DocumentModel>
public List<DocumentModel> getCurrentPage()
AbstractPageProvider
Custom implementation can be added here, based on the page provider properties, parameters and
WhereClauseDefinition
on the PageProviderDefinition
, 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()
and AbstractPageProvider.refresh()
.
Fields AbstractPageProvider.errorMessage
and AbstractPageProvider.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 in CoreQueryAndFetchPageProvider
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()
and AbstractPageProvider.setCurrentHigherNonEmptyPageIndex(int)
. In this case,
CoreQueryDocumentPageProvider
is a good example.
getCurrentPage
in interface PageProvider<DocumentModel>
getCurrentPage
in class AbstractPageProvider<DocumentModel>
public boolean hasAggregateSupport()
hasAggregateSupport
in interface PageProvider<DocumentModel>
hasAggregateSupport
in class AbstractPageProvider<DocumentModel>
protected org.elasticsearch.index.query.QueryBuilder makeQueryBuilder()
protected void pageChanged()
AbstractPageProvider
When overriding it, call super.pageChanged()
as last statement to make sure that the
PageProviderChangedListener
is called with the up-to-date @{code PageProvider} state.
pageChanged
in class AbstractPageProvider<DocumentModel>
public void refresh()
AbstractPageProvider
When overriding it, call super.refresh()
as last statement to make sure that the
PageProviderChangedListener
is called with the up-to-date @{code PageProvider} state.
refresh
in interface PageProvider<DocumentModel>
refresh
in class AbstractPageProvider<DocumentModel>
protected CoreSession getCoreSession()
protected boolean searchOnAllRepositories()
public boolean isNativeQuery()
Copyright © 2017 Nuxeo. All rights reserved.