@@ -72,30 +72,31 @@ public void testDefaults() throws Exception {
7272
7373 BytesReference doc = BytesReference .bytes (XContentFactory .jsonBuilder ().startObject ()
7474 .startObject ("field" )
75- .field ("key1" , "value" )
76- .field ("key2" , true )
75+ .field ("key" , "value" )
7776 .endObject ()
7877 .endObject ());
7978
8079 ParsedDocument parsedDoc = mapper .parse (SourceToParse .source ("test" , "type" , "1" , doc , XContentType .JSON ));
80+
8181 IndexableField [] fields = parsedDoc .rootDoc ().getFields ("field" );
82- assertEquals (2 , fields .length );
82+ assertEquals (1 , fields .length );
83+
84+ assertEquals ("field" , fields [0 ].name ());
85+ assertEquals (new BytesRef ("value" ), fields [0 ].binaryValue ());
86+ assertFalse (fields [0 ].fieldType ().stored ());
87+ assertTrue (fields [0 ].fieldType ().omitNorms ());
8388
84- IndexableField field1 = fields [0 ];
85- assertEquals ("field" , field1 .name ());
86- assertEquals (new BytesRef ("value" ), field1 .binaryValue ());
87- assertTrue (field1 .fieldType ().omitNorms ());
89+ IndexableField [] keyedFields = parsedDoc .rootDoc ().getFields ("field._keyed" );
90+ assertEquals (1 , keyedFields .length );
8891
89- IndexableField field2 = fields [ 1 ] ;
90- assertEquals ("field" , field2 . name ());
91- assertEquals ( new BytesRef ( "true" ), field2 . binaryValue ());
92- assertTrue (field2 .fieldType ().omitNorms ());
92+ assertEquals ( "field._keyed" , keyedFields [ 0 ]. name ()) ;
93+ assertEquals (new BytesRef ( "key \0 value" ), keyedFields [ 0 ]. binaryValue ());
94+ assertFalse ( keyedFields [ 0 ]. fieldType (). stored ());
95+ assertTrue (keyedFields [ 0 ] .fieldType ().omitNorms ());
9396
9497 IndexableField [] fieldNamesFields = parsedDoc .rootDoc ().getFields (FieldNamesFieldMapper .NAME );
9598 assertEquals (1 , fieldNamesFields .length );
96-
97- IndexableField fieldNamesField = fieldNamesFields [0 ];
98- assertEquals ("field" , fieldNamesField .stringValue ());
99+ assertEquals ("field" , fieldNamesFields [0 ].stringValue ());
99100 }
100101
101102 public void testDisableIndex () throws Exception {
@@ -248,20 +249,18 @@ public void testFieldMultiplicity() throws Exception {
248249 .endObject ());
249250
250251 ParsedDocument parsedDoc = mapper .parse (SourceToParse .source ("test" , "type" , "1" , doc , XContentType .JSON ));
252+
251253 IndexableField [] fields = parsedDoc .rootDoc ().getFields ("field" );
252254 assertEquals (3 , fields .length );
253-
254- IndexableField field1 = fields [0 ];
255- assertEquals ("field" , field1 .name ());
256- assertEquals (new BytesRef ("value" ), field1 .binaryValue ());
257-
258- IndexableField field2 = fields [1 ];
259- assertEquals ("field" , field2 .name ());
260- assertEquals (new BytesRef ("true" ), field2 .binaryValue ());
261-
262- IndexableField field3 = fields [2 ];
263- assertEquals ("field" , field3 .name ());
264- assertEquals (new BytesRef ("false" ), field3 .binaryValue ());
255+ assertEquals (new BytesRef ("value" ), fields [0 ].binaryValue ());
256+ assertEquals (new BytesRef ("true" ), fields [1 ].binaryValue ());
257+ assertEquals (new BytesRef ("false" ), fields [2 ].binaryValue ());
258+
259+ IndexableField [] keyedFields = parsedDoc .rootDoc ().getFields ("field._keyed" );
260+ assertEquals (3 , keyedFields .length );
261+ assertEquals (new BytesRef ("key1\0 value" ), keyedFields [0 ].binaryValue ());
262+ assertEquals (new BytesRef ("key2\0 true" ), keyedFields [1 ].binaryValue ());
263+ assertEquals (new BytesRef ("key3\0 false" ), keyedFields [2 ].binaryValue ());
265264 }
266265
267266 public void testIgnoreAbove () throws IOException {
@@ -292,7 +291,6 @@ public void testIgnoreAbove() throws IOException {
292291 assertEquals (0 , fields .length );
293292 }
294293
295-
296294 public void testNullValues () throws Exception {
297295 String mapping = Strings .toString (XContentFactory .jsonBuilder ().startObject ()
298296 .startObject ("type" )
@@ -326,8 +324,11 @@ public void testNullValues() throws Exception {
326324
327325 IndexableField [] otherFields = parsedDoc .rootDoc ().getFields ("other_field" );
328326 assertEquals (1 , otherFields .length );
329- IndexableField field = otherFields [0 ];
330- assertEquals (new BytesRef ("placeholder" ), field .binaryValue ());
327+ assertEquals (new BytesRef ("placeholder" ), otherFields [0 ].binaryValue ());
328+
329+ IndexableField [] prefixedOtherFields = parsedDoc .rootDoc ().getFields ("other_field._keyed" );
330+ assertEquals (1 , prefixedOtherFields .length );
331+ assertEquals (new BytesRef ("key\0 placeholder" ), prefixedOtherFields [0 ].binaryValue ());
331332 }
332333
333334 public void testSplitQueriesOnWhitespace () throws IOException {
0 commit comments