incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [14/29] Added the distribution project to allow for automatically creating build artifacts during a maven build.
Date Fri, 04 Jan 2013 22:42:52 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/bin/servers.sh
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/bin/servers.sh b/src/distribution/src/main/scripts/bin/servers.sh
new file mode 100755
index 0000000..6b22678
--- /dev/null
+++ b/src/distribution/src/main/scripts/bin/servers.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+# 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.
+
+bin=`dirname "$0"`
+bin=`cd "$bin"; pwd`
+
+. "$bin"/blur-config.sh
+
+export HOSTLIST="${BLUR_HOME_CONF}/shards"
+
+for shard in `cat "$HOSTLIST"|sed  "s/#.*$//;/^$/d"`; do
+ ssh $BLUR_SSH_OPTS $shard $"${@// /\\ }" \
+   2>&1 | sed "s/^/$shard: /" &
+ if [ "$BLUR_SHARD_SLEEP" != "" ]; then
+   sleep $BLUR_SHARD_SLEEP
+ fi
+done
+
+wait
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/bin/start-all.sh
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/bin/start-all.sh b/src/distribution/src/main/scripts/bin/start-all.sh
new file mode 100755
index 0000000..639ab98
--- /dev/null
+++ b/src/distribution/src/main/scripts/bin/start-all.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+# 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.
+
+bin=`dirname "$0"`
+bin=`cd "$bin"; pwd`
+
+. "$bin"/blur-config.sh
+
+$BLUR_HOME/bin/shards.sh $BLUR_HOME/bin/start-shard-server.sh
+
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/bin/start-server.sh
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/bin/start-server.sh b/src/distribution/src/main/scripts/bin/start-server.sh
new file mode 100755
index 0000000..d53fcbc
--- /dev/null
+++ b/src/distribution/src/main/scripts/bin/start-server.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+# 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.
+
+bin=`dirname "$0"`
+bin=`cd "$bin"; pwd`
+
+. "$bin"/blur-config.sh
+
+INSTANCE=0
+while [  $INSTANCE -lt $BLUR_NUMBER_OF_SERVER_INSTANCES_PER_MACHINE ]; do
+  PID_FILE=$BLUR_HOME/pids/blur-$INSTANCE.pid
+
+  if [ -f $PID_FILE ]; then
+    if kill -0 `cat $PID_FILE` > /dev/null 2>&1; then
+      echo Blur Server already running as process `cat $PID_FILE`.  Stop it first.
+      let INSTANCE=INSTANCE+1
+      continue
+    fi
+  fi
+
+  PROC_NAME=blur-server-$HOSTNAME-$INSTANCE
+  nohup "$JAVA_HOME"/bin/java -Dblur.name=$PROC_NAME -Djava.library.path=$JAVA_LIBRARY_PATH -Dblur-$INSTANCE $BLUR_JVM_OPTIONS -Dblur.logs.dir=$BLUR_LOGS -Dblur.log.file=$PROC_NAME.log -cp $BLUR_CLASSPATH org.apache.blur.thrift.ThriftBlurServer -s $INSTANCE > "$BLUR_LOGS/$PROC_NAME.out" 2>&1 < /dev/null &
+  echo $! > $PID_FILE
+  echo Blur Server [$INSTANCE] starting as process `cat $PID_FILE`.
+
+  let INSTANCE=INSTANCE+1 
+done
+
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/bin/stop-all.sh
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/bin/stop-all.sh b/src/distribution/src/main/scripts/bin/stop-all.sh
new file mode 100755
index 0000000..5e1342d
--- /dev/null
+++ b/src/distribution/src/main/scripts/bin/stop-all.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+# 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.
+
+bin=`dirname "$0"`
+bin=`cd "$bin"; pwd`
+
+. "$bin"/blur-config.sh
+
+$BLUR_HOME/bin/shards.sh $BLUR_HOME/bin/stop-shard-server.sh
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/bin/stop-server.sh
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/bin/stop-server.sh b/src/distribution/src/main/scripts/bin/stop-server.sh
new file mode 100755
index 0000000..42a882f
--- /dev/null
+++ b/src/distribution/src/main/scripts/bin/stop-server.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# 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.
+
+bin=`dirname "$0"`
+bin=`cd "$bin"; pwd`
+
+. "$bin"/blur-config.sh
+
+INSTANCE=0
+while [  $INSTANCE -lt $BLUR_NUMBER_OF_SERVER_INSTANCES_PER_MACHINE ]; do
+  PID_FILE=$BLUR_HOME/pids/blur-$INSTANCE.pid
+
+  if [ -f $PID_FILE ]; then
+    if kill -0 `cat $PID_FILE` > /dev/null 2>&1; then
+      echo Stopping Blur Server [$INSTANCE] server with pid [`cat $PID_FILE`].
+      kill `cat $PID_FILE`
+    else
+      echo No Blur Server [$INSTANCE] server to stop
+    fi
+  else
+    echo No Blur Server [$INSTANCE] server to stop
+  fi
+  let INSTANCE=INSTANCE+1 
+done
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/conf/blur-env.sh
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/conf/blur-env.sh b/src/distribution/src/main/scripts/conf/blur-env.sh
new file mode 100755
index 0000000..9c4f20b
--- /dev/null
+++ b/src/distribution/src/main/scripts/conf/blur-env.sh
@@ -0,0 +1,56 @@
+# 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.
+
+# Set environment specific Blur settings here.
+
+# JAVA_HOME is required
+# export JAVA_HOME=/usr/lib/j2sdk1.6-sun
+
+# HADOOP_HOME is required
+# export HADOOP_HOME=/var/hadoop-0.20.2
+
+# JAVA JVM OPTIONS for the shard servers, jvm tuning parameters are placed here.
+#
+# This is an example of JVM options on a large heap and how to setup large pages and max direct memory size.
+# export BLUR_SHARD_JVM_OPTIONS="-XX:MaxDirectMemorySize=<size>g -XX:+UseLargePages -Xms12g -Xmx12g -Xmn2g -XX:+UseCompressedOops \
+#-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:CMSIncrementalDutyCycleMin=10 -XX:CMSIncrementalDutyCycle=50 \
+#-XX:ParallelGCThreads=8 -XX:+UseParNewGC -XX:MaxGCPauseMillis=200 -XX:GCTimeRatio=10 -XX:+DisableExplicitGC \
+#-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$BLUR_HOME/logs/gc-blur-shard-server_`date +%Y%m%d_%H%M%S`.log
+export BLUR_SHARD_JVM_OPTIONS="-Xmx1024m"
+
+# JAVA JVM OPTIONS for the shard servers, jvm tuning parameters are placed here.
+export BLUR_CONTROLLER_JVM_OPTIONS="-Xmx1024m"
+
+# JAVA JVM OPTIONS for the shard servers, jvm tuning parameters are placed here.
+export BLUR_COMMAND="-Xmx1024m"
+
+# Any SSH Options to be used during startup or shutdown commands.
+export BLUR_SSH_OPTS=
+
+# Time to sleep between shard server commands.
+export BLUR_SHARD_SLEEP=0.1
+
+# Time to sleep between controller server commands.
+export BLUR_CONTROLLER_SLEEP=0.1
+
+# The of shard servers to spawn per machine.
+export BLUR_NUMBER_OF_SHARD_SERVER_INSTANCES_PER_MACHINE=1
+
+# The of controller servers to spawn per machine.
+export BLUR_NUMBER_OF_CONTROLLER_SERVER_INSTANCES_PER_MACHINE=1
+
+# The directory where all the log files will be located.
+# export BLUR_LOGS=$BLUR_HOME/logs
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/conf/blur-site.properties
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/conf/blur-site.properties b/src/distribution/src/main/scripts/conf/blur-site.properties
new file mode 100644
index 0000000..a5b33ad
--- /dev/null
+++ b/src/distribution/src/main/scripts/conf/blur-site.properties
@@ -0,0 +1,21 @@
+# 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.
+
+#Zookeeper connection string
+blur.zookeeper.connection=localhost
+
+#The cluster name
+blur.cluster.name=default
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/conf/controllers
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/conf/controllers b/src/distribution/src/main/scripts/conf/controllers
new file mode 100644
index 0000000..2fbb50c
--- /dev/null
+++ b/src/distribution/src/main/scripts/conf/controllers
@@ -0,0 +1 @@
+localhost

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/conf/hadoop-metrics.properties
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/conf/hadoop-metrics.properties b/src/distribution/src/main/scripts/conf/hadoop-metrics.properties
new file mode 100644
index 0000000..4b49664
--- /dev/null
+++ b/src/distribution/src/main/scripts/conf/hadoop-metrics.properties
@@ -0,0 +1,44 @@
+
+# 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.
+
+# Configuration of the "blur" context for null
+blur.class=org.apache.hadoop.metrics.spi.NullContext
+
+# Configuration of the "blur" context for file
+# blur.class=org.apache.hadoop.metrics.file.FileContext
+# blur.period=10
+# blur.fileName=/tmp/blurmetrics.log
+
+# Configuration of the "blur" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# blur.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+# blur.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+# blur.period=10
+# blur.servers=localhost:8649
+
+
+# Configuration of the "jvm" context for null
+jvm.class=org.apache.hadoop.metrics.spi.NullContext
+
+# Configuration of the "jvm" context for file
+# jvm.class=org.apache.hadoop.metrics.file.FileContext
+# jvm.period=10
+# jvm.fileName=/tmp/jvmmetrics.log
+
+# Configuration of the "jvm" context for ganglia
+# jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+# jvm.period=10
+# jvm.servers=localhost:8649

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/conf/log4j.xml
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/conf/log4j.xml b/src/distribution/src/main/scripts/conf/log4j.xml
new file mode 100644
index 0000000..518413a
--- /dev/null
+++ b/src/distribution/src/main/scripts/conf/log4j.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+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.
+-->
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+
+	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="%-5p %d{yyyyMMdd_HH:mm:ss:sss_z} [%t] %c{2}: %m%n" />
+		</layout>
+	</appender>
+
+	<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+		<appender-ref ref="FILE" />
+	</appender>
+
+	<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
+		<param name="File" value="${blur.logs.dir}/${blur.log.file}" />
+		<param name="DatePattern" value="'.'yyyyMMdd" />
+		<param name="Append" value="true" />
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="%-5p %d{yyyyMMdd_HH:mm:ss:sss_z} [%t] %c{2}: %m%n" />
+		</layout>
+	</appender>
+	
+	<logger name="org.apache.hadoop">
+    	<level value="ERROR" />
+	    <appender-ref ref="ASYNC"/>
+	</logger>
+
+	<!--root>
+	For production use, the async configuration will be better for performance at the cost of not seeing the final flushed log events.
+		<priority value="INFO" />
+		<appender-ref ref="ASYNC" />
+	</root-->
+
+	<root>
+		<priority value="INFO" />
+		<appender-ref ref="FILE" />
+	</root>
+</log4j:configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/conf/shards
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/conf/shards b/src/distribution/src/main/scripts/conf/shards
new file mode 100644
index 0000000..2fbb50c
--- /dev/null
+++ b/src/distribution/src/main/scripts/conf/shards
@@ -0,0 +1 @@
+localhost

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/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
new file mode 100644
index 0000000..f88dbf2
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/Blur.thrift
@@ -0,0 +1,713 @@
+/**
+ * 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 CpuTime {
+  /**
+   *
+   */
+  1:i64 cpuTime,
+  /**
+   *
+   */
+  2:i64 realTime
+}
+
+/**
+ *
+ */
+struct QueryStatus {
+  /**
+   *
+   */
+  1:map<string,CpuTime> cpuTimes,
+  /**
+   *
+   */
+  2:i32 completeShards,
+  /**
+   *
+   */
+  3:i32 totalShards,
+  /**
+   *
+   */
+  4:QueryState state,
+}
+
+/**
+ *
+ */
+struct TableStats {
+  /**
+   *
+   */
+  1:i64 bytes,
+  /**
+   *
+   */
+  2:i64 documentCount,
+  /**
+   *
+   */
+  3:i64 queries
+}
+
+/**
+ *
+ */
+struct LiveSchema {
+  /**
+   *
+   */
+  1:string table,
+  /**
+   *
+   */
+  2:map<string,set<string>> columnFamilies
+}
+
+struct ClassDefinition {
+ 1:string className,
+ 2:map<string,binary> arguments
+}
+
+/**
+ * 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.
+  */
+ 1:i64 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
+}
+
+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 against the given table with the given uuid.
+   * NOTE, the cancel call maybe take some time for the query actually stops executing.
+   * @param table the table name.
+   * @param uuid the uuid of the query.
+   */
+  void cancelQuery(1:Session session, 2:i64 id) throws (1:BlurException ex)
+
+  /**
+   * Returns a list of the query ids of queries that have recently been executed for the given table.
+   * @param table the table name.
+   * @return the uuids of the query status objects.
+   */
+  list<i64> queryStatusIdList(1:Session session) throws (1:BlurException ex)
+
+  /**
+   * Returns the query status for the given table and query uuid.
+   * @param table the table name.
+   * @param uuid the uuid of the query.
+   * @return the query status for the given.
+   */
+  QueryStatus queryStatus(1:Session session, 2:i64 id) throws (1:BlurException ex)
+
+  //TODO
+  LiveSchema schema(1:string table) 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/70b69ecb/src/distribution/src/main/scripts/interface/apache.header
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/apache.header b/src/distribution/src/main/scripts/interface/apache.header
new file mode 100644
index 0000000..3d296de
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/apache.header
@@ -0,0 +1,19 @@
+package org.apache.blur.thrift.generated;
+
+/**
+ * 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.
+ */
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/interface/gen-html/Blur.html
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-html/Blur.html b/src/distribution/src/main/scripts/interface/gen-html/Blur.html
new file mode 100644
index 0000000..e69ab15
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-html/Blur.html
@@ -0,0 +1,492 @@
+<!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: Blur</title></head><body>
+<div class="container-fluid">
+<h1>Thrift module: Blur</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>Blur</td><td><a href="Blur.html#Svc_Blur">Blur</a><br/>
+<ul>
+<li><a href="Blur.html#Fn_Blur_addDocuments">addDocuments</a></li>
+<li><a href="Blur.html#Fn_Blur_blockUntilGenerationIsVisible">blockUntilGenerationIsVisible</a></li>
+<li><a href="Blur.html#Fn_Blur_cancelQuery">cancelQuery</a></li>
+<li><a href="Blur.html#Fn_Blur_closeReadSession">closeReadSession</a></li>
+<li><a href="Blur.html#Fn_Blur_createTable">createTable</a></li>
+<li><a href="Blur.html#Fn_Blur_deleteDocuments">deleteDocuments</a></li>
+<li><a href="Blur.html#Fn_Blur_deleteDocumentsByQueries">deleteDocumentsByQueries</a></li>
+<li><a href="Blur.html#Fn_Blur_describe">describe</a></li>
+<li><a href="Blur.html#Fn_Blur_disableTable">disableTable</a></li>
+<li><a href="Blur.html#Fn_Blur_doc">doc</a></li>
+<li><a href="Blur.html#Fn_Blur_enableTable">enableTable</a></li>
+<li><a href="Blur.html#Fn_Blur_isInSafeMode">isInSafeMode</a></li>
+<li><a href="Blur.html#Fn_Blur_openReadSession">openReadSession</a></li>
+<li><a href="Blur.html#Fn_Blur_queryStatus">queryStatus</a></li>
+<li><a href="Blur.html#Fn_Blur_queryStatusIdList">queryStatusIdList</a></li>
+<li><a href="Blur.html#Fn_Blur_removeTable">removeTable</a></li>
+<li><a href="Blur.html#Fn_Blur_schema">schema</a></li>
+<li><a href="Blur.html#Fn_Blur_search">search</a></li>
+<li><a href="Blur.html#Fn_Blur_serverLayout">serverLayout</a></li>
+<li><a href="Blur.html#Fn_Blur_serverList">serverList</a></li>
+<li><a href="Blur.html#Fn_Blur_shardLayout">shardLayout</a></li>
+<li><a href="Blur.html#Fn_Blur_tableList">tableList</a></li>
+<li><a href="Blur.html#Fn_Blur_tableStats">tableStats</a></li>
+<li><a href="Blur.html#Fn_Blur_updateDocuments">updateDocuments</a></li>
+</ul>
+</td>
+<td><a href="Blur.html#Struct_Analyzer">Analyzer</a><br/>
+<a href="Blur.html#Struct_AnalyzerSubType">AnalyzerSubType</a><br/>
+<a href="Blur.html#Struct_AnalyzerType">AnalyzerType</a><br/>
+<a href="Blur.html#Struct_BlurException">BlurException</a><br/>
+<a href="Blur.html#Struct_ClassDefinition">ClassDefinition</a><br/>
+<a href="Blur.html#Struct_CpuTime">CpuTime</a><br/>
+<a href="Blur.html#Struct_Document">Document</a><br/>
+<a href="Blur.html#Struct_Field">Field</a><br/>
+<a href="Blur.html#Struct_Generation">Generation</a><br/>
+<a href="Blur.html#Struct_LiveSchema">LiveSchema</a><br/>
+<a href="Blur.html#Struct_MutateOptions">MutateOptions</a><br/>
+<a href="Blur.html#Struct_Query">Query</a><br/>
+<a href="Blur.html#Struct_QueryArgs">QueryArgs</a><br/>
+<a href="Blur.html#Enum_QueryState">QueryState</a><br/>
+<a href="Blur.html#Struct_QueryStatus">QueryStatus</a><br/>
+<a href="Blur.html#Enum_QueryType">QueryType</a><br/>
+<a href="Blur.html#Struct_ScoreDoc">ScoreDoc</a><br/>
+<a href="Blur.html#Struct_Session">Session</a><br/>
+<a href="Blur.html#Struct_ShardLayout">ShardLayout</a><br/>
+<a href="Blur.html#Struct_Sort">Sort</a><br/>
+<a href="Blur.html#Struct_SortField">SortField</a><br/>
+<a href="Blur.html#Enum_SortType">SortType</a><br/>
+<a href="Blur.html#Enum_TYPE">TYPE</a><br/>
+<a href="Blur.html#Struct_TableDescriptor">TableDescriptor</a><br/>
+<a href="Blur.html#Struct_TableStats">TableStats</a><br/>
+<a href="Blur.html#Struct_Term">Term</a><br/>
+<a href="Blur.html#Struct_TopFieldDocs">TopFieldDocs</a><br/>
+<a href="Blur.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_CpuTime">Struct: CpuTime</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>cpuTime</td><td><code>i64</code></td><td>
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>realTime</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_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>cpuTimes</td><td><code>map&lt;<code>string</code>, <code><a href="Blur.html#Struct_CpuTime">CpuTime</a></code>&gt;</code></td><td>
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>completeShards</td><td><code>i32</code></td><td>
+</td><td>default</td><td></td></tr>
+<tr><td>3</td><td>totalShards</td><td><code>i32</code></td><td>
+</td><td>default</td><td></td></tr>
+<tr><td>4</td><td>state</td><td><code><a href="Blur.html#Enum_QueryState">QueryState</a></code></td><td>
+</td><td>default</td><td></td></tr>
+</table><br/><p/>
+<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_LiveSchema">Struct: LiveSchema</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>
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>columnFamilies</td><td><code>map&lt;<code>string</code>, <code>set&lt;<code>string</code>&gt;</code>&gt;</code></td><td>
+</td><td>default</td><td></td></tr>
+</table><br/><p/>
+<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>
+</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="Blur.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="Blur.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="Blur.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="Blur.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="Blur.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="Blur.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="Blur.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="Blur.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>i64</code></td><td>Unique id for controlling the given query.
+</td><td>default</td><td></td></tr>
+<tr><td>2</td><td>after</td><td><code><a href="Blur.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="Blur.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="Blur.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_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="Blur.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="Blur.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="Blur.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="Blur.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="Blur.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="Blur.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><hr/><h2 id="Services">Services</h2>
+<h3 id="Svc_Blur">Service: Blur</h3>
+<div class="definition"><h4 id="Fn_Blur_openReadSession">Function: Blur.openReadSession</h4>
+<pre><code><a href="Blur.html#Struct_Session">Session</a></code> openReadSession(<code>string</code> table)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_search">Function: Blur.search</h4>
+<pre><code>list&lt;<code><a href="Blur.html#Struct_TopFieldDocs">TopFieldDocs</a></code>&gt;</code> search(<code><a href="Blur.html#Struct_Session">Session</a></code> session,
+                          <code><a href="Blur.html#Struct_QueryArgs">QueryArgs</a></code> queryArgs)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_doc">Function: Blur.doc</h4>
+<pre><code>list&lt;<code><a href="Blur.html#Struct_Document">Document</a></code>&gt;</code> doc(<code><a href="Blur.html#Struct_Session">Session</a></code> session,
+                   <code>list&lt;<code>i64</code>&gt;</code> docLocations,
+                   <code>set&lt;<code>string</code>&gt;</code> fields)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_closeReadSession">Function: Blur.closeReadSession</h4>
+<pre><code>void</code> closeReadSession(<code><a href="Blur.html#Struct_Session">Session</a></code> session)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Closes the session and allows the readers to be closed.
+@param session the Session.
+<br/></div><div class="definition"><h4 id="Fn_Blur_addDocuments">Function: Blur.addDocuments</h4>
+<pre><code>list&lt;<code><a href="Blur.html#Struct_Generation">Generation</a></code>&gt;</code> addDocuments(<code><a href="Blur.html#Struct_MutateOptions">MutateOptions</a></code> options,
+                              <code>list&lt;<code><a href="Blur.html#Struct_Document">Document</a></code>&gt;</code> documents)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_deleteDocumentsByQueries">Function: Blur.deleteDocumentsByQueries</h4>
+<pre><code>list&lt;<code><a href="Blur.html#Struct_Generation">Generation</a></code>&gt;</code> deleteDocumentsByQueries(<code><a href="Blur.html#Struct_MutateOptions">MutateOptions</a></code> options,
+                                          <code>list&lt;<code><a href="Blur.html#Struct_Query">Query</a></code>&gt;</code> queries)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_deleteDocuments">Function: Blur.deleteDocuments</h4>
+<pre><code>list&lt;<code><a href="Blur.html#Struct_Generation">Generation</a></code>&gt;</code> deleteDocuments(<code><a href="Blur.html#Struct_MutateOptions">MutateOptions</a></code> options,
+                                 <code>list&lt;<code><a href="Blur.html#Struct_Term">Term</a></code>&gt;</code> terms)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_updateDocuments">Function: Blur.updateDocuments</h4>
+<pre><code>list&lt;<code><a href="Blur.html#Struct_Generation">Generation</a></code>&gt;</code> updateDocuments(<code><a href="Blur.html#Struct_MutateOptions">MutateOptions</a></code> options,
+                                 <code>list&lt;<code><a href="Blur.html#Struct_UpdatePackage">UpdatePackage</a></code>&gt;</code> updatePackages)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_blockUntilGenerationIsVisible">Function: Blur.blockUntilGenerationIsVisible</h4>
+<pre><code>void</code> blockUntilGenerationIsVisible(<code>list&lt;<code><a href="Blur.html#Struct_Generation">Generation</a></code>&gt;</code> generations,
+                                   <code>bool</code> forceRefresh)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_serverList">Function: Blur.serverList</h4>
+<pre><code>list&lt;<code>string</code>&gt;</code> serverList()
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Returns a list of all current running servers.
+@return list of servers, e.g. node1:40020.
+<br/></div><div class="definition"><h4 id="Fn_Blur_serverLayout">Function: Blur.serverLayout</h4>
+<pre><code>list&lt;<code>i32</code>&gt;</code> serverLayout(<code>string</code> table,
+                       <code>string</code> server)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_shardLayout">Function: Blur.shardLayout</h4>
+<pre><code>map&lt;<code>string</code>, <code><a href="Blur.html#Struct_ShardLayout">ShardLayout</a></code>&gt;</code> shardLayout(<code>string</code> table)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_tableList">Function: Blur.tableList</h4>
+<pre><code>list&lt;<code>string</code>&gt;</code> tableList()
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Gets a list of the table names.
+@return list of table names.
+<br/></div><div class="definition"><h4 id="Fn_Blur_isInSafeMode">Function: Blur.isInSafeMode</h4>
+<pre><code>bool</code> isInSafeMode()
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Is cluster in safe mode.
+@return safe mode boolean.
+<br/></div><div class="definition"><h4 id="Fn_Blur_createTable">Function: Blur.createTable</h4>
+<pre><code>void</code> createTable(<code><a href="Blur.html#Struct_TableDescriptor">TableDescriptor</a></code> tableDescriptor)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Create a table with the given table descriptor.
+@param tableDescriptor the TableDescriptor.
+<br/></div><div class="definition"><h4 id="Fn_Blur_enableTable">Function: Blur.enableTable</h4>
+<pre><code>void</code> enableTable(<code>string</code> table)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Enables a table with the given table name.
+@param table the table name.
+<br/></div><div class="definition"><h4 id="Fn_Blur_disableTable">Function: Blur.disableTable</h4>
+<pre><code>void</code> disableTable(<code>string</code> table)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Disables a table with the given table name.
+@param table the table name.
+<br/></div><div class="definition"><h4 id="Fn_Blur_removeTable">Function: Blur.removeTable</h4>
+<pre><code>void</code> removeTable(<code>string</code> table,
+                 <code>bool</code> deleteIndexFiles)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>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.
+<br/></div><div class="definition"><h4 id="Fn_Blur_describe">Function: Blur.describe</h4>
+<pre><code><a href="Blur.html#Struct_TableDescriptor">TableDescriptor</a></code> describe(<code>string</code> table)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Returns a table descriptor for the given table.
+@param table the table name.
+<br/></div><div class="definition"><h4 id="Fn_Blur_cancelQuery">Function: Blur.cancelQuery</h4>
+<pre><code>void</code> cancelQuery(<code><a href="Blur.html#Struct_Session">Session</a></code> session,
+                 <code>i64</code> id)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Cancels a query that is executing against the given table with the given uuid.
+NOTE, the cancel call maybe take some time for the query actually stops executing.
+@param table the table name.
+@param uuid the uuid of the query.
+<br/></div><div class="definition"><h4 id="Fn_Blur_queryStatusIdList">Function: Blur.queryStatusIdList</h4>
+<pre><code>list&lt;<code>i64</code>&gt;</code> queryStatusIdList(<code><a href="Blur.html#Struct_Session">Session</a></code> session)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Returns a list of the query ids of queries that have recently been executed for the given table.
+@param table the table name.
+@return the uuids of the query status objects.
+<br/></div><div class="definition"><h4 id="Fn_Blur_queryStatus">Function: Blur.queryStatus</h4>
+<pre><code><a href="Blur.html#Struct_QueryStatus">QueryStatus</a></code> queryStatus(<code><a href="Blur.html#Struct_Session">Session</a></code> session,
+                        <code>i64</code> id)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre>Returns the query status for the given table and query uuid.
+@param table the table name.
+@param uuid the uuid of the query.
+@return the query status for the given.
+<br/></div><div class="definition"><h4 id="Fn_Blur_schema">Function: Blur.schema</h4>
+<pre><code><a href="Blur.html#Struct_LiveSchema">LiveSchema</a></code> schema(<code>string</code> table)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre></div><div class="definition"><h4 id="Fn_Blur_tableStats">Function: Blur.tableStats</h4>
+<pre><code><a href="Blur.html#Struct_TableStats">TableStats</a></code> tableStats(<code>string</code> table)
+    throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre></div></div></body></html>

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/70b69ecb/src/distribution/src/main/scripts/interface/gen-html/index.html
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-html/index.html b/src/distribution/src/main/scripts/interface/gen-html/index.html
new file mode 100644
index 0000000..45d5a40
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-html/index.html
@@ -0,0 +1,67 @@
+<html><head>
+<link href="style.css" rel="stylesheet" type="text/css"/>
+<title>All Thrift declarations</title></head><body>
+<div class="container-fluid">
+<h1>All Thrift declarations</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>Blur</td><td><a href="Blur.html#Svc_Blur">Blur</a><br/>
+<ul>
+<li><a href="Blur.html#Fn_Blur_addDocuments">addDocuments</a></li>
+<li><a href="Blur.html#Fn_Blur_blockUntilGenerationIsVisible">blockUntilGenerationIsVisible</a></li>
+<li><a href="Blur.html#Fn_Blur_cancelQuery">cancelQuery</a></li>
+<li><a href="Blur.html#Fn_Blur_closeReadSession">closeReadSession</a></li>
+<li><a href="Blur.html#Fn_Blur_createTable">createTable</a></li>
+<li><a href="Blur.html#Fn_Blur_deleteDocuments">deleteDocuments</a></li>
+<li><a href="Blur.html#Fn_Blur_deleteDocumentsByQueries">deleteDocumentsByQueries</a></li>
+<li><a href="Blur.html#Fn_Blur_describe">describe</a></li>
+<li><a href="Blur.html#Fn_Blur_disableTable">disableTable</a></li>
+<li><a href="Blur.html#Fn_Blur_doc">doc</a></li>
+<li><a href="Blur.html#Fn_Blur_enableTable">enableTable</a></li>
+<li><a href="Blur.html#Fn_Blur_isInSafeMode">isInSafeMode</a></li>
+<li><a href="Blur.html#Fn_Blur_openReadSession">openReadSession</a></li>
+<li><a href="Blur.html#Fn_Blur_queryStatus">queryStatus</a></li>
+<li><a href="Blur.html#Fn_Blur_queryStatusIdList">queryStatusIdList</a></li>
+<li><a href="Blur.html#Fn_Blur_removeTable">removeTable</a></li>
+<li><a href="Blur.html#Fn_Blur_schema">schema</a></li>
+<li><a href="Blur.html#Fn_Blur_search">search</a></li>
+<li><a href="Blur.html#Fn_Blur_serverLayout">serverLayout</a></li>
+<li><a href="Blur.html#Fn_Blur_serverList">serverList</a></li>
+<li><a href="Blur.html#Fn_Blur_shardLayout">shardLayout</a></li>
+<li><a href="Blur.html#Fn_Blur_tableList">tableList</a></li>
+<li><a href="Blur.html#Fn_Blur_tableStats">tableStats</a></li>
+<li><a href="Blur.html#Fn_Blur_updateDocuments">updateDocuments</a></li>
+</ul>
+</td>
+<td><a href="Blur.html#Struct_Analyzer">Analyzer</a><br/>
+<a href="Blur.html#Struct_AnalyzerSubType">AnalyzerSubType</a><br/>
+<a href="Blur.html#Struct_AnalyzerType">AnalyzerType</a><br/>
+<a href="Blur.html#Struct_BlurException">BlurException</a><br/>
+<a href="Blur.html#Struct_ClassDefinition">ClassDefinition</a><br/>
+<a href="Blur.html#Struct_CpuTime">CpuTime</a><br/>
+<a href="Blur.html#Struct_Document">Document</a><br/>
+<a href="Blur.html#Struct_Field">Field</a><br/>
+<a href="Blur.html#Struct_Generation">Generation</a><br/>
+<a href="Blur.html#Struct_LiveSchema">LiveSchema</a><br/>
+<a href="Blur.html#Struct_MutateOptions">MutateOptions</a><br/>
+<a href="Blur.html#Struct_Query">Query</a><br/>
+<a href="Blur.html#Struct_QueryArgs">QueryArgs</a><br/>
+<a href="Blur.html#Enum_QueryState">QueryState</a><br/>
+<a href="Blur.html#Struct_QueryStatus">QueryStatus</a><br/>
+<a href="Blur.html#Enum_QueryType">QueryType</a><br/>
+<a href="Blur.html#Struct_ScoreDoc">ScoreDoc</a><br/>
+<a href="Blur.html#Struct_Session">Session</a><br/>
+<a href="Blur.html#Struct_ShardLayout">ShardLayout</a><br/>
+<a href="Blur.html#Struct_Sort">Sort</a><br/>
+<a href="Blur.html#Struct_SortField">SortField</a><br/>
+<a href="Blur.html#Enum_SortType">SortType</a><br/>
+<a href="Blur.html#Enum_TYPE">TYPE</a><br/>
+<a href="Blur.html#Struct_TableDescriptor">TableDescriptor</a><br/>
+<a href="Blur.html#Struct_TableStats">TableStats</a><br/>
+<a href="Blur.html#Struct_Term">Term</a><br/>
+<a href="Blur.html#Struct_TopFieldDocs">TopFieldDocs</a><br/>
+<a href="Blur.html#Struct_UpdatePackage">UpdatePackage</a><br/>
+</td>
+<td></code></td>
+</tr></table>
+</div></body></html>


Mime
View raw message