|
9 | 9 |
|
10 | 10 | package org.elasticsearch.index.query; |
11 | 11 |
|
| 12 | +import org.apache.lucene.analysis.Analyzer; |
12 | 13 | import org.apache.lucene.analysis.TokenStream; |
13 | 14 | import org.apache.lucene.analysis.core.WhitespaceAnalyzer; |
14 | 15 | import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; |
|
41 | 42 | import org.junit.Before; |
42 | 43 |
|
43 | 44 | import java.io.IOException; |
| 45 | +import java.io.StringReader; |
44 | 46 | import java.util.Arrays; |
45 | 47 | import java.util.Collections; |
46 | 48 | import java.util.EnumSet; |
@@ -393,6 +395,19 @@ public void testItemFromXContent() throws IOException { |
393 | 395 | assertEquals(expectedItem, newItem); |
394 | 396 | } |
395 | 397 |
|
| 398 | + public void testNonExistingAnalyzer() throws IOException { |
| 399 | + MoreLikeThisQueryBuilder moreLikeThisQueryBuilder = moreLikeThisQuery( |
| 400 | + new String[] { "name.first", "name.last" }, |
| 401 | + new String[] { "something" }, |
| 402 | + null |
| 403 | + ); |
| 404 | + moreLikeThisQueryBuilder.analyzer("thisDoesntExist"); |
| 405 | + SearchExecutionContext searchExecutionContext = createSearchExecutionContext(); |
| 406 | + Query query = moreLikeThisQueryBuilder.toQuery(searchExecutionContext); |
| 407 | + Analyzer analyzer = ((MoreLikeThisQuery) query).getAnalyzer(); |
| 408 | + assertThrows(IllegalArgumentException.class, () -> analyzer.tokenStream("thisDoesntExist", new StringReader("something"))); |
| 409 | + } |
| 410 | + |
396 | 411 | /** |
397 | 412 | * Check that this query is generally not cacheable, except when we fetch 0 items |
398 | 413 | */ |
|
0 commit comments