Update 'exact' field mapping to avoid duplicate data

As an example, the mapping for the exact field 'status' in 'changes'
index is updated as below to avoid duplication.

Without change:
  "status": {
    "type": "keyword",
    "fields": {
      "key": {
        "type": "keyword"
      }
    }
  }

With change:
  "status": {
    "type": "keyword"
  }

On a Gerrit instance with ~4M changes, this change brings down the
size of changes index from ~25G to ~20G.

Release-Notes: Size of indices is reduced. Re-index is required.
Change-Id: I680eb01c7e8c96548ddb4b321f383916f165af28
diff --git a/src/main/java/com/google/gerrit/elasticsearch/ElasticMapping.java b/src/main/java/com/google/gerrit/elasticsearch/ElasticMapping.java
index 48cb10a..daf2cf9 100644
--- a/src/main/java/com/google/gerrit/elasticsearch/ElasticMapping.java
+++ b/src/main/java/com/google/gerrit/elasticsearch/ElasticMapping.java
@@ -76,12 +76,7 @@
     }
 
     Builder addExactField(String name) {
-      FieldProperties key = new FieldProperties(adapter.exactFieldType());
-      key.index = adapter.indexProperty();
-      FieldProperties properties;
-      properties = new FieldProperties(adapter.exactFieldType());
-      properties.fields = ImmutableMap.of("key", key);
-      fields.put(name, properties);
+      fields.put(name, new FieldProperties(adapter.exactFieldType()));
       return this;
     }
 
diff --git a/src/main/java/com/google/gerrit/elasticsearch/ElasticQueryBuilder.java b/src/main/java/com/google/gerrit/elasticsearch/ElasticQueryBuilder.java
index df28dcc..b0dd2ad 100644
--- a/src/main/java/com/google/gerrit/elasticsearch/ElasticQueryBuilder.java
+++ b/src/main/java/com/google/gerrit/elasticsearch/ElasticQueryBuilder.java
@@ -152,9 +152,9 @@
       if (value.endsWith("$") && !value.endsWith("\\$") && !value.endsWith("\\\\$")) {
         value = value.substring(0, value.length() - 1);
       }
-      return QueryBuilders.regexpQuery(name + ".key", value);
+      return QueryBuilders.regexpQuery(name, value);
     } else {
-      return QueryBuilders.termQuery(name + ".key", value);
+      return QueryBuilders.termQuery(name, value);
     }
   }
 }