public class ElasticSearchNxqlPageProvider extends CoreQueryDocumentPageProvider
| Modifier and Type | Field and Description | 
|---|---|
static String | 
CORE_SESSION_PROPERTY  | 
protected HashMap<String,Aggregate<? extends Bucket>> | 
currentAggregates  | 
static String | 
DEFAULT_ES_MAX_RESULT_WINDOW_VALUE  | 
static String | 
ES_MAX_RESULT_WINDOW_PROPERTY  | 
protected static org.apache.logging.log4j.Logger | 
log  | 
protected Long | 
maxResultWindow  | 
static String | 
SEARCH_ON_ALL_REPOSITORIES_PROPERTY  | 
CHECK_QUERY_CACHE_PROPERTY, currentPageDocuments, DEFAULT_NAVIGATION_RESULTS_KEY, DEFAULT_NAVIGATION_RESULTS_PROPERTY, DEFAULT_NAVIGATION_RESULTS_VALUE, DETACH_DOCUMENTS_PROPERTY, MAX_RESULTS_PROPERTY, maxResults, PAGE_SIZE_RESULTS_KEY, query, USE_UNRESTRICTED_SESSION_PROPERTYcurrentEntryIndex, 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, trackingDEFAULT_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 and Description | 
|---|
ElasticSearchNxqlPageProvider()  | 
| 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. 
 | 
org.elasticsearch.index.query.QueryBuilder | 
getCurrentQueryAsEsBuilder()  | 
protected int | 
getLimit()  | 
long | 
getMaxResultWindow()
Returns the max result window where the PP can navigate without raising Elasticsearch
 QueryPhaseExecutionException. 
 | 
long | 
getPageLimit()
Returns the page limit. 
 | 
long | 
getResultsCountLimit()
Limit of number of results beyond which the page provider may not be able to compute  
#getResultsCount())
 or navigate. | 
boolean | 
hasAggregateSupport()  | 
protected void | 
incorporateAggregates(Map<String,Serializable> eventProps)
Extends the default implementation to add results of aggregates 
 | 
boolean | 
isLastPageAvailable()
Returns a boolean expressing if the last page can be displayed. 
 | 
boolean | 
isNextPageAvailable()
Returns a boolean expressing if there are further pages. 
 | 
protected void | 
pageChanged()
Page change hook, to override for custom behavior 
 | 
void | 
refresh()
Refresh hook, to override for custom behavior 
 | 
protected boolean | 
searchOnAllRepositories()  | 
void | 
setMaxResultWindow(long maxResultWindow)
Set the max result window where the PP can navigate, for testing purpose. 
 | 
buildQuery, checkQueryCache, detachDocuments, getCurrentQuery, getCurrentSelectPage, getFilter, getMaxResults, rewindSelectablePage, setMaxResults, useUnrestrictedSessionaddQuickFilter, addSortInfo, fireSearchEvent, firstPage, getAggregateDefinitions, getAvailableQuickFilters, getBooleanProperty, getCurrentEntry, getCurrentHigherNonEmptyPageIndex, getCurrentPageIndex, getCurrentPageOffset, getCurrentPageSize, getCurrentPageStatus, getDefaultMaxPageSize, getDefinition, getError, getErrorMessage, getHighlights, getMaxNumberOfEmptyPages, getMaxPageSize, getMinMaxPageSize, getName, getNumberOfPages, getPageSize, getPageSizeOptions, getParameters, getParametersChanged, getProperties, getQuickFilters, getResultsCount, getSearchDocumentModel, getSortInfo, getSortInfoIndex, getSortInfos, hasChangedParameters, hasError, isNextEntryAvailable, 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, sortInfoChangedpublic static final String CORE_SESSION_PROPERTY
public static final String SEARCH_ON_ALL_REPOSITORIES_PROPERTY
public static final String ES_MAX_RESULT_WINDOW_PROPERTY
public static final String DEFAULT_ES_MAX_RESULT_WINDOW_VALUE
protected static final org.apache.logging.log4j.Logger log
protected HashMap<String,Aggregate<? extends Bucket>> currentAggregates
protected Long maxResultWindow
public ElasticSearchNxqlPageProvider()
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 CoreQueryDocumentPageProviderprotected int getLimit()
public org.elasticsearch.index.query.QueryBuilder getCurrentQueryAsEsBuilder()
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 CoreQueryDocumentPageProviderpublic 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 CoreQueryDocumentPageProviderprotected CoreSession getCoreSession()
getCoreSession in class CoreQueryDocumentPageProviderprotected boolean searchOnAllRepositories()
public boolean hasAggregateSupport()
hasAggregateSupport in interface PageProvider<DocumentModel>hasAggregateSupport in class AbstractPageProvider<DocumentModel>public Map<String,Aggregate<? extends Bucket>> getAggregates()
getAggregates in interface PageProvider<DocumentModel>getAggregates in class AbstractPageProvider<DocumentModel>protected void incorporateAggregates(Map<String,Serializable> eventProps)
incorporateAggregates in class AbstractPageProvider<DocumentModel>public boolean isLastPageAvailable()
PageProviderisLastPageAvailable in interface PageProvider<DocumentModel>isLastPageAvailable in class AbstractPageProvider<DocumentModel>public boolean isNextPageAvailable()
PageProviderisNextPageAvailable in interface PageProvider<DocumentModel>isNextPageAvailable in class AbstractPageProvider<DocumentModel>public long getPageLimit()
CoreQueryDocumentPageProvidergetPageLimit in interface PageProvider<DocumentModel>getPageLimit in class CoreQueryDocumentPageProviderpublic long getMaxResultWindow()
from + size must be less than or equal to this value.public long getResultsCountLimit()
PageProvider#getResultsCount())
 or navigate.
 
 Requesting results beyond this limit may result in error. When #getResultsCount()) is negative, it means
 there may be more results than this limit.
 
0 means there is no limit.
getResultsCountLimit in interface PageProvider<DocumentModel>getResultsCountLimit in class CoreQueryDocumentPageProviderpublic void setMaxResultWindow(long maxResultWindow)
Copyright © 2019 Nuxeo. All rights reserved.