ElasticSearch条件查询高亮实现restful api以及java代码实现

elasticsearch条件查询高亮实现restful api以及java代码实现

restful api实现:

post http://192.168.1.111:9200/film/dongzuo/_search/

{

  "query":{

     "match":{"title":"战"}

  },

  "_source":{

    "include":["title","price"]

  },

  "highlight":{

      "fields":{"title":{}}

   }

}


java代码实现:

/**
 * 条件查询高亮实现
 * @throws Exception
 */
@Test
public void searchHighlight()throws Exception{
    SearchRequestBuilder srb=client.prepareSearch("film").setTypes("dongzuo");
    HighlightBuilder highlightBuilder=new HighlightBuilder();
    highlightBuilder.preTags("<h2>");
    highlightBuilder.postTags("</h2>");
    highlightBuilder.field("title");
    SearchResponse sr=srb.setQuery(QueryBuilders.matchQuery("title", "战"))
            .highlighter(highlightBuilder)
            .setFetchSource(new String[]{"title","price"}, null)
            .execute()
            .actionGet(); // 分页排序所有
    SearchHits hits=sr.getHits();
    for(SearchHit hit:hits){
        System.out.println(hit.getSourceAsString());
        System.out.println(hit.getHighlightFields());
    }
}

运行输出:

{"price":"38","title":"战狼2"}

{title=[title], fragments[[<h2>战</h2>狼2]]}

{"price":"55","title":"星球大战8:最后的绝地武士"}

{title=[title], fragments[[星球大<h2>战</h2>8:最后的绝地武士]]}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值