@@ -109,12 +109,62 @@ public void testDocFreqs() throws IOException {
109109 IndexService test = indicesService .indexService (resolveIndex ("test" ));
110110 IndexShard shard = test .getShardOrNull (0 );
111111 assertThat (shard , notNullValue ());
112- TermVectorsResponse response = TermVectorsService .getTermVectors (shard , request );
112+ TermVectorsResponse response = TermVectorsService .getTermVectors (shard , request );
113+ assertEquals (1 , response .getFields ().size ());
113114
114115 Terms terms = response .getFields ().terms ("text" );
115116 TermsEnum iterator = terms .iterator ();
116117 while (iterator .next () != null ) {
117118 assertEquals (max , iterator .docFreq ());
118119 }
119- }
120+ }
121+
122+ public void testWithIndexedPhrases () throws IOException {
123+ XContentBuilder mapping = jsonBuilder ()
124+ .startObject ()
125+ .startObject ("_doc" )
126+ .startObject ("properties" )
127+ .startObject ("text" )
128+ .field ("type" , "text" )
129+ .field ("index_phrases" , true )
130+ .field ("term_vector" , "with_positions_offsets_payloads" )
131+ .endObject ()
132+ .endObject ()
133+ .endObject ()
134+ .endObject ();
135+ Settings settings = Settings .builder ()
136+ .put ("number_of_shards" , 1 )
137+ .build ();
138+ createIndex ("test" , settings , "_doc" , mapping );
139+ ensureGreen ();
140+
141+ int max = between (3 , 10 );
142+ BulkRequestBuilder bulk = client ().prepareBulk ();
143+ for (int i = 0 ; i < max ; i ++) {
144+ bulk .add (client ().prepareIndex ("test" , "_doc" , Integer .toString (i ))
145+ .setSource ("text" , "the quick brown fox jumped over the lazy dog" ));
146+ }
147+ bulk .get ();
148+
149+ TermVectorsRequest request = new TermVectorsRequest ("test" , "_doc" , "0" ).termStatistics (true );
150+
151+ IndicesService indicesService = getInstanceFromNode (IndicesService .class );
152+ IndexService test = indicesService .indexService (resolveIndex ("test" ));
153+ IndexShard shard = test .getShardOrNull (0 );
154+ assertThat (shard , notNullValue ());
155+ TermVectorsResponse response = TermVectorsService .getTermVectors (shard , request );
156+ assertEquals (2 , response .getFields ().size ());
157+
158+ Terms terms = response .getFields ().terms ("text" );
159+ TermsEnum iterator = terms .iterator ();
160+ while (iterator .next () != null ) {
161+ assertEquals (max , iterator .docFreq ());
162+ }
163+
164+ Terms phrases = response .getFields ().terms ("text._index_phrase" );
165+ TermsEnum phraseIterator = phrases .iterator ();
166+ while (phraseIterator .next () != null ) {
167+ assertEquals (max , phraseIterator .docFreq ());
168+ }
169+ }
120170}
0 commit comments