概述
在使用Elasticsearch
中,我们有时候需要查询出热门搜索词列表,那么可以通过下面方式获取。
本文示例介绍通过Spring Boot
来实现Elasticsearch
。
代码示例
特别注意:需要把搜索记录存入到es中,然后通过查询搜索历史获取热门记录
如果需要通过条件过滤,需要在setQuery
中指定过滤条件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| @Autowired private ElasticsearchTemplate elasticsearchTemplate;
@org.junit.Test public void sendSimpleMail() {
try { SearchRequestBuilder requestBuilder = elasticsearchTemplate.getClient().prepareSearch("search_log_index").setTypes("searchlog").setQuery(QueryBuilders.matchAllQuery());
SearchResponse actionGet = requestBuilder.addAggregation(AggregationBuilders.terms("hotKeyWord").field("keyword").size(10)).execute().actionGet(); Aggregations aggregations = actionGet.getAggregations(); Terms trem = aggregations.get("hotKeyWord"); List<Bucket> buckets = (List<Bucket>) trem.getBuckets(); List<String> hotkeyWordList = new ArrayList<>(); for (Bucket bucket : buckets) { String key = (String) bucket.getKey(); hotkeyWordList.add(key); } } catch (Exception e) { e.printStackTrace(); }
}
|