Merge branch 'stable-2.14' into stable-2.15

* stable-2.14:
  FieldType: Remove unnecessary KEYWORD type

Change-Id: I7e099a909e834eb96fdcce7894ad43a6d78959dd
This commit is contained in:
David Ostrovsky 2018-06-06 00:28:52 +02:00
commit b9433ee6d5
8 changed files with 12 additions and 32 deletions

View File

@ -28,8 +28,6 @@ class ElasticMapping {
FieldType<?> fieldType = field.getType();
if (fieldType == FieldType.EXACT) {
mapping.addExactField(name);
} else if (fieldType == FieldType.KEYWORD) {
mapping.addKeywordField(name);
} else if (fieldType == FieldType.TIMESTAMP) {
mapping.addTimestamp(name);
} else if (fieldType == FieldType.INTEGER
@ -63,20 +61,10 @@ class ElasticMapping {
}
Builder addExactField(String name) {
FieldProperties key = new FieldProperties(adapter.keywordFieldType());
FieldProperties key = new FieldProperties(adapter.exactFieldType());
key.index = adapter.indexProperty();
FieldProperties properties;
properties = new FieldProperties(adapter.stringFieldType());
properties.fields = ImmutableMap.of("key", key);
fields.put(name, properties);
return this;
}
Builder addKeywordField(String name) {
FieldProperties key = new FieldProperties(adapter.keywordFieldType());
key.index = adapter.indexProperty();
FieldProperties properties;
properties = new FieldProperties(adapter.keywordFieldType());
properties = new FieldProperties(adapter.exactFieldType());
properties.fields = ImmutableMap.of("key", key);
fields.put(name, properties);
return this;

View File

@ -20,7 +20,7 @@ public class ElasticQueryAdapter {
private final boolean ignoreUnmapped;
private final String searchFilteringName;
private final String indicesExistParam;
private final String keywordFieldType;
private final String exactFieldType;
private final String stringFieldType;
private final String indexProperty;
@ -31,7 +31,7 @@ public class ElasticQueryAdapter {
case V6_2:
this.searchFilteringName = "_source";
this.indicesExistParam = "?allow_no_indices=false";
this.keywordFieldType = "keyword";
this.exactFieldType = "keyword";
this.stringFieldType = "text";
this.indexProperty = "true";
break;
@ -39,7 +39,7 @@ public class ElasticQueryAdapter {
default:
this.searchFilteringName = "fields";
this.indicesExistParam = "";
this.keywordFieldType = "string";
this.exactFieldType = "string";
this.stringFieldType = "string";
this.indexProperty = "not_analyzed";
break;
@ -60,8 +60,8 @@ public class ElasticQueryAdapter {
return indicesExistParam;
}
String keywordFieldType() {
return keywordFieldType;
String exactFieldType() {
return exactFieldType;
}
String stringFieldType() {

View File

@ -94,7 +94,7 @@ public class ElasticQueryBuilder {
return intRangeQuery(p);
} else if (type == FieldType.TIMESTAMP) {
return timestampQuery(p);
} else if (type == FieldType.EXACT || type == FieldType.KEYWORD) {
} else if (type == FieldType.EXACT) {
return exactQuery(p);
} else if (type == FieldType.PREFIX) {
return QueryBuilders.matchPhrasePrefixQuery(name, value);

View File

@ -34,10 +34,6 @@ public final class FieldDef<I, T> {
return new FieldDef.Builder<>(FieldType.EXACT, name);
}
public static FieldDef.Builder<String> keyword(String name) {
return new FieldDef.Builder<>(FieldType.KEYWORD, name);
}
public static FieldDef.Builder<String> fullText(String name) {
return new FieldDef.Builder<>(FieldType.FULL_TEXT, name);
}

View File

@ -33,9 +33,6 @@ public class FieldType<T> {
/** A string field searched using exact-match semantics. */
public static final FieldType<String> EXACT = new FieldType<>("EXACT");
/** A Keyword field searched using non-analyzed-match semantics. */
public static final FieldType<String> KEYWORD = new FieldType<>("KEYWORD");
/** A string field searched using prefix. */
public static final FieldType<String> PREFIX = new FieldType<>("PREFIX");

View File

@ -311,7 +311,7 @@ public abstract class AbstractLuceneIndex<K, V> implements Index<K, V> {
for (Object value : values.getValues()) {
doc.add(new LongField(name, ((Timestamp) value).getTime(), store));
}
} else if (type == FieldType.KEYWORD || type == FieldType.EXACT || type == FieldType.PREFIX) {
} else if (type == FieldType.EXACT || type == FieldType.PREFIX) {
for (Object value : values.getValues()) {
doc.add(new StringField(name, (String) value, store));
}

View File

@ -148,7 +148,7 @@ public class QueryBuilder<V> {
return intRangeQuery(p);
} else if (type == FieldType.TIMESTAMP) {
return timestampQuery(p);
} else if (type == FieldType.EXACT || type == FieldType.KEYWORD) {
} else if (type == FieldType.EXACT) {
return exactQuery(p);
} else if (type == FieldType.PREFIX) {
return prefixQuery(p);

View File

@ -18,7 +18,6 @@ import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.gerrit.index.FieldDef.exact;
import static com.google.gerrit.index.FieldDef.fullText;
import static com.google.gerrit.index.FieldDef.integer;
import static com.google.gerrit.index.FieldDef.keyword;
import static com.google.gerrit.index.FieldDef.prefix;
import static com.google.gerrit.index.FieldDef.timestamp;
@ -37,11 +36,11 @@ public class GroupField {
/** Group UUID. */
public static final FieldDef<InternalGroup, String> UUID =
keyword("uuid").stored().build(g -> g.getGroupUUID().get());
exact("uuid").stored().build(g -> g.getGroupUUID().get());
/** Group owner UUID. */
public static final FieldDef<InternalGroup, String> OWNER_UUID =
keyword("owner_uuid").build(g -> g.getOwnerGroupUUID().get());
exact("owner_uuid").build(g -> g.getOwnerGroupUUID().get());
/** Timestamp indicating when this group was created. */
public static final FieldDef<InternalGroup, Timestamp> CREATED_ON =