Elasticsearch5.5.1 使用JEST客户端高亮显示
来源:互联网 发布:cad专业绘图软件 编辑:程序博客网 时间:2024/06/16 18:06
高亮显示是在结果文档中显示查询中的哪个或哪些单词被匹配的过程。先来看看ES的脚本是如何显示高亮的:
数据如下:
在Sense中执行如下脚本
GET http://localhost:9200/article/content/_search { "query" : { "term" : { "view" : "100" } }, "highlight" : { "pre_tags" : [ "<em>" ], "post_tags" : [ "</em>" ], "fields" : { "view" : {} } }}
输出如下:
{ "took": 4, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 1, "max_score": 0.9808292, "hits": [ { "_index": "article", "_type": "content", "_id": "AV5Qs4GbXljy_f1_Lvwl", "_score": 0.9808292, "_source": { "author": "AAAA", "titile": "中国获租巴基斯坦瓜达尔港2000亩土地 为期43年", "tag": "JAVA,ANDROID,C++,LINUX", "content": "据了解,瓜达尔港务局于今年6月完成了1500亩土地的征收工作,另外500亩的征收工作也将很快完成", "view": "100", "date": "2017-09-05T14:21:34" }, "highlight": { "view": [ "<em>100</em>" ] } } ] }}
view中的值被加入了<em>标签.
注意:
要高亮显示的内容必须要包含在你查询的内容中,如果不在,就不能正确的显示。以下就是一个反例:
那么如何使用Jest客户端来高亮显示了?具体代码如下:
private static JestClient jestClient; private static String indexName = "article"; private static String typeName = "content"; @Before public void getClient() throws Exception{JestClientFactory factory = new JestClientFactory(); factory.setHttpClientConfig(new HttpClientConfig .Builder("http://localhost:9200") .gson(new GsonBuilder().setDateFormat("yyyy-MM-dd'T'hh:mm:ss").create()) .connTimeout(1500) .readTimeout(3000) .multiThreaded(true) .build()); jestClient=factory.getObject(); } /** * 搜索高亮显示 * @throws Exception */ @Test public void createSearch() throws Exception {SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.termQuery("view", "200"));HighlightBuilder highlightBuilder = new HighlightBuilder();highlightBuilder.field("view");//高亮titlehighlightBuilder.preTags("<em>").postTags("</em>");//高亮标签highlightBuilder.fragmentSize(500);//高亮内容长度searchSourceBuilder.highlighter(highlightBuilder);System.out.println(searchSourceBuilder.toString());Search search = new Search.Builder(searchSourceBuilder.toString()) .addIndex(indexName) .build();SearchResult result = jestClient.execute(search);System.out.println(result.getJsonString());System.out.println("本次查询共查到:"+result.getTotal()+"篇文章!");List<Hit<CsdnBlog,Void>> hits = result.getHits(CsdnBlog.class);System.out.println(hits.size());for (Hit<CsdnBlog, Void> hit : hits) {CsdnBlog source = hit.source;//获取高亮后的内容Map<String, List<String>> highlight = hit.highlight;List<String> views = highlight.get("view");//高亮后的titleif(views!=null){source.setView(views.get(0));}System.out.println("标题:"+source.getTitile());System.out.println("内容:"+source.getContent());System.out.println("浏览数:"+source.getView());System.out.println("标签:"+source.getTag());System.out.println("作者:"+source.getAuthor());}}
输出如下:
标题:中国获租巴基斯坦瓜达尔港2000亩土地 为期43年内容:据了解,瓜达尔港务局于今年6月完成了1500亩土地的征收工作,另外500亩的征收工作也将很快完成浏览数:<em>200</em>标签:JAVA,ANDROID,C++,LINUX作者:BBBB
阅读全文
0 0
- Elasticsearch5.5.1 使用JEST客户端高亮显示
- 使用elasticsearch 2.1 和 java客户端 jest 建立springmvc项目
- elasticsearch java客户端 - Jest
- elasticsearch5.5.2用javaAPI实现搜索结果高亮显示和搜索建议
- Jest
- Elasticsearch系列(十一)----Spring整合Elasticsearch5.5.1的TransportClient客户端
- elasticsearch RESTful搜索引擎-(java jest 使用[入门])
- elasticsearch RESTful搜索引擎-(java jest 使用[入门])
- elasticsearch 口水篇(3)java客户端 - Jest
- Elasticsearch系列(六)----JAVA客户端之Jest操作详解
- ElasticSearch5.0使用记录
- Myeclipse 高亮显示使用的变量
- 使用google插件高亮显示xml
- 使用Vim打造IDE--高亮显示
- 使用Vim打造IDE--高亮显示
- 使用Vim打造IDE--高亮显示
- elasticsearch结合spring springmvc jest 使用做成web架构
- ElasticSearch学习13_ElasticSearch RESTful搜索引擎_Java Jest使用入门
- VTK学习(五)
- 悬浮框移动(广告位)
- POJ 3278 HDU 2717 Catch That Cow
- 分布式任务队列与任务调度系统Celery入门
- win7为并存的python2.7安装numpy、matplotlib
- Elasticsearch5.5.1 使用JEST客户端高亮显示
- 防止SpringMVC的XSS攻击的方法
- pojo
- Android设计模式之(22)----桥接模式
- An internal error occurred during: "Launching XXX"解决办法
- js前端处理1970年毫秒数
- 排序
- spring拦截器实现demo
- 欢迎使用CSDN-markdown编辑器