Index: src/plugin/indexer-elastic/src/java/org/apache/nutch/indexwriter/elastic/ElasticIndexWriter.java
===================================================================
--- workspace/apache-nutch-trunk/src/plugin/indexer-elastic/src/java/org/apache/nutch/indexwriter/elastic/ElasticIndexWriter.java	(revision 1732162)
+++ workspace/apache-nutch-trunk/src/plugin/indexer-elastic/src/java/org/apache/nutch/indexwriter/elastic/ElasticIndexWriter.java	(working copy)
@@ -21,6 +21,8 @@
 
 import java.io.BufferedReader;
 import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -38,9 +40,8 @@
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.client.Client;
 import org.elasticsearch.client.transport.TransportClient;
-import org.elasticsearch.common.settings.ImmutableSettings;
-import org.elasticsearch.common.settings.ImmutableSettings.Builder;
 import org.elasticsearch.common.settings.Settings;
+import org.elasticsearch.common.settings.Settings.Builder;
 import org.elasticsearch.common.transport.InetSocketTransportAddress;
 import org.elasticsearch.node.Node;
 import org.slf4j.Logger;
@@ -79,8 +80,7 @@
     host = job.get(ElasticConstants.HOST);
     port = job.getInt(ElasticConstants.PORT, 9300);
 
-    Builder settingsBuilder = ImmutableSettings.settingsBuilder().classLoader(
-        Settings.class.getClassLoader());
+    Builder settingsBuilder = Settings.builder();
 
     BufferedReader reader = new BufferedReader(
         job.getConfResourceAsReader("elasticsearch.conf"));
@@ -106,8 +106,11 @@
 
     // Prefer TransportClient
     if (host != null && port > 1) {
-      client = new TransportClient(settings)
-          .addTransportAddress(new InetSocketTransportAddress(host, port));
+      TransportClient transportClient = TransportClient.builder().settings(settings).build();
+      for (String h: host.split(",")) {
+        transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(h), port));
+      }
+      client = transportClient;
     } else if (clusterName != null) {
       node = nodeBuilder().settings(settings).client(true).node();
       client = node.client();
@@ -141,8 +144,10 @@
           bulkLength += value.toString().length();
         }
       } else {
-        source.put(fieldName, doc.getFieldValue(fieldName));
-        bulkLength += doc.getFieldValue(fieldName).toString().length();
+        if (doc.getFieldValue(fieldName) != null) {
+          source.put(fieldName, doc.getFieldValue(fieldName));
+          bulkLength += doc.getFieldValue(fieldName).toString().length();
+        }
       }
     }
     request.setSource(source);
Index: src/plugin/indexer-elastic/ivy.xml
===================================================================
--- workspace/apache-nutch-trunk/src/plugin/indexer-elastic/ivy.xml	(revision 1732162)
+++ workspace/apache-nutch-trunk/src/plugin/indexer-elastic/ivy.xml	(working copy)
@@ -36,7 +36,7 @@
   </publications>
 
   <dependencies>
-        <dependency org="org.elasticsearch" name="elasticsearch" rev="1.4.1"
+        <dependency org="org.elasticsearch" name="elasticsearch" rev="2.1.1"
                     conf="*->default"/>
   </dependencies>
   
Index: src/plugin/indexer-elastic/plugin.xml
===================================================================
--- workspace/apache-nutch-trunk/src/plugin/indexer-elastic/plugin.xml	(revision 1732162)
+++ workspace/apache-nutch-trunk/src/plugin/indexer-elastic/plugin.xml	(working copy)
@@ -23,24 +23,37 @@
       <export name="*" />
     </library>
     
-    <library name="elasticsearch-1.4.1.jar"/>
-    <library name="lucene-analyzers-common-4.10.2.jar"/>
-    <library name="lucene-codecs-4.10.2.jar"/>
-    <library name="lucene-core-4.10.2.jar"/>
-    <library name="lucene-grouping-4.10.2.jar"/>
-    <library name="lucene-highlighter-4.10.2.jar"/>
-    <library name="lucene-join-4.10.2.jar"/>
-    <library name="lucene-memory-4.10.2.jar"/>
-    <library name="lucene-misc-4.10.2.jar"/>
-    <library name="lucene-queries-4.10.2.jar"/>
-    <library name="lucene-queryparser-4.10.2.jar"/>
-    <library name="lucene-sandbox-4.10.2.jar"/>
-    <library name="lucene-spatial-4.10.2.jar"/>
-    <library name="lucene-suggest-4.10.2.jar"/>
-    <library name="spatial4j-0.4.1.jar"/>
-    <library name="antlr-runtime-3.5.jar"/>
-    <library name="asm-4.1"/>
-    <library name="asm-commons-4.1.jar"/>
+    <library name="elasticsearch-2.1.1.jar"/>
+    <library name="lucene-analyzers-common-5.3.1.jar"/>
+    <library name="lucene-backward-codecs-5.3.1.jar"/>
+    <library name="lucene-core-5.3.1.jar"/>
+    <library name="lucene-grouping-5.3.1.jar"/>
+    <library name="lucene-highlighter-5.3.1.jar"/>
+    <library name="lucene-join-5.3.1.jar"/>
+    <library name="lucene-memory-5.3.1.jar"/>
+    <library name="lucene-misc-5.3.1.jar"/>
+    <library name="lucene-queries-5.3.1.jar"/>
+    <library name="lucene-queryparser-5.3.1.jar"/>
+    <library name="lucene-sandbox-5.3.1.jar"/>
+    <library name="lucene-spatial3d-5.3.1.jar"/>
+    <library name="lucene-spatial-5.3.1.jar"/>
+    <library name="lucene-suggest-5.3.1.jar"/>
+    <library name="commons-cli-1.3.1.jar"/>
+    <library name="compress-lzf-1.0.2.jar"/>
+    <library name="guava-18.0.jar"/>
+    <library name="HdrHistogram-2.1.6.jar"/>
+    <library name="hppc-0.7.1.jar"/>
+    <library name="jackson-core-2.6.2.jar"/>
+    <library name="jackson-dataformat-cbor-2.6.2.jar"/>
+    <library name="jackson-dataformat-smile-2.6.2.jar"/>
+    <library name="jackson-dataformat-yaml-2.6.2.jar"/>
+    <library name="joda-convert-1.2.jar"/>
+    <library name="joda-time-2.8.2.jar"/>
+    <library name="jsr166e-1.1.0.jar"/>
+    <library name="netty-3.10.5.Final.jar"/>
+    <library name="snakeyaml-1.15.jar"/>
+    <library name="spatial4j-0.5.jar"/>
+    <library name="t-digest-3.0.jar"/>
   </runtime>
 
   <requires>
