summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/aggregations
diff options
context:
space:
mode:
authorJim Ferenczi <jim.ferenczi@elastic.co>2017-05-19 17:11:23 +0200
committerGitHub <noreply@github.com>2017-05-19 17:11:23 +0200
commitd241c4898e5d5ab87284cc3b351989d26947b552 (patch)
tree2aefac4d68554a2a4d0de3d26f8e79414858f14f /core/src/main/java/org/elasticsearch/search/aggregations
parentb18df27d74664ac3254b8395b67d097b487fd7ce (diff)
Removes parent child fielddata specialization (#24737)
This change removes the field data specialization needed for the parent field and replaces it with a simple DocValuesIndexFieldData. The underlying global ordinals are retrieved via a new function called IndexOrdinalsFieldData#getOrdinalMap. The children aggregation is also modified to use a simple WithOrdinals value source rather than the deleted WithOrdinals.Parent. Relates #20257
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations')
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java38
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java5
2 files changed, 1 insertions, 42 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java
index e6ed81c2d8..a8aaa25940 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java
@@ -22,7 +22,6 @@ import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReaderContext;
-import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.index.SortedNumericDocValues;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.search.IndexSearcher;
@@ -32,18 +31,15 @@ import org.apache.lucene.util.BytesRef;
import org.elasticsearch.common.lucene.ScorerAware;
import org.elasticsearch.index.fielddata.AbstractSortingNumericDocValues;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
-import org.elasticsearch.index.fielddata.AtomicParentChildFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexGeoPointFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
-import org.elasticsearch.index.fielddata.IndexParentChildFieldData;
import org.elasticsearch.index.fielddata.MultiGeoPointValues;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
import org.elasticsearch.index.fielddata.SortingBinaryDocValues;
import org.elasticsearch.index.fielddata.SortingNumericDoubleValues;
-import org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData;
import org.elasticsearch.script.LeafSearchScript;
import org.elasticsearch.script.SearchScript;
import org.elasticsearch.search.aggregations.support.ValuesSource.WithScript.BytesValues;
@@ -150,40 +146,6 @@ public abstract class ValuesSource {
}
}
- public static class ParentChild extends Bytes {
-
- protected final ParentChildIndexFieldData indexFieldData;
-
- public ParentChild(ParentChildIndexFieldData indexFieldData) {
- this.indexFieldData = indexFieldData;
- }
-
- public long globalMaxOrd(IndexSearcher indexSearcher, String type) {
- DirectoryReader indexReader = (DirectoryReader) indexSearcher.getIndexReader();
- if (indexReader.leaves().isEmpty()) {
- return 0;
- } else {
- LeafReaderContext atomicReaderContext = indexReader.leaves().get(0);
- IndexParentChildFieldData globalFieldData = indexFieldData.loadGlobal(indexReader);
- AtomicParentChildFieldData afd = globalFieldData.load(atomicReaderContext);
- SortedDocValues values = afd.getOrdinalsValues(type);
- return values.getValueCount();
- }
- }
-
- public SortedDocValues globalOrdinalsValues(String type, LeafReaderContext context) {
- final IndexParentChildFieldData global = indexFieldData.loadGlobal((DirectoryReader)context.parent.reader());
- final AtomicParentChildFieldData atomicFieldData = global.load(context);
- return atomicFieldData.getOrdinalsValues(type);
- }
-
- @Override
- public SortedBinaryDocValues bytesValues(LeafReaderContext context) {
- final AtomicParentChildFieldData atomicFieldData = indexFieldData.load(context);
- return atomicFieldData.getBytesValues();
- }
- }
-
public static class FieldData extends Bytes {
protected final IndexFieldData<?> indexFieldData;
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java
index 39b97a9b02..e5fac62840 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java
@@ -26,7 +26,6 @@ import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexGeoPointFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
-import org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData;
import org.elasticsearch.index.mapper.MappedFieldType;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.script.Script;
@@ -317,9 +316,7 @@ public class ValuesSourceConfig<VS extends ValuesSource> {
private ValuesSource bytesField() throws IOException {
final IndexFieldData<?> indexFieldData = fieldContext().indexFieldData();
ValuesSource dataSource;
- if (indexFieldData instanceof ParentChildIndexFieldData) {
- dataSource = new ValuesSource.Bytes.WithOrdinals.ParentChild((ParentChildIndexFieldData) indexFieldData);
- } else if (indexFieldData instanceof IndexOrdinalsFieldData) {
+ if (indexFieldData instanceof IndexOrdinalsFieldData) {
dataSource = new ValuesSource.Bytes.WithOrdinals.FieldData((IndexOrdinalsFieldData) indexFieldData);
} else {
dataSource = new ValuesSource.Bytes.FieldData(indexFieldData);