您的位置 首页 java

最新Java Elasticsearch 7.10教程(六)-词频统计

一、高亮查询方案

1、直接基于http发送请求

2、基于 spring boot Repositories

3、基于原生Rest Client(HighRestClient)

二、具体实现

1、直接基于http发送请求

#词频统计

 DELETE message_index

#创建索引数据结构

PUT message_index

{

"mappings": {

"properties":{

"message": {

"analyzer": "ik_smart",

"type": "text",

"fielddata":"true"

}

}

}

}

#增加doc1

PUT /message_index/_doc/1

{

"message":"沉溺于「轻易获得高成就感」的事情:有意无意地寻求用很小付出获得很大「回报」的偏方,哪怕回报是虚拟的"

}

#增加doc2

PUT /message_index/_doc/2

{

"message":"过度追求“短期回报”可以先思考这样一个问题:为什么玩王者荣耀沉溺我们总是停不下来回报"

}

#增加doc3

PUT /message_index/_doc/3

{

"message":"过度追求的努力无法带来超额的回报,就因此放弃了努力。这点在聪明人身上尤其明显。以前念本科的时候身在沉溺"

}

#aggs为Aggregations(聚合)缩写

#size 10 为前10的统计结果

#默认热点降序出结果

POST /message_index/_search

{

"size" : 0,

"aggs" : {

"messages" : {

"terms" : {

"size" : 10,

"field" : "message"
          }
   }
  }
}  

当方法使用的是fielddata的方式,另外就是也有使用keyword的方式。keyword与fielddata类似。他们都有一些弊端,如fielddata会占用堆空间,keyword不支持分词(适合放一些类似邮件账号这种数据)。在官网还有另一种词频统计的方法,就是termvectors词条向量的方式,具体见以下链接。

2、基于springboot Repositories

暂时没有找到Repositories词频统计的代码,如果有这块代码的大神欢迎留言

3、基于原生Rest Client(HighRestClient)

 /**

* 词频统计 aggregate 

*/
@Test

public  void  aggregate() throws IO Exception  {

SearchRequest search Request  = new SearchRequest("person-index");

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

TermsAggregationBuilder aggregation = AggregationBuilders.terms("person-aggregate")

.field("firstname");

searchSourceBuilder.aggregation(aggregation);

searchRequest.source(searchSourceBuilder);

SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);

Aggregations aggregations = searchResponse.getAggregations();

Terms byCompanyAggregation = aggregations.get("person-aggregate");

List<? extends Terms.Bucket> elasticBucket = byCompanyAggregation.getBuckets();

elasticBucket.forEach(el -> {

log.info("key:" + el.getKeyAsString());

log.info("doc_count:" + el.getDocCount());

});
}  

源代码仓库:

最新Java Elasticsearch 7.10教程(汇总)

文章来源:智云一二三科技

文章标题:最新Java Elasticsearch 7.10教程(六)-词频统计

文章地址:https://www.zhihuclub.com/183261.shtml

关于作者: 智云科技

热门文章

网站地图