|
17 | 17 | import org.elasticsearch.index.mapper.MappedFieldType; |
18 | 18 |
|
19 | 19 | import java.nio.ByteOrder; |
20 | | -import java.util.ArrayList; |
21 | 20 | import java.util.Comparator; |
22 | 21 | import java.util.List; |
23 | 22 | import java.util.Map; |
@@ -106,58 +105,6 @@ private Object exactValuesFromSource(Object value, GeoPoint nullValue, boolean n |
106 | 105 | return maybeFoldList(resultList); |
107 | 106 | } |
108 | 107 |
|
109 | | - @Override |
110 | | - protected Object getFieldValue(Map<String, Object> document, String fieldName) { |
111 | | - var extracted = new ArrayList<>(); |
112 | | - processLevel(document, fieldName, extracted); |
113 | | - |
114 | | - if (extracted.size() == 1) { |
115 | | - return extracted.get(0) ; |
116 | | - } |
117 | | - |
118 | | - return extracted; |
119 | | - } |
120 | | - |
121 | | - @SuppressWarnings("unchecked") |
122 | | - private void processLevel(Map<String, Object> level, String field, ArrayList<Object> extracted) { |
123 | | - if (field.contains(".") == false) { |
124 | | - var value = level.get(field); |
125 | | - processLeafLevel(value, extracted); |
126 | | - return; |
127 | | - } |
128 | | - |
129 | | - var nameInLevel = field.split("\\.")[0]; |
130 | | - var entry = level.get(nameInLevel); |
131 | | - if (entry instanceof Map<?, ?> m) { |
132 | | - processLevel((Map<String, Object>) m, field.substring(field.indexOf('.') + 1), extracted); |
133 | | - return; |
134 | | - } |
135 | | - if (entry instanceof List<?> l) { |
136 | | - for (var object : l) { |
137 | | - processLevel((Map<String, Object>) object, field.substring(field.indexOf('.') + 1), extracted); |
138 | | - } |
139 | | - return; |
140 | | - } |
141 | | - assert false : "unexpected document structure"; |
142 | | - } |
143 | | - |
144 | | - private void processLeafLevel(Object value, ArrayList<Object> extracted) { |
145 | | - if (value instanceof List<?> l) { |
146 | | - if (l.size() > 0 && l.get(0) instanceof Double) { |
147 | | - // this must be a single point in array form |
148 | | - // we'll put it into a different form here to make our lives a bit easier while implementing `expected` |
149 | | - extracted.add(Map.of("type", "point", "coordinates", l)); |
150 | | - } else { |
151 | | - // this is actually an array of points but there could still be points in array form inside |
152 | | - for (var arrayValue : l) { |
153 | | - processLeafLevel(arrayValue, extracted); |
154 | | - } |
155 | | - } |
156 | | - } else { |
157 | | - extracted.add(value); |
158 | | - } |
159 | | - } |
160 | | - |
161 | 108 | @SuppressWarnings("unchecked") |
162 | 109 | private GeoPoint convert(Object value, GeoPoint nullValue, boolean needsMultifieldAdjustment) { |
163 | 110 | if (value == null) { |
|
0 commit comments