栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通过Spring数据Elasticsearch提供突出显示

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通过Spring数据Elasticsearch提供突出显示

从spring数据elasticsearch中的测试用例中,我找到了解决方案:

这会有所帮助。

@Testpublic 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));}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号