[TEST] Add simple test for selecting fiels to be included in mlt query

This commit is contained in:
Simon Willnauer 2015-06-09 20:16:40 +02:00
parent 9fa69bd663
commit b0466bbacd
1 changed files with 45 additions and 4 deletions

View File

@ -490,7 +490,7 @@ public class MoreLikeThisTests extends ElasticsearchIntegrationTest {
.field("date", "this is not a date!") .field("date", "this is not a date!")
.endObject(); .endObject();
MoreLikeThisQueryBuilder mltQuery = moreLikeThisQuery() MoreLikeThisQueryBuilder mltQuery = moreLikeThisQuery()
.docs((Item) new Item().doc(malformedFieldDoc).index("test").type("type1")) .like((Item) new Item().doc(malformedFieldDoc).index("test").type("type1"))
.minTermFreq(0) .minTermFreq(0)
.minDocFreq(0) .minDocFreq(0)
.minimumShouldMatch("0%"); .minimumShouldMatch("0%");
@ -502,7 +502,7 @@ public class MoreLikeThisTests extends ElasticsearchIntegrationTest {
logger.info("Checking with an empty document ..."); logger.info("Checking with an empty document ...");
XContentBuilder emptyDoc = jsonBuilder().startObject().endObject(); XContentBuilder emptyDoc = jsonBuilder().startObject().endObject();
mltQuery = moreLikeThisQuery() mltQuery = moreLikeThisQuery()
.docs((Item) new Item().doc(emptyDoc).index("test").type("type1")) .like((Item) new Item().doc(emptyDoc).index("test").type("type1"))
.minTermFreq(0) .minTermFreq(0)
.minDocFreq(0) .minDocFreq(0)
.minimumShouldMatch("0%"); .minimumShouldMatch("0%");
@ -514,7 +514,7 @@ public class MoreLikeThisTests extends ElasticsearchIntegrationTest {
logger.info("Checking when document is malformed ..."); logger.info("Checking when document is malformed ...");
XContentBuilder malformedDoc = jsonBuilder().startObject(); XContentBuilder malformedDoc = jsonBuilder().startObject();
mltQuery = moreLikeThisQuery() mltQuery = moreLikeThisQuery()
.docs((Item) new Item().doc(malformedDoc).index("test").type("type1")) .like((Item) new Item().doc(malformedDoc).index("test").type("type1"))
.minTermFreq(0) .minTermFreq(0)
.minDocFreq(0) .minDocFreq(0)
.minimumShouldMatch("0%"); .minimumShouldMatch("0%");
@ -530,7 +530,7 @@ public class MoreLikeThisTests extends ElasticsearchIntegrationTest {
.field("date", "1000-01-01") // should be properly parsed but ignored ... .field("date", "1000-01-01") // should be properly parsed but ignored ...
.endObject(); .endObject();
mltQuery = moreLikeThisQuery() mltQuery = moreLikeThisQuery()
.docs((Item) new Item().doc(normalDoc).index("test").type("type1")) .like((Item) new Item().doc(normalDoc).index("test").type("type1"))
.minTermFreq(0) .minTermFreq(0)
.minDocFreq(0) .minDocFreq(0)
.minimumShouldMatch("100%"); // strict all terms must match but date is ignored .minimumShouldMatch("100%"); // strict all terms must match but date is ignored
@ -588,4 +588,45 @@ public class MoreLikeThisTests extends ElasticsearchIntegrationTest {
assertHitCount(response, numFields - (i + 1)); assertHitCount(response, numFields - (i + 1));
} }
} }
@Test
public void testSelectFields() throws IOException, ExecutionException, InterruptedException {
assertAcked(prepareCreate("test")
.addMapping("type1", "text", "type=string,analyzer=whitespace", "text1", "type=string,analyzer=whitespace"));
ensureGreen("test");
indexRandom(true, client().prepareIndex("test", "type1", "1").setSource(jsonBuilder()
.startObject()
.field("text", "hello world")
.field("text1", "elasticsearch")
.endObject()),
client().prepareIndex("test", "type1", "2").setSource(jsonBuilder()
.startObject()
.field("text", "goodby moon")
.field("text1", "elasticsearch")
.endObject()));
MoreLikeThisQueryBuilder mltQuery = moreLikeThisQuery()
.like(new Item("test", "type1", "1"))
.minTermFreq(0)
.minDocFreq(0)
.include(true)
.minimumShouldMatch("1%");
SearchResponse response = client().prepareSearch("test").setTypes("type1")
.setQuery(mltQuery).get();
assertSearchResponse(response);
assertHitCount(response, 2);
mltQuery = moreLikeThisQuery("text")
.like(new Item("test", "type1", "1"))
.minTermFreq(0)
.minDocFreq(0)
.include(true)
.minimumShouldMatch("1%");
response = client().prepareSearch("test").setTypes("type1")
.setQuery(mltQuery).get();
assertSearchResponse(response);
assertHitCount(response, 1);
}
} }