How to provide highlighting with Spring data elasticsearch
2016-11-25 19:36
567 查看
How to provide highlighting with Spring data elasticsearch
@Test public void shouldReturnHighlightedFieldsForGivenQueryAndFields() { //given String documentId = randomNumeric(5); String actualMessage = "some test message"; String highlightedMessage = "some <em>test</em> message"; SampleEntity sampleEntity = SampleEntity.builder().id(documentId) .message(actualMessage) .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = getIndexQuery(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); SearchQuery searchQuery = new NativeSearchQueryBuilder() .withQuery(termQuery("message", "test")) .withHighlightFields(new HighlightBuilder.Field("message")) .build(); Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class, new SearchResultMapper() { @Override public <T> Page<T> mapResults(SearchResponse response, Class<T> clazz, Pageable pageable) { List<SampleEntity> chunk = new ArrayList<SampleEntity>(); for (SearchHit searchHit : response.getHits()) { if (response.getHits().getHits().length <= 0) { return null; } SampleEntity user = new SampleEntity(); user.setId(searchHit.getId()); user.setMessage((String) searchHit.getSource().get("message")); user.setHighlightedMessage(searchHit.getHighlightFields().get("message").fragments()[0].toString()); chunk.add(user); } if (chunk.size() > 0) { return new PageImpl<T>((List<T>) chunk); } return null; } }); assertThat(sampleEntities.getContent().get(0).getHighlightedMessage(), is(highlightedMessage)); }
相关文章推荐
- How to Build a Search Page with Elasticsearch and .NET
- How To Configure Elasticsearch on Hadoop with HDP
- How to setup multiple data sources with Spring and JPA
- How to use Elasticsearch with MongoDB?
- How to setup multiple data sources with Spring and JPA
- Spring Data Elasticsearch 和 x-pack 用户名/密码验证连接
- How to create custom navigation menu in SharePoint with XML data source 使用XML数据源在SharePoint创建自定义导航菜单
- mysql load data to elasticsearch 脚本
- How to create iOS 8 Today extension and share data with containing app – tutorial
- QT14 how to save data in sqlite database with pushbutton
- 使用Spring Data Elasticsearch操作es(1)--环境搭建
- How To Synchronize Core Data with a Web Service – Part 2
- Spring Data Elasticsearch
- elasticsearch install and how to use javaapi
- Spring Boot + Spring Data + Elasticsearch实例
- How to load large files safely into InnoDB with LOAD DATA INFILE
- android how to deal with data when listview refresh
- Spring data elasticsearch的使用
- How to populate the datagrid on background thread with data binding by using Visual C#