当前位置: 首页>>代码示例>>Java>>正文


Java SearchRequestBuilder.addHighlightedField方法代码示例

本文整理汇总了Java中org.elasticsearch.action.search.SearchRequestBuilder.addHighlightedField方法的典型用法代码示例。如果您正苦于以下问题:Java SearchRequestBuilder.addHighlightedField方法的具体用法?Java SearchRequestBuilder.addHighlightedField怎么用?Java SearchRequestBuilder.addHighlightedField使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.elasticsearch.action.search.SearchRequestBuilder的用法示例。


在下文中一共展示了SearchRequestBuilder.addHighlightedField方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: queryForObject

import org.elasticsearch.action.search.SearchRequestBuilder; //导入方法依赖的package包/类
/**
 * 查询返回一个Map对象
 *
 * @param esIndexName
 * @param type
 * @param fields
 * @param content
 * @param sortField
 * @param order
 * @param from
 * @param size
 * @return
 */

public List<Map<String, Object>> queryForObject(String esIndexName, String type, String[] fields, String content, String sortField, SortOrder order, List<String> heightFields, int from, int size) {
    SearchRequestBuilder reqBuilder = esClient.prepareSearch(esIndexName)
            .setTypes(type).setSearchType(SearchType.DEFAULT)
            .setExplain(true);
    QueryStringQueryBuilder queryString = QueryBuilders.queryStringQuery("\"" + content + "\"");
    for (String k : fields) {
        queryString.field(k);
    }
    queryString.minimumShouldMatch("10");
    reqBuilder.setExplain(true);

    reqBuilder.setQuery(QueryBuilders.boolQuery().should(queryString))
            .setExplain(true);
    if (StringUtils.isNotEmpty(sortField) && order != null) {
        reqBuilder.addSort(sortField, order);
    }
    if (from >= 0 && size > 0) {
        reqBuilder.setFrom(from).setSize(size);
    }
    //设置高亮显示
    if (heightFields != null) {
        for (String hs : heightFields)
            reqBuilder.addHighlightedField(hs);
    }
    reqBuilder.setHighlighterPreTags("<span style=\"color:red\">");
    reqBuilder.setHighlighterPostTags("</span>");
    SearchResponse resp = reqBuilder.execute().actionGet();
    SearchHit[] hits = resp.getHits().getHits();

    List<Map<String, Object>> results = new ArrayList<Map<String, Object>>();
    for (SearchHit hit : hits) {
        Map<String, Object> map = new HashMap<String, Object>();
        for (String key : hit.getSource().keySet()) {
            if (heightFields != null && heightFields.contains(key)) {
                map.put(key, hit.getHighlightFields().get(key).fragments()[0]);
            } else
                map.put(key, hit.getSource().get(key));

        }
        results.add(map);
    }
    return results;
}
 
开发者ID:aillamsun,项目名称:spring-boot-elastcsearch-example,代码行数:58,代码来源:EsNotEntityDao.java


注:本文中的org.elasticsearch.action.search.SearchRequestBuilder.addHighlightedField方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。