use of org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Field in project elasticsearch by elastic.
the class HighlighterSearchIT method testHighlightUsesHighlightQuery.
public void testHighlightUsesHighlightQuery() throws IOException {
assertAcked(prepareCreate("test").addMapping("type1", "text", "type=text," + randomStoreField() + "term_vector=with_positions_offsets,index_options=offsets"));
ensureGreen();
index("test", "type1", "1", "text", "Testing the highlight query feature");
refresh();
for (String type : ALL_TYPES) {
HighlightBuilder.Field field = new HighlightBuilder.Field("text");
HighlightBuilder highlightBuilder = new HighlightBuilder().field(field).highlighterType(type);
SearchRequestBuilder search = client().prepareSearch("test").setQuery(QueryBuilders.matchQuery("text", "testing")).highlighter(highlightBuilder);
Matcher<String> searchQueryMatcher = equalTo("<em>Testing</em> the highlight query feature");
SearchResponse response = search.get();
assertHighlight(response, 0, "text", 0, searchQueryMatcher);
field = new HighlightBuilder.Field("text");
Matcher<String> hlQueryMatcher = equalTo("Testing the highlight <em>query</em> feature");
field.highlightQuery(matchQuery("text", "query"));
highlightBuilder = new HighlightBuilder().field(field);
search = client().prepareSearch("test").setQuery(QueryBuilders.matchQuery("text", "testing")).highlighter(highlightBuilder);
response = search.get();
assertHighlight(response, 0, "text", 0, hlQueryMatcher);
// Make sure the highlightQuery is taken into account when it is set on the highlight context instead of the field
highlightBuilder.highlightQuery(matchQuery("text", "query"));
field.highlighterType(type).highlightQuery(null);
response = search.get();
assertHighlight(response, 0, "text", 0, hlQueryMatcher);
}
}
use of org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Field in project elasticsearch by elastic.
the class HighlighterSearchIT method testPostingsHighlighterMultipleFields.
public void testPostingsHighlighterMultipleFields() throws Exception {
assertAcked(prepareCreate("test").addMapping("type1", type1PostingsffsetsMapping()).get());
ensureGreen();
index("test", "type1", "1", "field1", "The <b>quick<b> brown fox. Second sentence.", "field2", "The <b>slow<b> brown fox. Second sentence.");
refresh();
for (String type : UNIFIED_AND_NULL) {
SearchResponse response = client().prepareSearch("test").setQuery(QueryBuilders.matchQuery("field1", "fox")).highlighter(new HighlightBuilder().field(new Field("field1").preTags("<1>").postTags("</1>").requireFieldMatch(true).highlighterType(type))).get();
assertHighlight(response, 0, "field1", 0, 1, equalTo("The <b>quick<b> brown <1>fox</1>."));
}
}
use of org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Field in project elasticsearch by elastic.
the class HighlighterSearchIT method testHighlightingWithStoredKeyword.
public void testHighlightingWithStoredKeyword() throws IOException {
XContentBuilder mappings = jsonBuilder();
mappings.startObject();
mappings.startObject("type").startObject("properties").startObject("text").field("type", "keyword").field("store", true).endObject().endObject().endObject();
mappings.endObject();
assertAcked(prepareCreate("test").addMapping("type", mappings));
client().prepareIndex("test", "type", "1").setSource(jsonBuilder().startObject().field("text", "foo").endObject()).get();
refresh();
for (String type : UNIFIED_AND_NULL) {
SearchResponse search = client().prepareSearch().setQuery(matchQuery("text", "foo")).highlighter(new HighlightBuilder().field(new Field("text")).highlighterType(type)).get();
assertHighlight(search, 0, "text", 0, equalTo("<em>foo</em>"));
}
}
use of org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Field in project elasticsearch by elastic.
the class HighlighterSearchIT method testFunctionScoreQueryHighlight.
public void testFunctionScoreQueryHighlight() throws Exception {
client().prepareIndex("test", "type", "1").setSource(jsonBuilder().startObject().field("text", "brown").endObject()).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
for (String type : UNIFIED_AND_NULL) {
SearchResponse searchResponse = client().prepareSearch().setQuery(new FunctionScoreQueryBuilder(QueryBuilders.prefixQuery("text", "bro"))).highlighter(new HighlightBuilder().field(new Field("text")).highlighterType(type)).get();
assertHitCount(searchResponse, 1);
HighlightField field = searchResponse.getHits().getAt(0).getHighlightFields().get("text");
assertThat(field.getFragments().length, equalTo(1));
assertThat(field.getFragments()[0].string(), equalTo("<em>brown</em>"));
}
}
use of org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Field in project elasticsearch by elastic.
the class HighlighterSearchIT method testHighlightingWhenFieldsAreNotStoredThereIsNoSource.
public void testHighlightingWhenFieldsAreNotStoredThereIsNoSource() throws IOException {
XContentBuilder mappings = jsonBuilder();
mappings.startObject();
mappings.startObject("type").startObject("_source").field("enabled", false).endObject().startObject("properties").startObject("unstored_field").field("index_options", "offsets").field("term_vector", "with_positions_offsets").field("type", "text").field("store", false).endObject().startObject("text").field("index_options", "offsets").field("term_vector", "with_positions_offsets").field("type", "text").field("store", true).endObject().endObject().endObject();
mappings.endObject();
assertAcked(prepareCreate("test").addMapping("type", mappings));
client().prepareIndex("test", "type", "1").setSource(jsonBuilder().startObject().field("unstored_text", "text").field("text", "text").endObject()).get();
refresh();
for (String type : ALL_TYPES) {
SearchResponse search = client().prepareSearch().setQuery(constantScoreQuery(matchQuery("text", "text"))).highlighter(new HighlightBuilder().field(new Field("*").highlighterType(type))).get();
assertHighlight(search, 0, "text", 0, equalTo("<em>text</em>"));
search = client().prepareSearch().setQuery(constantScoreQuery(matchQuery("text", "text"))).highlighter(new HighlightBuilder().field(new Field("unstored_text"))).get();
assertNoFailures(search);
assertThat(search.getHits().getAt(0).getHighlightFields().size(), equalTo(0));
}
}
Aggregations