incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [32/39] Massive changes to the thrift RPC defs, see mail list for details subject (Rows, Records, Session oh my).
Date Thu, 28 Feb 2013 03:07:37 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/Blur.thrift
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/Blur.thrift b/src/distribution/src/main/scripts/interface/Blur.thrift
deleted file mode 100644
index 74a12ab..0000000
--- a/src/distribution/src/main/scripts/interface/Blur.thrift
+++ /dev/null
@@ -1,740 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace java org.apache.blur.thrift.generated
-namespace rb blur
-namespace perl Blur
-
-/** 
-  * BlurException that carries a message plus the original stack 
-  * trace (if any). 
-  */
-exception BlurException {
-  /** 
-   * The message in the exception. 
-   */
-  1:string message,
-
-  /** 
-   * The original stack trace (if any). 
-   */
-  2:string stackTraceStr
-}
-
-/**
-  * The state of a query.<br/><br/>
-  * RUNNING - Query is running.<br/><br/>
-  * INTERRUPTED - Query has been interrupted.<br/><br/>
-  * COMPLETE - Query is complete.<br/>
-  */
-enum QueryState {
-  RUNNING,
-  INTERRUPTED,
-  COMPLETE
-}
-
-/**
- * The fields types.
- */
-enum TYPE {
-  /**
-   * This type uses the StandardAnalyzer for indexing and stores the value.
-   */
-  TEXT,
-
-  /**
-   * This type is indexed as a String (Lucene StringField) as provided and stores the value.
-   * NOTE: The String is not tokenized, so the String is indexed as a single value.
-   */
-  STRING,
-
-  /**
-   * This type is indexed as an Integer (Lucene IntegerField) as provided and stores the value.
-   */
-  INT,
-
-  /**
-   * This type is indexed as an Long (Lucene LongField) as provided and stores the value.
-   */
-  LONG,
-
-  /**
-   * This type is indexed as an Float (Lucene FloatField) as provided and stores the value.
-   */
-  FLOAT,
-
-  /**
-   * This type is indexed as an Double (Lucene DoubleField) as provided and stores the value.
-   */
-  DOUBLE,
-
-  /**
-   * This type is NOT indexed but stores the value.
-   */
-  BINARY
-}
-
-enum SortType {
-    /**
-     * Sort by document score (relevance).  Sort values are Float and higher values are at the front.
-     */
-    SCORE,
-
-    /** 
-     * Sort by document number (index order).  Sort values are Integer and lower values are at the front.
-     */
-    DOC,
-
-    /**
-     * Sort using term values as Strings.  Sort values are String and lower values are at the front.
-     */
-    STRING,
-
-    /** 
-     * Sort using term values as encoded Integers.  Sort values are Integer and lower values are at the front. 
-     */
-    INT,
-
-    /** 
-     * Sort using term values as encoded Floats.  Sort values are Float and lower values are at the front. 
-     */
-    FLOAT,
-
-    /** 
-     * Sort using term values as encoded Longs.  Sort values are Long and lower values are at the front. 
-     */
-    LONG,
-
-    /** 
-     * Sort using term values as encoded Doubles.  Sort values are Double and lower values are at the front. 
-     */
-    DOUBLE,
-
-    /** 
-     * Sort using term values as encoded Shorts.  Sort values are Short and lower values are at the front. 
-     */
-    SHORT,
-
-    /** 
-     * Sort using term values as encoded Bytes.  Sort values are Byte and lower values are at the front. 
-     */
-    BYTE,
-
-    /** 
-     * Sort using term values as Strings, but comparing by value (using String.compareTo) for all 
-     * comparisons. This is typically slower than {@link #STRING}, which uses ordinals to do the sorting. 
-     */
-    STRING_VAL,
-
-    /** 
-     * Sort use byte[] index values. 
-     */
-    BYTES,
-}
-
-/**
- *
- */
-struct TableStats {
-  /**
-   *
-   */
-  1:i64 bytes,
-  /**
-   *
-   */
-  2:i64 documentCount,
-  /**
-   *
-   */
-  3:i64 queries
-}
-
-/**
- * The field schema contains the field's name and type.
- */
-struct FieldSchema {
- /**
-  * The name of the field.
-  */
- 1:string name,
- /**
-  * The type of the field.
-  */
- 2:TYPE type
-}
-
-/**
- * TableSchema contains field information that describes the a table.
- */
-struct TableSchema {
- /**
-  * List of field information for a table.
-  */
- 1:list<FieldSchema> fields,
- /**
-  * The cluster name in which this table exists.
-  */
- 2:string cluster
-}
-
-struct ClassDefinition {
- 1:string className,
- 2:map<string,binary> arguments,
- /**
-  * user can define its own way to initialize analyzer by providing javascript function.
-  * This function will always be used if defined.
-  */
- 3:string initFunction
-}
-
-/**
- * The analyzer sub type struct holds the sub field name and class definition of 
- * the sub type.  See AnalyzerType for further explanation.
- */
-struct AnalyzerSubType {
- /**
-  * The sub field name.
-  */
- 1:string subFieldName,
-
- /**
-  * The class definition that is to be used.
-  */
- 2:ClassDefinition classDefinition
-}
-
-/**
- * The Analyzer struct allows for defining an alternate analyzer class definition 
- * with optional analyzer sub types.  The sub types allow for indexing a single field 
- * with several different analyzer while only storing the value once.  For example, if 
- * field "name" was a TEXT type the class definition could be set to Lowercase 
- * analyzer and the analyzer sub types could be set to Keyword (with a sub field name 
- * of "name.key") and Standard analyzer (with a sub field name of "name.standard").  Then in 
- * queries the Lowercase analyzer would be used when "name" is referenced, Keyword 
- * analyzer would be referenced when "name.key" is referenced and Standard analyzer 
- * would be referenced when "name.standard" is referenced.
- */
-struct AnalyzerType {
- /**
-  * The field that this defined type is to operate against.
-  */
- 1:string fieldName,
- /**
-  * The class definition that is to be used.  If this field is null then the 
-  * default behavior of the field is to be used.
-  */
- 2:ClassDefinition classDefinition,
- /**
-  * The analyzer sub types that should be applied.  This can be empty or null.
-  */
- 3:list<AnalyzerSubType> analyzerSubTypes
-}
-
-/**
- * The analyzer allows for defining of alternate analyzers for the given fields.  The TYPE 
- * enum defines the default field types and the default indexing behavior for each.  The 
- * Analyzer struct allows for defining alternate behavior.  Such as a field with a TEXT 
- * type using a Lowercase Analyzer instead of the default StandardAnalyzer.
- */
-struct Analyzer {
- /**
-  * The list of AnalyzerTypes.
-  */
- 1:list<AnalyzerType> analyzerTypes
-}
-
-/**
- *
- */
-struct TableDescriptor {
-  /**
-   * The name of the table.
-   */
-  1:string name,
-
-  /**
-   * Is the table enable for queries and updates.
-   */
-  2:bool enabled = 1,
-
-  /**
-   * The number of shards in the table.
-   */
-  3:i32 shardCount = 1,
-
-  /**
-   * The storage path is a HDFS URI for storing all of the indexes.  Any valid HDFS 
-   * URI can be used such as hdfs://hostname/path, or file:///path, etc.
-   */
-  4:string storagePath,
-
-  /**
-   * The analyzer definition for this table.  If null the default behavior for each 
-   * field will be used.
-   */
-  5:Analyzer analyzer,
-
-  /**
-   * This will only allow queries to be executed on the table.  The underlying implementation 
-   * does not open the index for writing, but will refresh the index periodically.
-   */
-  6:bool readOnly = 0,
-
-  /**
-   * The default field name for any field where the field name is null.
-   */
-  7:string defaultFieldName = 'body',
-
-  /**
-   *compressionClass,compressionBlockSize,similarityClass,blockCaching = 1,blockCachingFileTypes,columnPreCache
-   */
-  8:map<string,string> properties
-}
-
-struct Session {
- 1:string sessionId,
- 2:string tableName
-}
-
-struct SortField {
- 1:string field,
- 2:SortType type, 
- 3:bool reverse
-}
-
-struct Sort {
- 1:list<SortField> fields
-}
-
-struct ScoreDoc {
- 1:double score,
- 2:i64 docLocation,
- 4:list<binary> fields
-}
-
-enum QueryType {
- STRING,JSON,BINARY
-}
-
-/**
- * The Query object describes how the query is passed.  If the 
- * type is STRING or JSON the queryString field is used.  If 
- * the BINARY type is used the queryBinary should be used.
- */
-struct Query {
- /**
-  * The query type.
-  */
- 1:QueryType type,
- /**
-  * The query to be executed.
-  */
- 2:string queryString,
- /**
-  * The query to be executed.
-  */
- 3:binary queryBinary
-}
-
-struct QueryArgs {
- /**
-  * Unique id for controlling the given query, leave null for server side assignment.
-  */
- 1:string id,
- /**
-  * If after is left null then the first N (where N is numberToFetch)
-  * ScoreDocs are fetched.  If after is not null then the first N 
-  * ScoreDocs are fetched that occur after the given ScoreDoc.
-  */
- 2:ScoreDoc after,
- /**
-  * The query to be executed.
-  */
- 3:Query query,
- /**
-  * Filter to be executed.
-  */
- 4:binary filter,
- /**
-  * The number of document locations to fetch.
-  */
- 5:i32 numberToFetch = 100,
- /**
-  * If aggregate results is left true then only a single TopFieldDocs 
-  * object will be returned from the search method.  It will contain 
-  * only the best documents from the given search with all of the 
-  * shards being sorted and aggregated together.
-  */
- 6:bool aggregateResults = 1,
- /**
-  * NOT YET IMPLEMENTED.
-  */
- 7:Sort sort,
- /**
-  * NOT YET IMPLEMENTED.  Related to sort.
-  */
- 8:bool doDocScores = 1,
- /**
-  * Calculate the max score of the search.
-  */
- 9:bool doMaxScore = 0,
-
- /**
-  * Shard indexes allows the user to specify which shards of the table to execute 
-  * the query against.  If left null, all the shards of the table are used.
-  */
- 10:list<i32> shardIndexes
-}
-
-/**
- * Contains the query status information for a query on a server.
- */
-struct QueryStatus {
-  /**
-   * The startTime as set on the server, this is when the query has started executing.  This could be different depending on the server.
-   */
-  1:i64 startTime,
-  /**
-   * The endTime as set on the server, this is when the query has stopped executing.  This could be different depending on the server.
-   */
-  2:i64 endTime,
-  /**
-   * The amount cpu time spent executing the given query.
-   */
-  3:i64 cpuTime,
-  /**
-   * The total amount of time spent executing the query.
-   */
-  4:i64 userTime,
-  /**
-   * The number of shards that this server has completed.
-   */
-  5:i32 completeShards,
-  /**
-   * The number of shards that this server has to complete.
-   */
-  6:i32 totalShards,
-  /**
-   * The state of the query.  This could be different depending on the server.
-   */
-  7:QueryState state,
-  /**
-   * The query that is executing.
-   */
-  8:QueryArgs queryArgs,
-}
-
-struct TopFieldDocs {
- 1:i32 shardIndex,
- 2:i64 totalHits,
- 3:list<ScoreDoc> scoreDocs,
- 4:double maxScore,
- 5:list<SortField> fields
-}
-
-/**
- * 
- */
-struct Field {
- /**
-  * The name of the field.
-  */
- 1:string name,
- /**
-  * The value of the field in binary form.  If the value is a string, the string should be in UTF-8 format.
-  */
- 2:binary value,
- /**
-  * The type of the field, this represents how the data is stored and the default indexing schema for the data.
-  */
- 3:TYPE type,
- /**
-  * The boost of the field.  Default of 1.0 for no change to the boost.
-  */
- 4:double boost = 1.0
-}
-
-struct Document {
- /**
-  * This list of fields to be indexed.  The same field name can be used across fields and the order of the fields will be maintained.
-  */
- 1:list<Field> fields
-}
-
-struct Term {
- /**
-  * Field name.
-  */
- 1:string field,
- /**
-  * Field values.
-  */
- 2:binary bytes
-}
-
-struct MutateOptions {
- /**
-  * The name of the table.
-  */
- 1:string table,
- /**
-  * The index of the shard in the table that the mutate will operate against.
-  */
- 2:i32 shardIndex,
- /**
-  * Setting this to true will cause the mutate call to block until the mutates are visible.
-  */
- 3:bool waitToBeVisible = 0,
- /**
-  * Whether or not to add this mutation to the write ahead log for recovery of information during a shard server crash.
-  */
- 4:bool writeAheadLog = 1
-}
-
-/**
- * Contains a the delete term as well as the documents that will be added to the index shard.
- */
-struct UpdatePackage {
- /**
-  * The term that will mark old Documents as deleted before adding the documents.
-  */
- 1:Term term,
- /**
-  * The documents to be updated.
-  */
- 2:list<Document> documents
-}
-
-/**
- * Generation keeps a reference to the Lucene generation where a mutate (add/update/delete) 
- * was performed.  This can be used to wait for that generation to be visible.
- */
-struct Generation {
- /**
-  * The table name for this generation.
-  */
- 1:string table,
- /**
-  * The shard index for this generation.
-  */
- 2:i32 shardIndex,
- /**
-  * The Lucene generation.
-  */
- 3:i64 generation
-}
-
-struct ShardLayout {
- /**
-  * The server for this layout.
-  */
- 1:string server,
- /**
-  * A list of shard ids for the given server.
-  */
- 2:list<i32> shards
-}
-
-service Blur {
-
-  // Data reading
-
-  /**
-   * Creating a session snapshots the readers during search and document 
-   * fetching.  This provides a static view of the indexes so the document
-   * ids will remain the same during a session.
-   * @param table the table name.
-   * @return the new Session.
-   */
-  Session openReadSession(1:string table) throws (1:BlurException e)
-
-  /**
-   * Runs a search with the given query arguments.  Invalid Sessions will throw a BlurException.
-   * @param session the Session.
-   * @param queryArgs the QueryArgs which contains the query, filter, sort, fetch, paging information, etc.
-   * @return the TopFieldDocs, where there is a TopFieldDocs object for each shard that was search against.
-   */
-  list<TopFieldDocs> search(1:Session session, 2:QueryArgs queryArgs) throws (1:BlurException e)
-
-  /**
-   * Fetches a document based on the DocLocation list with the fields specified.
-   * @param session the Session.
-   * @param docLocations the document locations, which include shard index and document id.
-   * @param fields the field names to fetch.
-   * @return the Documents that were requested.
-   */
-  list<Document> doc(1:Session session, 2:list<i64> docLocations, 4:set<string> fields) throws (1:BlurException e)
-
-  /**
-   * Closes the session and allows the readers to be closed.
-   * @param session the Session.
-   */
-  void closeReadSession(1:Session session) throws (1:BlurException e)
-
-  // Data mutation  
-
-  /**
-   * Add Documents to the given table in the provided shard.  If the table or 
-   * shard is not found on this shard server a BlurException will be thrown.
-   * @param options the MutateOptions provide the table name, shard index, etc.
-   * @param documents the documents to be added.  NOTE: All documents 
-   * provided to be indexed in a single segment.
-   */
-  list<Generation> addDocuments(1:MutateOptions options, 2:list<Document> documents) throws (1:BlurException e)
-
-  /**
-   * Delete Documents to the given table in the provided shard.  If the table 
-   * or shard is not found on this shard server a BlurException will be thrown.
-   * @param options the MutateOptions provide the table name, shard index, etc.
-   * @param queries the Queries that will executed and mark there resulting documents as deleted.
-   */
-  list<Generation> deleteDocumentsByQueries(1:MutateOptions options, 2:list<Query> queries) throws (1:BlurException e)
-
-  /**
-   * Delete Documents to the given table in the provided shard.  If the table 
-   * or shard is not found on this shard server a BlurException will be thrown.
-   * @param options the MutateOptions provide the table name, shard index, etc.
-   * @param queries the Terms that will be found and mark deleted all the documents to be deleted.
-   */
-  list<Generation> deleteDocuments(1:MutateOptions options, 2:list<Term> terms) throws (1:BlurException e)
-
-  /**
-   * Update Documents to the given table in the provided shard.  If the table
-   * or shard is not found on this shard server a BlurException will be thrown.
-   * @param options the MutateOptions provide the table name, shard index, etc.
-   * @param updatePackages the documents to be updated.  NOTE: All documents
-   * within a update document object are indexed in a single segment.
-   */
-  list<Generation> updateDocuments(1:MutateOptions options, 2:list<UpdatePackage> updatePackages) throws (1:BlurException e)
-
-  /**
-   * This method blocks until all the given generations are visible for reading.
-   * @param generations the list of Generation objects.
-   * @param forceRefresh forces a refresh of the indexes if true, if false will
-   * block until natural refresh occurs.
-   */
-  void blockUntilGenerationIsVisible(1:list<Generation> generations, 2:bool forceRefresh) throws (1:BlurException e)
-
-  // Cluster state.
-
-  /**
-   * Returns a list of all current running servers.
-   * @return list of servers, e.g. node1:40020.
-   */
-  list<string> serverList() throws (1:BlurException ex)
-
-  /**
-   * Gets a list shard ids for the given server and table.
-   * @param table the table name.
-   * @param server the server name, e.g. node1:40020
-   * @return list of shard ids.
-   */
-  list<i32> serverLayout(1:string table, 2:string server) throws (1:BlurException ex)
-
-  /**
-   * Gets the shard layout for each server in the cluster for the given table.
-   * @param table the table name.
-   * @return map of servers to shard layout object.
-   */
-  map<string,ShardLayout> shardLayout(1:string table) throws (1:BlurException ex)
-
-  /**
-   * Gets a list of the table names.
-   * @return list of table names.
-   */
-  list<string> tableList() throws (1:BlurException ex)
-
-  /**
-   * Is cluster in safe mode.
-   * @return safe mode boolean.
-   */
-  bool isInSafeMode() throws (1:BlurException ex)
-
-  // Table admin
-
-  /**
-   * Create a table with the given table descriptor.
-   * @param tableDescriptor the TableDescriptor.
-   */
-  void createTable(1:TableDescriptor tableDescriptor) throws (1:BlurException ex)
-
-  /**
-   * Enables a table with the given table name.
-   * @param table the table name.
-   */
-  void enableTable(1:string table) throws (1:BlurException ex)
-
-  /**
-   * Disables a table with the given table name.
-   * @param table the table name.
-   */
-  void disableTable(1:string table) throws (1:BlurException ex)
-
-  /**
-   * Removes a table with the given table name.
-   * @param table the table name.
-   * @param deleteIndexFiles boolean, whether or not to remove the indexes from the HDFS system.
-   */
-  void removeTable(1:string table, 2:bool deleteIndexFiles) throws (1:BlurException ex)
-
-  /**
-   * Returns a table descriptor for the given table.
-   * @param table the table name.
-   */
-  TableDescriptor describe(1:string table) throws (1:BlurException ex)
-  
-  // Query status
-
-  /**
-   * Cancels a query that is executing within the given session.
-   * @param session the Session.
-   * @param server the server name to receive the call, null for all servers.
-   * @param id the id of the query, (QueryArgs.id).
-   */
-  void cancelQuery(1:Session session, 2:string server, 3:string id) throws (1:BlurException ex)
-
-  /**
-   * Returns a list of the query ids of queries that have recently been executed within the given session.
-   * @param session the Session.
-   * @param server the server name to receive the call, null for all servers.
-   * @return the ids of the query objects, (QueryArgs.id).
-   */
-  map<string,list<string>> queryStatusIdList(1:Session session, 2:string server) throws (1:BlurException ex)
-
-  /**
-   * Returns the query status for the given session and query id, (QueryArgs.id).
-   * @param session the Session.
-   * @param server the server name to receive the call, null for all servers.
-   * @param id the id of the query, (QueryArgs.id).
-   * @return a map of server to the query status for the given session and id.
-   */
-  map<string,QueryStatus> queryStatus(1:Session session, 2:string server, 3:string id) throws (1:BlurException ex)
-
-  /**
-   * Returns the the schema for the given session.
-   * @param session the Session.
-   * @return the table schema.
-   */
-  TableSchema schema(1:Session session) throws (1:BlurException ex)
-
-  //TODO
-  TableStats tableStats(1:string table) throws (1:BlurException ex)
-  
-}
-
-

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/BlurCommon.thrift
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/BlurCommon.thrift b/src/distribution/src/main/scripts/interface/BlurCommon.thrift
deleted file mode 100644
index 82797b9..0000000
--- a/src/distribution/src/main/scripts/interface/BlurCommon.thrift
+++ /dev/null
@@ -1,22 +0,0 @@
-
-/** 
-  * BlurException that carries a message plus the original stack 
-  * trace (if any). 
-  */
-exception BlurException {
-  /** 
-   * The message in the exception. 
-   */
-  1:string message,
-
-  /** 
-   * The original stack trace (if any). 
-   */
-  2:string stackTraceStr
-}
-
-struct Document {
-  1:string s
-}
-
-

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/BlurRPC.thrift
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/BlurRPC.thrift b/src/distribution/src/main/scripts/interface/BlurRPC.thrift
new file mode 100644
index 0000000..417624f
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/BlurRPC.thrift
@@ -0,0 +1,555 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace java org.apache.blur.thrift.generated
+namespace rb blur
+namespace perl Blur
+
+/** 
+  * BlurException that carries a message plus the original stack 
+  * trace (if any). 
+  */
+exception BlurException {
+  /** 
+   * The message in the exception. 
+   */
+  1:string message,
+
+  /** 
+   * The original stack trace (if any). 
+   */
+  2:string stackTraceStr
+}
+
+/**
+  * The state of a query.<br/><br/>
+  * RUNNING - Query is running.<br/><br/>
+  * INTERRUPTED - Query has been interrupted.<br/><br/>
+  * COMPLETE - Query is complete.<br/>
+  */
+enum QueryState {
+  RUNNING,
+  INTERRUPTED,
+  COMPLETE
+}
+
+/**
+ * The fields types.
+ */
+enum TYPE {
+  /**
+   * This type uses the StandardAnalyzer for indexing and stores the value.
+   */
+  TEXT,
+
+  /**
+   * This type is indexed as a String (Lucene StringField) as provided and stores the value.
+   * NOTE: The String is not tokenized, so the String is indexed as a single value.
+   */
+  STRING,
+
+  /**
+   * This type is indexed as an Integer (Lucene IntegerField) as provided and stores the value.
+   */
+  INT,
+
+  /**
+   * This type is indexed as an Long (Lucene LongField) as provided and stores the value.
+   */
+  LONG,
+
+  /**
+   * This type is indexed as an Float (Lucene FloatField) as provided and stores the value.
+   */
+  FLOAT,
+
+  /**
+   * This type is indexed as an Double (Lucene DoubleField) as provided and stores the value.
+   */
+  DOUBLE,
+
+  /**
+   * This type is NOT indexed but stores the value.
+   */
+  BINARY
+}
+
+enum SortType {
+    /**
+     * Sort by document score (relevance).  Sort values are Float and higher values are at the front.
+     */
+    SCORE,
+
+    /** 
+     * Sort by document number (index order).  Sort values are Integer and lower values are at the front.
+     */
+    DOC,
+
+    /**
+     * Sort using term values as Strings.  Sort values are String and lower values are at the front.
+     */
+    STRING,
+
+    /** 
+     * Sort using term values as encoded Integers.  Sort values are Integer and lower values are at the front. 
+     */
+    INT,
+
+    /** 
+     * Sort using term values as encoded Floats.  Sort values are Float and lower values are at the front. 
+     */
+    FLOAT,
+
+    /** 
+     * Sort using term values as encoded Longs.  Sort values are Long and lower values are at the front. 
+     */
+    LONG,
+
+    /** 
+     * Sort using term values as encoded Doubles.  Sort values are Double and lower values are at the front. 
+     */
+    DOUBLE,
+
+    /** 
+     * Sort using term values as encoded Shorts.  Sort values are Short and lower values are at the front. 
+     */
+    SHORT,
+
+    /** 
+     * Sort using term values as encoded Bytes.  Sort values are Byte and lower values are at the front. 
+     */
+    BYTE,
+
+    /** 
+     * Sort using term values as Strings, but comparing by value (using String.compareTo) for all 
+     * comparisons. This is typically slower than {@link #STRING}, which uses ordinals to do the sorting. 
+     */
+    STRING_VAL,
+
+    /** 
+     * Sort use byte[] index values. 
+     */
+    BYTES,
+}
+
+/**
+ *
+ */
+struct TableStats {
+  /**
+   *
+   */
+  1:i64 bytes,
+  /**
+   *
+   */
+  2:i64 documentCount,
+  /**
+   *
+   */
+  3:i64 queries
+}
+
+/**
+ * The field schema contains the field's name and type.
+ */
+struct FieldSchema {
+ /**
+  * The name of the field.
+  */
+ 1:string name,
+ /**
+  * The type of the field.
+  */
+ 2:TYPE type
+}
+
+/**
+ * TableSchema contains field information that describes the a table.
+ */
+struct TableSchema {
+ /**
+  * List of field information for a table.
+  */
+ 1:list<FieldSchema> fields,
+ /**
+  * The cluster name in which this table exists.
+  */
+ 2:string cluster
+}
+
+struct ClassDefinition {
+ 1:string className,
+ 2:map<string,binary> arguments,
+ /**
+  * user can define its own way to initialize analyzer by providing javascript function.
+  * This function will always be used if defined.
+  */
+ 3:string initFunction
+}
+
+/**
+ * The analyzer sub type struct holds the sub field name and class definition of 
+ * the sub type.  See AnalyzerType for further explanation.
+ */
+struct AnalyzerSubType {
+ /**
+  * The sub field name.
+  */
+ 1:string subFieldName,
+
+ /**
+  * The class definition that is to be used.
+  */
+ 2:ClassDefinition classDefinition
+}
+
+/**
+ * The Analyzer struct allows for defining an alternate analyzer class definition 
+ * with optional analyzer sub types.  The sub types allow for indexing a single field 
+ * with several different analyzer while only storing the value once.  For example, if 
+ * field "name" was a TEXT type the class definition could be set to Lowercase 
+ * analyzer and the analyzer sub types could be set to Keyword (with a sub field name 
+ * of "name.key") and Standard analyzer (with a sub field name of "name.standard").  Then in 
+ * queries the Lowercase analyzer would be used when "name" is referenced, Keyword 
+ * analyzer would be referenced when "name.key" is referenced and Standard analyzer 
+ * would be referenced when "name.standard" is referenced.
+ */
+struct AnalyzerType {
+ /**
+  * The field that this defined type is to operate against.
+  */
+ 1:string fieldName,
+ /**
+  * The class definition that is to be used.  If this field is null then the 
+  * default behavior of the field is to be used.
+  */
+ 2:ClassDefinition classDefinition,
+ /**
+  * The analyzer sub types that should be applied.  This can be empty or null.
+  */
+ 3:list<AnalyzerSubType> analyzerSubTypes
+}
+
+/**
+ * The analyzer allows for defining of alternate analyzers for the given fields.  The TYPE 
+ * enum defines the default field types and the default indexing behavior for each.  The 
+ * Analyzer struct allows for defining alternate behavior.  Such as a field with a TEXT 
+ * type using a Lowercase Analyzer instead of the default StandardAnalyzer.
+ */
+struct Analyzer {
+ /**
+  * The list of AnalyzerTypes.
+  */
+ 1:list<AnalyzerType> analyzerTypes
+}
+
+/**
+ *
+ */
+struct TableDescriptor {
+  /**
+   * The name of the table.
+   */
+  1:string name,
+
+  /**
+   * Is the table enable for queries and updates.
+   */
+  2:bool enabled = 1,
+
+  /**
+   * The number of shards in the table.
+   */
+  3:i32 shardCount = 1,
+
+  /**
+   * The storage path is a HDFS URI for storing all of the indexes.  Any valid HDFS 
+   * URI can be used such as hdfs://hostname/path, or file:///path, etc.
+   */
+  4:string storagePath,
+
+  /**
+   * The analyzer definition for this table.  If null the default behavior for each 
+   * field will be used.
+   */
+  5:Analyzer analyzer,
+
+  /**
+   * This will only allow queries to be executed on the table.  The underlying implementation 
+   * does not open the index for writing, but will refresh the index periodically.
+   */
+  6:bool readOnly = 0,
+
+  /**
+   * The default field name for any field where the field name is null.
+   */
+  7:string defaultFieldName = 'body',
+
+  /**
+   *compressionClass,compressionBlockSize,similarityClass,blockCaching = 1,blockCachingFileTypes,columnPreCache
+   */
+  8:map<string,string> properties
+}
+
+struct Session {
+ 1:string sessionId,
+ 2:string tableName
+}
+
+struct SortField {
+ 1:string field,
+ 2:SortType type, 
+ 3:bool reverse
+}
+
+struct Sort {
+ 1:list<SortField> fields
+}
+
+struct ScoreDoc {
+ 1:double score,
+ 2:i64 docLocation,
+ 4:list<binary> fields
+}
+
+enum QueryType {
+ STRING,JSON,BINARY
+}
+
+/**
+ * The Query object describes how the query is passed.  If the 
+ * type is STRING or JSON the queryString field is used.  If 
+ * the BINARY type is used the queryBinary should be used.
+ */
+struct Query {
+ /**
+  * The query type.
+  */
+ 1:QueryType type,
+ /**
+  * The query to be executed.
+  */
+ 2:string queryString,
+ /**
+  * The query to be executed.
+  */
+ 3:binary queryBinary
+}
+
+struct QueryArgs {
+ /**
+  * Unique id for controlling the given query, leave null for server side assignment.
+  */
+ 1:string id,
+ /**
+  * If after is left null then the first N (where N is numberToFetch)
+  * ScoreDocs are fetched.  If after is not null then the first N 
+  * ScoreDocs are fetched that occur after the given ScoreDoc.
+  */
+ 2:ScoreDoc after,
+ /**
+  * The query to be executed.
+  */
+ 3:Query query,
+ /**
+  * Filter to be executed.
+  */
+ 4:binary filter,
+ /**
+  * The number of document locations to fetch.
+  */
+ 5:i32 numberToFetch = 100,
+ /**
+  * If aggregate results is left true then only a single TopFieldDocs 
+  * object will be returned from the search method.  It will contain 
+  * only the best documents from the given search with all of the 
+  * shards being sorted and aggregated together.
+  */
+ 6:bool aggregateResults = 1,
+ /**
+  * NOT YET IMPLEMENTED.
+  */
+ 7:Sort sort,
+ /**
+  * NOT YET IMPLEMENTED.  Related to sort.
+  */
+ 8:bool doDocScores = 1,
+ /**
+  * Calculate the max score of the search.
+  */
+ 9:bool doMaxScore = 0,
+
+ /**
+  * Shard indexes allows the user to specify which shards of the table to execute 
+  * the query against.  If left null, all the shards of the table are used.
+  */
+ 10:list<i32> shardIndexes
+}
+
+/**
+ * Contains the query status information for a query on a server.
+ */
+struct QueryStatus {
+  /**
+   * The startTime as set on the server, this is when the query has started executing.  This could be different depending on the server.
+   */
+  1:i64 startTime,
+  /**
+   * The endTime as set on the server, this is when the query has stopped executing.  This could be different depending on the server.
+   */
+  2:i64 endTime,
+  /**
+   * The amount cpu time spent executing the given query.
+   */
+  3:i64 cpuTime,
+  /**
+   * The total amount of time spent executing the query.
+   */
+  4:i64 userTime,
+  /**
+   * The number of shards that this server has completed.
+   */
+  5:i32 completeShards,
+  /**
+   * The number of shards that this server has to complete.
+   */
+  6:i32 totalShards,
+  /**
+   * The state of the query.  This could be different depending on the server.
+   */
+  7:QueryState state,
+  /**
+   * The query that is executing.
+   */
+  8:QueryArgs queryArgs,
+}
+
+struct TopFieldDocs {
+ 1:i32 shardIndex,
+ 2:i64 totalHits,
+ 3:list<ScoreDoc> scoreDocs,
+ 4:double maxScore,
+ 5:list<SortField> fields
+}
+
+/**
+ * 
+ */
+struct Field {
+ /**
+  * The name of the field.
+  */
+ 1:string name,
+ /**
+  * The value of the field in binary form.  If the value is a string, the string should be in UTF-8 format.
+  */
+ 2:binary value,
+ /**
+  * The type of the field, this represents how the data is stored and the default indexing schema for the data.
+  */
+ 3:TYPE type,
+ /**
+  * The boost of the field.  Default of 1.0 for no change to the boost.
+  */
+ 4:double boost = 1.0
+}
+
+struct Document {
+ /**
+  * This list of fields to be indexed.  The same field name can be used across fields and the order of the fields will be maintained.
+  */
+ 1:list<Field> fields
+}
+
+struct Term {
+ /**
+  * Field name.
+  */
+ 1:string field,
+ /**
+  * Field values.
+  */
+ 2:binary bytes
+}
+
+struct MutateOptions {
+ /**
+  * The name of the table.
+  */
+ 1:string table,
+ /**
+  * The index of the shard in the table that the mutate will operate against.
+  */
+ 2:i32 shardIndex,
+ /**
+  * Setting this to true will cause the mutate call to block until the mutates are visible.
+  */
+ 3:bool waitToBeVisible = 0,
+ /**
+  * Whether or not to add this mutation to the write ahead log for recovery of information during a shard server crash.
+  */
+ 4:bool writeAheadLog = 1
+}
+
+/**
+ * Contains a the delete term as well as the documents that will be added to the index shard.
+ */
+struct UpdatePackage {
+ /**
+  * The term that will mark old Documents as deleted before adding the documents.
+  */
+ 1:Term term,
+ /**
+  * The documents to be updated.
+  */
+ 2:list<Document> documents
+}
+
+/**
+ * Generation keeps a reference to the Lucene generation where a mutate (add/update/delete) 
+ * was performed.  This can be used to wait for that generation to be visible.
+ */
+struct Generation {
+ /**
+  * The table name for this generation.
+  */
+ 1:string table,
+ /**
+  * The shard index for this generation.
+  */
+ 2:i32 shardIndex,
+ /**
+  * The Lucene generation.
+  */
+ 3:i64 generation
+}
+
+struct ShardLayout {
+ /**
+  * The server for this layout.
+  */
+ 1:string server,
+ /**
+  * A list of shard ids for the given server.
+  */
+ 2:list<i32> shards
+}
+
+
+
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/BlurRPCService.thrift
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/BlurRPCService.thrift b/src/distribution/src/main/scripts/interface/BlurRPCService.thrift
new file mode 100644
index 0000000..0d6e549
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/BlurRPCService.thrift
@@ -0,0 +1,210 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace java org.apache.blur.thrift.generated
+namespace rb blur
+namespace perl Blur
+
+include 'BlurRPC.thrift'
+include 'BlurSimple.thrift'
+
+service Blur extends BlurSimple.DocumentGroupService {
+
+  // Data reading
+
+  /**
+   * Creating a session snapshots the readers during search and document 
+   * fetching.  This provides a static view of the indexes so the document
+   * ids will remain the same during a session.
+   * @param table the table name.
+   * @return the new Session.
+   */
+  BlurRPC.Session openReadSession(1:string table) throws (1:BlurRPC.BlurException e)
+
+  /**
+   * Runs a search with the given query arguments.  Invalid Sessions will throw a BlurException.
+   * @param session the Session.
+   * @param queryArgs the QueryArgs which contains the query, filter, sort, fetch, paging information, etc.
+   * @return the TopFieldDocs, where there is a TopFieldDocs object for each shard that was search against.
+   */
+  list<BlurRPC.TopFieldDocs> search(1:BlurRPC.Session session, 2:BlurRPC.QueryArgs queryArgs) throws (1:BlurRPC.BlurException e)
+
+  /**
+   * Fetches a document based on the DocLocation list with the fields specified.
+   * @param session the Session.
+   * @param docLocations the document locations, which include shard index and document id.
+   * @param fields the field names to fetch.
+   * @return the Documents that were requested.
+   */
+  list<BlurRPC.Document> doc(1:BlurRPC.Session session, 2:list<i64> docLocations, 4:set<string> fields) throws (1:BlurRPC.BlurException e)
+
+  /**
+   * Closes the session and allows the readers to be closed.
+   * @param session the Session.
+   */
+  void closeReadSession(1:BlurRPC.Session session) throws (1:BlurRPC.BlurException e)
+
+  // Data mutation  
+
+  /**
+   * Add Documents to the given table in the provided shard.  If the table or 
+   * shard is not found on this shard server a BlurException will be thrown.
+   * @param options the MutateOptions provide the table name, shard index, etc.
+   * @param documents the documents to be added.  NOTE: All documents 
+   * provided to be indexed in a single segment.
+   */
+  list<BlurRPC.Generation> addDocuments(1:BlurRPC.MutateOptions options, 2:list<BlurRPC.Document> documents) throws (1:BlurRPC.BlurException e)
+
+  /**
+   * Delete Documents to the given table in the provided shard.  If the table 
+   * or shard is not found on this shard server a BlurException will be thrown.
+   * @param options the MutateOptions provide the table name, shard index, etc.
+   * @param queries the Queries that will executed and mark there resulting documents as deleted.
+   */
+  list<BlurRPC.Generation> deleteDocumentsByQueries(1:BlurRPC.MutateOptions options, 2:list<BlurRPC.Query> queries) throws (1:BlurRPC.BlurException e)
+
+  /**
+   * Delete Documents to the given table in the provided shard.  If the table 
+   * or shard is not found on this shard server a BlurException will be thrown.
+   * @param options the MutateOptions provide the table name, shard index, etc.
+   * @param queries the Terms that will be found and mark deleted all the documents to be deleted.
+   */
+  list<BlurRPC.Generation> deleteDocuments(1:BlurRPC.MutateOptions options, 2:list<BlurRPC.Term> terms) throws (1:BlurRPC.BlurException e)
+
+  /**
+   * Update Documents to the given table in the provided shard.  If the table
+   * or shard is not found on this shard server a BlurException will be thrown.
+   * @param options the MutateOptions provide the table name, shard index, etc.
+   * @param updatePackages the documents to be updated.  NOTE: All documents
+   * within a update document object are indexed in a single segment.
+   */
+  list<BlurRPC.Generation> updateDocuments(1:BlurRPC.MutateOptions options, 2:list<BlurRPC.UpdatePackage> updatePackages) throws (1:BlurRPC.BlurException e)
+
+  /**
+   * This method blocks until all the given generations are visible for reading.
+   * @param generations the list of Generation objects.
+   * @param forceRefresh forces a refresh of the indexes if true, if false will
+   * block until natural refresh occurs.
+   */
+  void blockUntilGenerationIsVisible(1:list<BlurRPC.Generation> generations, 2:bool forceRefresh) throws (1:BlurRPC.BlurException e)
+
+  // Cluster state.
+
+  /**
+   * Returns a list of all current running servers.
+   * @return list of servers, e.g. node1:40020.
+   */
+  list<string> serverList() throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Gets a list shard ids for the given server and table.
+   * @param table the table name.
+   * @param server the server name, e.g. node1:40020
+   * @return list of shard ids.
+   */
+  list<i32> serverLayout(1:string table, 2:string server) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Gets the shard layout for each server in the cluster for the given table.
+   * @param table the table name.
+   * @return map of servers to shard layout object.
+   */
+  map<string,BlurRPC.ShardLayout> shardLayout(1:string table) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Gets a list of the table names.
+   * @return list of table names.
+   */
+  list<string> tableList() throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Is cluster in safe mode.
+   * @return safe mode boolean.
+   */
+  bool isInSafeMode() throws (1:BlurRPC.BlurException ex)
+
+  // Table admin
+
+  /**
+   * Create a table with the given table descriptor.
+   * @param tableDescriptor the TableDescriptor.
+   */
+  void createTable(1:BlurRPC.TableDescriptor tableDescriptor) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Enables a table with the given table name.
+   * @param table the table name.
+   */
+  void enableTable(1:string table) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Disables a table with the given table name.
+   * @param table the table name.
+   */
+  void disableTable(1:string table) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Removes a table with the given table name.
+   * @param table the table name.
+   * @param deleteIndexFiles boolean, whether or not to remove the indexes from the HDFS system.
+   */
+  void removeTable(1:string table, 2:bool deleteIndexFiles) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Returns a table descriptor for the given table.
+   * @param table the table name.
+   */
+  BlurRPC.TableDescriptor describe(1:string table) throws (1:BlurRPC.BlurException ex)
+  
+  // Query status
+
+  /**
+   * Cancels a query that is executing within the given session.
+   * @param session the Session.
+   * @param server the server name to receive the call, null for all servers.
+   * @param id the id of the query, (QueryArgs.id).
+   */
+  void cancelQuery(1:BlurRPC.Session session, 2:string server, 3:string id) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Returns a list of the query ids of queries that have recently been executed within the given session.
+   * @param session the Session.
+   * @param server the server name to receive the call, null for all servers.
+   * @return the ids of the query objects, (QueryArgs.id).
+   */
+  map<string,list<string>> queryStatusIdList(1:BlurRPC.Session session, 2:string server) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Returns the query status for the given session and query id, (QueryArgs.id).
+   * @param session the Session.
+   * @param server the server name to receive the call, null for all servers.
+   * @param id the id of the query, (QueryArgs.id).
+   * @return a map of server to the query status for the given session and id.
+   */
+  map<string,BlurRPC.QueryStatus> queryStatus(1:BlurRPC.Session session, 2:string server, 3:string id) throws (1:BlurRPC.BlurException ex)
+
+  /**
+   * Returns the the schema for the given session.
+   * @param session the Session.
+   * @return the table schema.
+   */
+  BlurRPC.TableSchema schema(1:BlurRPC.Session session) throws (1:BlurRPC.BlurException ex)
+
+  //TODO
+  BlurRPC.TableStats tableStats(1:string table) throws (1:BlurRPC.BlurException ex)
+  
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/BlurSimple.thrift
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/BlurSimple.thrift b/src/distribution/src/main/scripts/interface/BlurSimple.thrift
index 4fd60b4..c8e0c0b 100644
--- a/src/distribution/src/main/scripts/interface/BlurSimple.thrift
+++ b/src/distribution/src/main/scripts/interface/BlurSimple.thrift
@@ -15,35 +15,47 @@
  * limitations under the License.
  */
 
-namespace java org.apache.blur.docgroup
+namespace java org.apache.blur.thrift.generated
 namespace rb blur
 namespace perl Blur
 
-include 'BlurCommon.thrift'
+include 'BlurRPC.thrift'
+
+struct DocumentRecord {
+ 1:string id,
+ 2:BlurRPC.Document document
+}
 
 struct DocumentResult {
  1:i64 totalHits,
- 2:list<BlurCommon.Document> documents
+ 2:list<DocumentRecord> documents,
+ 3:list<double> scores
 }
 
 struct DocumentGroup {
- 1:BlurCommon.Document primeDoc,
- 2:list<BlurCommon.Document> documents
+ 1:string id,
+ 2:DocumentRecord primeDoc,
+ 3:list<DocumentRecord> documents
 }
 
 struct DocumentGroupResult {
  1:i64 totalHits,
- 2:list<DocumentGroup> documents
+ 2:list<DocumentGroup> documents,
+ 3:list<double> scores
 }
 
 service DocumentService {
 
- DocumentResult docSearch (1:string query) throws (1:BlurCommon.BlurException ex)
-  
+ DocumentResult searchRecords (1:string table, 2:string query) throws (1:BlurRPC.BlurException ex)
+ void updateRecord (1:string table, 2:DocumentRecord record) throws (1:BlurRPC.BlurException ex)
+ void deleteRecord (1:string table, 2:string id) throws (1:BlurRPC.BlurException ex)
+
 }
 
 service DocumentGroupService extends DocumentService {
 
- DocumentGroupResult docGroupSearch (1:string query) throws (1:BlurCommon.BlurException ex)
+ DocumentGroupResult searchGroups (1:string table, 2:string query) throws (1:BlurRPC.BlurException ex)
+ void updateGroup (1:string table, 2:DocumentGroup group) throws (1:BlurRPC.BlurException ex)
+ void deleteGroup (1:string table, 2:string id) throws (1:BlurRPC.BlurException ex)
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/gen-html/BlurRPC.html
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-html/BlurRPC.html b/src/distribution/src/main/scripts/interface/gen-html/BlurRPC.html
new file mode 100644
index 0000000..5c92ef3
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-html/BlurRPC.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<link href="style.css" rel="stylesheet" type="text/css"/>
+<title>Thrift module: BlurRPC</title></head><body>
+<div class="container-fluid">
+<h1>Thrift module: BlurRPC</h1>
+<table class="table-bordered table-striped table-condensed"><thead><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead>
+<tr>
+<td>BlurRPC</td><td></td>
+<td><a href="BlurRPC.html#Struct_Analyzer">Analyzer</a><br/>
+<a href="BlurRPC.html#Struct_AnalyzerSubType">AnalyzerSubType</a><br/>
+<a href="BlurRPC.html#Struct_AnalyzerType">AnalyzerType</a><br/>
+<a href="BlurRPC.html#Struct_BlurException">BlurException</a><br/>
+<a href="BlurRPC.html#Struct_ClassDefinition">ClassDefinition</a><br/>
+<a href="BlurRPC.html#Struct_Document">Document</a><br/>
+<a href="BlurRPC.html#Struct_Field">Field</a><br/>
+<a href="BlurRPC.html#Struct_FieldSchema">FieldSchema</a><br/>
+<a href="BlurRPC.html#Struct_Generation">Generation</a><br/>
+<a href="BlurRPC.html#Struct_MutateOptions">MutateOptions</a><br/>
+<a href="BlurRPC.html#Struct_Query">Query</a><br/>
+<a href="BlurRPC.html#Struct_QueryArgs">QueryArgs</a><br/>
+<a href="BlurRPC.html#Enum_QueryState">QueryState</a><br/>
+<a href="BlurRPC.html#Struct_QueryStatus">QueryStatus</a><br/>
+<a href="BlurRPC.html#Enum_QueryType">QueryType</a><br/>
+<a href="BlurRPC.html#Struct_ScoreDoc">ScoreDoc</a><br/>
+<a href="BlurRPC.html#Struct_Session">Session</a><br/>
+<a href="BlurRPC.html#Struct_ShardLayout">ShardLayout</a><br/>
+<a href="BlurRPC.html#Struct_Sort">Sort</a><br/>
+<a href="BlurRPC.html#Struct_SortField">SortField</a><br/>
+<a href="BlurRPC.html#Enum_SortType">SortType</a><br/>
+<a href="BlurRPC.html#Enum_TYPE">TYPE</a><br/>
+<a href="BlurRPC.html#Struct_TableDescriptor">TableDescriptor</a><br/>
+<a href="BlurRPC.html#Struct_TableSchema">TableSchema</a><br/>
+<a href="BlurRPC.html#Struct_TableStats">TableStats</a><br/>
+<a href="BlurRPC.html#Struct_Term">Term</a><br/>
+<a href="BlurRPC.html#Struct_TopFieldDocs">TopFieldDocs</a><br/>
+<a href="BlurRPC.html#Struct_UpdatePackage">UpdatePackage</a><br/>
+</td>
+<td></code></td>
+</tr></table>
+<hr/><h2 id="Enumerations">Enumerations</h2>
+<div class="definition"><h3 id="Enum_QueryState">Enumeration: QueryState</h3>
+The state of a query.<br/><br/>
+RUNNING - Query is running.<br/><br/>
+INTERRUPTED - Query has been interrupted.<br/><br/>
+COMPLETE - Query is complete.<br/>
+<br/><br/><table class="table-bordered table-striped table-condensed">
+<tr><td><code>RUNNING</code></td><td><code>0</code></td></tr>
+<tr><td><code>INTERRUPTED</code></td><td><code>1</code></td></tr>
+<tr><td><code>COMPLETE</code></td><td><code>2</code></td></tr>
+</table></div>
+<div class="definition"><h3 id="Enum_TYPE">Enumeration: TYPE</h3>
+The fields types.
+<br/><br/><table class="table-bordered table-striped table-condensed">
+<tr><td><code>TEXT</code></td><td><code>0</code></td></tr>
+<tr><td><code>STRING</code></td><td><code>1</code></td></tr>
+<tr><td><code>INT</code></td><td><code>2</code></td></tr>
+<tr><td><code>LONG</code></td><td><code>3</code></td></tr>
+<tr><td><code>FLOAT</code></td><td><code>4</code></td></tr>
+<tr><td><code>DOUBLE</code></td><td><code>5</code></td></tr>
+<tr><td><code>BINARY</code></td><td><code>6</code></td></tr>
+</table></div>
+<div class="definition"><h3 id="Enum_SortType">Enumeration: SortType</h3>
+<br/><table class="table-bordered table-striped table-condensed">
+<tr><td><code>SCORE</code></td><td><code>0</code></td></tr>
+<tr><td><code>DOC</code></td><td><code>1</code></td></tr>
+<tr><td><code>STRING</code></td><td><code>2</code></td></tr>
+<tr><td><code>INT</code></td><td><code>3</code></td></tr>
+<tr><td><code>FLOAT</code></td><td><code>4</code></td></tr>
+<tr><td><code>LONG</code></td><td><code>5</code></td></tr>
+<tr><td><code>DOUBLE</code></td><td><code>6</code></td></tr>
+<tr><td><code>SHORT</code></td><td><code>7</code></td></tr>
+<tr><td><code>BYTE</code></td><td><code>8</code></td></tr>
+<tr><td><code>STRING_VAL</code></td><td><code>9</code></td></tr>
+<tr><td><code>BYTES</code></td><td><code>10</code></td></tr>
+</table></div>
+<div class="definition"><h3 id="Enum_QueryType">Enumeration: QueryType</h3>
+<br/><table class="table-bordered table-striped table-condensed">
+<tr><td><code>STRING</code></td><td><code>0</code></td></tr>
+<tr><td><code>JSON</code></td><td><code>1</code></td></tr>
+<tr><td><code>BINARY</code></td><td><code>2</code></td></tr>
+</table></div>
+<hr/><h2 id="Structs">Data structures</h2>
+<div class="definition"><h3 id="Struct_BlurException">Exception: BlurException</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>message</td><td><code>string</code></td><td>The message in the exception.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>stackTraceStr</td><td><code>string</code></td><td>The original stack trace (if any).
+</td><td>default</td><td></td></tr>
+</table><br/>BlurException that carries a message plus the original stack
+trace (if any).
+<br/></div><div class="definition"><h3 id="Struct_TableStats">Struct: TableStats</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>bytes</td><td><code>i64</code></td><td>
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>documentCount</td><td><code>i64</code></td><td>
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>queries</td><td><code>i64</code></td><td>
+</td><td>default</td><td></td></tr>
+</table><br/><p/>
+<br/></div><div class="definition"><h3 id="Struct_FieldSchema">Struct: FieldSchema</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>name</td><td><code>string</code></td><td>The name of the field.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>type</td><td><code><a href="BlurRPC.html#Enum_TYPE">TYPE</a></code></td><td>The type of the field.
+</td><td>default</td><td></td></tr>
+</table><br/>The field schema contains the field's name and type.
+<br/></div><div class="definition"><h3 id="Struct_TableSchema">Struct: TableSchema</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>fields</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_FieldSchema">FieldSchema</a></code>&gt;</code></td><td>List of field information for a table.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>cluster</td><td><code>string</code></td><td>The cluster name in which this table exists.
+</td><td>default</td><td></td></tr>
+</table><br/>TableSchema contains field information that describes the a table.
+<br/></div><div class="definition"><h3 id="Struct_ClassDefinition">Struct: ClassDefinition</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>className</td><td><code>string</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>arguments</td><td><code>map&lt;<code>string</code>, <code>binary</code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>3</td><td>initFunction</td><td><code>string</code></td><td>user can define its own way to initialize analyzer by providing javascript function.
+This function will always be used if defined.
+</td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_AnalyzerSubType">Struct: AnalyzerSubType</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>subFieldName</td><td><code>string</code></td><td>The sub field name.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>classDefinition</td><td><code><a href="BlurRPC.html#Struct_ClassDefinition">ClassDefinition</a></code></td><td>The class definition that is to be used.
+</td><td>default</td><td></td></tr>
+</table><br/>The analyzer sub type struct holds the sub field name and class definition of
+the sub type.  See AnalyzerType for further explanation.
+<br/></div><div class="definition"><h3 id="Struct_AnalyzerType">Struct: AnalyzerType</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>fieldName</td><td><code>string</code></td><td>The field that this defined type is to operate against.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>classDefinition</td><td><code><a href="BlurRPC.html#Struct_ClassDefinition">ClassDefinition</a></code></td><td>The class definition that is to be used.  If this field is null then the
+default behavior of the field is to be used.
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>analyzerSubTypes</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_AnalyzerSubType">AnalyzerSubType</a></code>&gt;</code></td><td>The analyzer sub types that should be applied.  This can be empty or null.
+</td><td>default</td><td></td></tr>
+</table><br/>The Analyzer struct allows for defining an alternate analyzer class definition
+with optional analyzer sub types.  The sub types allow for indexing a single field
+with several different analyzer while only storing the value once.  For example, if
+field "name" was a TEXT type the class definition could be set to Lowercase
+analyzer and the analyzer sub types could be set to Keyword (with a sub field name
+of "name.key") and Standard analyzer (with a sub field name of "name.standard").  Then in
+queries the Lowercase analyzer would be used when "name" is referenced, Keyword
+analyzer would be referenced when "name.key" is referenced and Standard analyzer
+would be referenced when "name.standard" is referenced.
+<br/></div><div class="definition"><h3 id="Struct_Analyzer">Struct: Analyzer</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>analyzerTypes</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_AnalyzerType">AnalyzerType</a></code>&gt;</code></td><td>The list of AnalyzerTypes.
+</td><td>default</td><td></td></tr>
+</table><br/>The analyzer allows for defining of alternate analyzers for the given fields.  The TYPE
+enum defines the default field types and the default indexing behavior for each.  The
+Analyzer struct allows for defining alternate behavior.  Such as a field with a TEXT
+type using a Lowercase Analyzer instead of the default StandardAnalyzer.
+<br/></div><div class="definition"><h3 id="Struct_TableDescriptor">Struct: TableDescriptor</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>name</td><td><code>string</code></td><td>The name of the table.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>enabled</td><td><code>bool</code></td><td>Is the table enable for queries and updates.
+</td><td>default</td><td>1</td></tr>
+<tr><td>3</td><td>shardCount</td><td><code>i32</code></td><td>The number of shards in the table.
+</td><td>default</td><td>1</td></tr>
+<tr><td>4</td><td>storagePath</td><td><code>string</code></td><td>The storage path is a HDFS URI for storing all of the indexes.  Any valid HDFS
+URI can be used such as hdfs://hostname/path, or file:///path, etc.
+</td><td>default</td><td></td></tr>
+<tr><td>5</td><td>analyzer</td><td><code><a href="BlurRPC.html#Struct_Analyzer">Analyzer</a></code></td><td>The analyzer definition for this table.  If null the default behavior for each
+field will be used.
+</td><td>default</td><td></td></tr>
+<tr><td>6</td><td>readOnly</td><td><code>bool</code></td><td>This will only allow queries to be executed on the table.  The underlying implementation
+does not open the index for writing, but will refresh the index periodically.
+</td><td>default</td><td>0</td></tr>
+<tr><td>7</td><td>defaultFieldName</td><td><code>string</code></td><td>The default field name for any field where the field name is null.
+</td><td>default</td><td>"body"</td></tr>
+<tr><td>8</td><td>properties</td><td><code>map&lt;<code>string</code>, <code>string</code>&gt;</code></td><td>compressionClass,compressionBlockSize,similarityClass,blockCaching = 1,blockCachingFileTypes,columnPreCache
+</td><td>default</td><td></td></tr>
+</table><br/><p/>
+<br/></div><div class="definition"><h3 id="Struct_Session">Struct: Session</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>sessionId</td><td><code>string</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>tableName</td><td><code>string</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_SortField">Struct: SortField</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>field</td><td><code>string</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>type</td><td><code><a href="BlurRPC.html#Enum_SortType">SortType</a></code></td><td></td><td>default</td><td></td></tr>
+<tr><td>3</td><td>reverse</td><td><code>bool</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_Sort">Struct: Sort</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>fields</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_SortField">SortField</a></code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_ScoreDoc">Struct: ScoreDoc</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>score</td><td><code>double</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>docLocation</td><td><code>i64</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>4</td><td>fields</td><td><code>list&lt;<code>binary</code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_Query">Struct: Query</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>type</td><td><code><a href="BlurRPC.html#Enum_QueryType">QueryType</a></code></td><td>The query type.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>queryString</td><td><code>string</code></td><td>The query to be executed.
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>queryBinary</td><td><code>binary</code></td><td>The query to be executed.
+</td><td>default</td><td></td></tr>
+</table><br/>The Query object describes how the query is passed.  If the
+type is STRING or JSON the queryString field is used.  If
+the BINARY type is used the queryBinary should be used.
+<br/></div><div class="definition"><h3 id="Struct_QueryArgs">Struct: QueryArgs</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>id</td><td><code>string</code></td><td>Unique id for controlling the given query, leave null for server side assignment.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>after</td><td><code><a href="BlurRPC.html#Struct_ScoreDoc">ScoreDoc</a></code></td><td>If after is left null then the first N (where N is numberToFetch)
+ScoreDocs are fetched.  If after is not null then the first N
+ScoreDocs are fetched that occur after the given ScoreDoc.
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>query</td><td><code><a href="BlurRPC.html#Struct_Query">Query</a></code></td><td>The query to be executed.
+</td><td>default</td><td></td></tr>
+<tr><td>4</td><td>filter</td><td><code>binary</code></td><td>Filter to be executed.
+</td><td>default</td><td></td></tr>
+<tr><td>5</td><td>numberToFetch</td><td><code>i32</code></td><td>The number of document locations to fetch.
+</td><td>default</td><td>100</td></tr>
+<tr><td>6</td><td>aggregateResults</td><td><code>bool</code></td><td>If aggregate results is left true then only a single TopFieldDocs
+object will be returned from the search method.  It will contain
+only the best documents from the given search with all of the
+shards being sorted and aggregated together.
+</td><td>default</td><td>1</td></tr>
+<tr><td>7</td><td>sort</td><td><code><a href="BlurRPC.html#Struct_Sort">Sort</a></code></td><td>NOT YET IMPLEMENTED.
+</td><td>default</td><td></td></tr>
+<tr><td>8</td><td>doDocScores</td><td><code>bool</code></td><td>NOT YET IMPLEMENTED.  Related to sort.
+</td><td>default</td><td>1</td></tr>
+<tr><td>9</td><td>doMaxScore</td><td><code>bool</code></td><td>Calculate the max score of the search.
+</td><td>default</td><td>0</td></tr>
+<tr><td>10</td><td>shardIndexes</td><td><code>list&lt;<code>i32</code>&gt;</code></td><td>Shard indexes allows the user to specify which shards of the table to execute
+the query against.  If left null, all the shards of the table are used.
+</td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_QueryStatus">Struct: QueryStatus</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>startTime</td><td><code>i64</code></td><td>The startTime as set on the server, this is when the query has started executing.  This could be different depending on the server.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>endTime</td><td><code>i64</code></td><td>The endTime as set on the server, this is when the query has stopped executing.  This could be different depending on the server.
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>cpuTime</td><td><code>i64</code></td><td>The amount cpu time spent executing the given query.
+</td><td>default</td><td></td></tr>
+<tr><td>4</td><td>userTime</td><td><code>i64</code></td><td>The total amount of time spent executing the query.
+</td><td>default</td><td></td></tr>
+<tr><td>5</td><td>completeShards</td><td><code>i32</code></td><td>The number of shards that this server has completed.
+</td><td>default</td><td></td></tr>
+<tr><td>6</td><td>totalShards</td><td><code>i32</code></td><td>The number of shards that this server has to complete.
+</td><td>default</td><td></td></tr>
+<tr><td>7</td><td>state</td><td><code><a href="BlurRPC.html#Enum_QueryState">QueryState</a></code></td><td>The state of the query.  This could be different depending on the server.
+</td><td>default</td><td></td></tr>
+<tr><td>8</td><td>queryArgs</td><td><code><a href="BlurRPC.html#Struct_QueryArgs">QueryArgs</a></code></td><td>The query that is executing.
+</td><td>default</td><td></td></tr>
+</table><br/>Contains the query status information for a query on a server.
+<br/></div><div class="definition"><h3 id="Struct_TopFieldDocs">Struct: TopFieldDocs</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>shardIndex</td><td><code>i32</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>totalHits</td><td><code>i64</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>3</td><td>scoreDocs</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_ScoreDoc">ScoreDoc</a></code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>4</td><td>maxScore</td><td><code>double</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>5</td><td>fields</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_SortField">SortField</a></code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_Field">Struct: Field</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>name</td><td><code>string</code></td><td>The name of the field.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>value</td><td><code>binary</code></td><td>The value of the field in binary form.  If the value is a string, the string should be in UTF-8 format.
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>type</td><td><code><a href="BlurRPC.html#Enum_TYPE">TYPE</a></code></td><td>The type of the field, this represents how the data is stored and the default indexing schema for the data.
+</td><td>default</td><td></td></tr>
+<tr><td>4</td><td>boost</td><td><code>double</code></td><td>The boost of the field.  Default of 1.0 for no change to the boost.
+</td><td>default</td><td>1</td></tr>
+</table><br/> 
+<br/></div><div class="definition"><h3 id="Struct_Document">Struct: Document</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>fields</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_Field">Field</a></code>&gt;</code></td><td>This list of fields to be indexed.  The same field name can be used across fields and the order of the fields will be maintained.
+</td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_Term">Struct: Term</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>field</td><td><code>string</code></td><td>Field name.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>bytes</td><td><code>binary</code></td><td>Field values.
+</td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_MutateOptions">Struct: MutateOptions</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>table</td><td><code>string</code></td><td>The name of the table.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>shardIndex</td><td><code>i32</code></td><td>The index of the shard in the table that the mutate will operate against.
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>waitToBeVisible</td><td><code>bool</code></td><td>Setting this to true will cause the mutate call to block until the mutates are visible.
+</td><td>default</td><td>0</td></tr>
+<tr><td>4</td><td>writeAheadLog</td><td><code>bool</code></td><td>Whether or not to add this mutation to the write ahead log for recovery of information during a shard server crash.
+</td><td>default</td><td>1</td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_UpdatePackage">Struct: UpdatePackage</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>term</td><td><code><a href="BlurRPC.html#Struct_Term">Term</a></code></td><td>The term that will mark old Documents as deleted before adding the documents.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>documents</td><td><code>list&lt;<code><a href="BlurRPC.html#Struct_Document">Document</a></code>&gt;</code></td><td>The documents to be updated.
+</td><td>default</td><td></td></tr>
+</table><br/>Contains a the delete term as well as the documents that will be added to the index shard.
+<br/></div><div class="definition"><h3 id="Struct_Generation">Struct: Generation</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>table</td><td><code>string</code></td><td>The table name for this generation.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>shardIndex</td><td><code>i32</code></td><td>The shard index for this generation.
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>generation</td><td><code>i64</code></td><td>The Lucene generation.
+</td><td>default</td><td></td></tr>
+</table><br/>Generation keeps a reference to the Lucene generation where a mutate (add/update/delete)
+was performed.  This can be used to wait for that generation to be visible.
+<br/></div><div class="definition"><h3 id="Struct_ShardLayout">Struct: ShardLayout</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>server</td><td><code>string</code></td><td>The server for this layout.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>shards</td><td><code>list&lt;<code>i32</code>&gt;</code></td><td>A list of shard ids for the given server.
+</td><td>default</td><td></td></tr>
+</table><br/></div></div></body></html>


Mime
View raw message