ChangeField: Add LEGACY_ID2

The LEGACY_ID field is named "_id" which cannot be used in
Elasticsearch because that field name is reserved.

Deprecate LEGACY_ID and add a new field LEGACY_ID2 which is
named "legacy_id" instead.

Add a new schema version using LEGACY_ID2 and deprecate the
previous version.

Change-Id: I0b89365b6af74360aeece00c61d29416951fecb4
This commit is contained in:
David Pursehouse
2015-07-28 10:50:19 +09:00
committed by Dave Borowitz
parent 75129a2d53
commit 5cc3023b60
11 changed files with 101 additions and 30 deletions

View File

@@ -14,17 +14,18 @@
package com.google.gerrit.lucene;
import static com.google.gerrit.server.query.change.LegacyChangeIdPredicate.idField;
import static org.apache.lucene.search.BooleanClause.Occur.MUST;
import static org.apache.lucene.search.BooleanClause.Occur.MUST_NOT;
import static org.apache.lucene.search.BooleanClause.Occur.SHOULD;
import com.google.common.collect.Lists;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.server.index.ChangeField;
import com.google.gerrit.server.index.FieldType;
import com.google.gerrit.server.index.IndexPredicate;
import com.google.gerrit.server.index.IntegerRangePredicate;
import com.google.gerrit.server.index.RegexPredicate;
import com.google.gerrit.server.index.Schema;
import com.google.gerrit.server.index.TimestampRangePredicate;
import com.google.gerrit.server.query.AndPredicate;
import com.google.gerrit.server.query.NotPredicate;
@@ -49,14 +50,13 @@ import java.util.Date;
import java.util.List;
public class QueryBuilder {
private static final String ID_FIELD = ChangeField.LEGACY_ID.getName();
public static Term idTerm(ChangeData cd) {
return intTerm(ID_FIELD, cd.getId().get());
public static Term idTerm(Schema<ChangeData> schema, ChangeData cd) {
return intTerm(idField(schema).getName(), cd.getId().get());
}
public static Term idTerm(Change.Id id) {
return intTerm(ID_FIELD, id.get());
public static Term idTerm(Schema<ChangeData> schema, Change.Id id) {
return intTerm(idField(schema).getName(), id.get());
}
private final org.apache.lucene.util.QueryBuilder queryBuilder;