'highlight of elasticsearch in java?
i need to highlight the match word in a document, in java client. i don't know where to fix highlight object this is my java code for search:
HighlightBuilder highlightBuilder = new HighlightBuilder().postTags("<highlight>").preTags("</highlight>").field("filename");
SearchRequest searchRequest = new SearchRequest("userdoc");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("filedata",word));
if(usertype.equals("user"))
{
queryBuilder.filter(QueryBuilders.termQuery("email", email));
}
searchSourceBuilder.query(queryBuilder);
searchRequest.source(searchSourceBuilder);
searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
Solution 1:[1]
You need to add highlightBuilder to searchSourceBuilder as shown below:
searchSourceBuilder.query(queryBuilder);
searchSourceBuilder.highlighter(highlightBuilder);
searchRequest.source(searchSourceBuilder);
Using below code you can get highlighting as well:
SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits.getHits()) {
Map<String, HighlightField> highlightFields = hit.getHighlightFields();
HighlightField highlight = highlightFields.get("title");
Text[] fragments = highlight.fragments();
String fragmentString = fragments[0].string();
}
Please check this documentation for more information about search API.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
