@@ -109,12 +109,62 @@ public void testDocFreqs() throws IOException {
109
109
IndexService test = indicesService .indexService (resolveIndex ("test" ));
110
110
IndexShard shard = test .getShardOrNull (0 );
111
111
assertThat (shard , notNullValue ());
112
- TermVectorsResponse response = TermVectorsService .getTermVectors (shard , request );
112
+ TermVectorsResponse response = TermVectorsService .getTermVectors (shard , request );
113
+ assertEquals (1 , response .getFields ().size ());
113
114
114
115
Terms terms = response .getFields ().terms ("text" );
115
116
TermsEnum iterator = terms .iterator ();
116
117
while (iterator .next () != null ) {
117
118
assertEquals (max , iterator .docFreq ());
118
119
}
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
+ }
120
170
}
0 commit comments