public class ElasticSearchRestDataContext extends QueryPostprocessDataContext implements DataContext, UpdateableDataContext
SimpleTableDef class.| Modifier and Type | Field and Description |
|---|---|
static String |
FIELD_ID |
static String |
TIMEOUT_SCROLL |
INFORMATION_SCHEMA_NAME| Constructor and Description |
|---|
ElasticSearchRestDataContext(io.searchbox.client.JestClient client,
String indexName)
Constructs a
ElasticSearchRestDataContext and automatically detects
the schema structure/view on all indexes (see
detectTable(JsonObject, String)). |
ElasticSearchRestDataContext(io.searchbox.client.JestClient client,
String indexName,
SimpleTableDef... tableDefinitions)
Constructs a
ElasticSearchRestDataContext. |
| Modifier and Type | Method and Description |
|---|---|
protected Number |
executeCountQuery(Table table,
List<FilterItem> whereItems,
boolean functionApproximationAllowed)
Executes a simple count query, if possible.
|
protected Row |
executePrimaryKeyLookupQuery(Table table,
List<SelectItem> selectItems,
Column primaryKeyColumn,
Object keyValue)
Executes a query which obtains a row by primary key (as defined by
Column.isPrimaryKey()). |
void |
executeUpdate(UpdateScript update)
Submits an
UpdateScript for execution on the DataContext. |
io.searchbox.client.JestClient |
getElasticSearchClient()
Gets the
JestClient that this DataContext is wrapping. |
String |
getIndexName()
Gets the name of the index that this
DataContext is working on. |
protected Schema |
getMainSchema() |
protected String |
getMainSchemaName() |
protected DataSet |
materializeMainSchemaTable(Table table,
Column[] columns,
int maxRows)
Executes a simple one-table query against a table in the main schema of
the subclasses of this class.
|
protected DataSet |
materializeMainSchemaTable(Table table,
List<SelectItem> selectItems,
List<FilterItem> whereItems,
int firstRow,
int maxRows)
Execute a simple one-table query against a table in the main schema of
the subclasses of this class.
|
addConverter, executeQuery, getDefaultSchemaName, getMainSchemaInternal, getSchemaByNameInternal, getSchemaNamesInternal, isMainSchemaTable, isScalarFunctionMaterialized, materializeFromItem, materializeMainSchemaTable, materializeMainSchemaTable, materializeTable, materializeTablecompileQuery, executeQuery, executeQuery, getColumnByQualifiedLabel, getDefaultSchema, getSchemaByName, getSchemaNames, getSchemas, getTableByQualifiedLabel, isQualifiedPathDelim, onSchemaCacheRefreshed, parseQuery, query, refreshSchemasclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcompileQuery, executeQuery, executeQuery, executeQuery, getColumnByQualifiedLabel, getDefaultSchema, getSchemaByName, getSchemaNames, getSchemas, getTableByQualifiedLabel, parseQuery, query, refreshSchemaspublic static final String FIELD_ID
public static final String TIMEOUT_SCROLL
public ElasticSearchRestDataContext(io.searchbox.client.JestClient client,
String indexName,
SimpleTableDef... tableDefinitions)
ElasticSearchRestDataContext. This constructor accepts a
custom array of SimpleTableDefs which allows the user to define
his own view on the indexes in the engine.client - the ElasticSearch clientindexName - the name of the ElasticSearch index to representtableDefinitions - an array of SimpleTableDefs, which define the table
and column model of the ElasticSearch index.public ElasticSearchRestDataContext(io.searchbox.client.JestClient client,
String indexName)
ElasticSearchRestDataContext and automatically detects
the schema structure/view on all indexes (see
detectTable(JsonObject, String)).client - the ElasticSearch clientindexName - the name of the ElasticSearch index to representprotected Schema getMainSchema() throws MetaModelException
getMainSchema in class QueryPostprocessDataContextMetaModelExceptionprotected String getMainSchemaName() throws MetaModelException
getMainSchemaName in class QueryPostprocessDataContextMetaModelExceptionprotected DataSet materializeMainSchemaTable(Table table, List<SelectItem> selectItems, List<FilterItem> whereItems, int firstRow, int maxRows)
QueryPostprocessDataContextQueryPostprocessDataContext.materializeMainSchemaTable(Table, List, int, int) and apply
WHERE item filtering afterwards.materializeMainSchemaTable in class QueryPostprocessDataContextprotected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows)
QueryPostprocessDataContextmaterializeMainSchemaTable in class QueryPostprocessDataContexttable - the table to querycolumns - the columns of the table to querymaxRows - the maximum amount of rows needed or -1 if all rows are
wanted.protected Row executePrimaryKeyLookupQuery(Table table, List<SelectItem> selectItems, Column primaryKeyColumn, Object keyValue)
QueryPostprocessDataContextColumn.isPrimaryKey()). This method is provided to allow
subclasses to optimize lookup queries since they are quite common and
often a datastore can retrieve the row using some specialized means which
is much more performant than scanning all records manually.executePrimaryKeyLookupQuery in class QueryPostprocessDataContexttable - the table on which the lookup is requested.selectItems - the items to select from the lookup query.primaryKeyColumn - the column that is the primary keykeyValue - the primary key value that is specified in the lookup query.protected Number executeCountQuery(Table table, List<FilterItem> whereItems, boolean functionApproximationAllowed)
QueryPostprocessDataContextexecuteCountQuery in class QueryPostprocessDataContexttable - the table on which the count is requested.whereItems - a (sometimes empty) list of WHERE items.functionApproximationAllowed - whether approximation is allowed or not.public void executeUpdate(UpdateScript update)
UpdateableDataContextUpdateScript for execution on the DataContext.
Since implementations of the DataContext vary quite a lot, there
is no golden rule as to how an update script will be executed. But the
implementors should strive towards handling an UpdateScript as a
single transactional change to the data store.executeUpdate in interface UpdateableDataContextupdate - the update script to executepublic io.searchbox.client.JestClient getElasticSearchClient()
JestClient that this DataContext is wrapping.public String getIndexName()
DataContext is working on.Copyright © 2007–2016 The Apache Software Foundation. All rights reserved.