elasticsearch学习总结(三) Java API的使用范例1
来源:互联网 发布:人工智能行业报告 编辑:程序博客网 时间:2024/06/10 16:50
一、关键词查询
/**
* es中查询日志* @param page
* @param esAppLog
* @return
*/
public List<EsAppLog> getEsAppLogs(Page<EsAppLog> page, EsAppLog esAppLog) {
//前端参数
String index = esAppLog.getIndex();
String keyword = esAppLog.getKeyWord();//查询的索引数组
SearchRequestBuilder responsebuilder = client.prepareSearch(index.split(","));//关键词查询
if(StringUtils.isNotEmpty(keyword)){responsebuilder.setQuery(QueryBuilders.matchQuery("message", keyword));
}
if(null != page){
int size = page.getPageSize();
int start = (page.getPageNo() - 1) * size;
responsebuilder.setFrom(start).setSize(size);
}
//执行查询
SearchResponse myresponse = responsebuilder.setExplain(true).get();
SearchHits hits = myresponse.getHits();//总条数
if(null != page){
page.setCount(hits.getTotalHits());
}
//转换成对象
List<EsAppLog> logs = new ArrayList<EsAppLog>();EsAppLog log = null;
for (int i = 0; i < hits.getHits().length; i++) {
Map<String,Object> item = hits.getHits()[i].getSource();
log = new EsAppLog();
log.setIp((String)item.get("host"));
log.setTime((String)item.get("@timestamp"));
log.setLogName((String)item.get("path"));
log.setLogContent((String)item.get("message"));
logs.add(log);
}
return logs;
}
二、多条件查询并返回指定字段
public void getCPUEsData(){
//索引值
SearchRequestBuilder responsebuilder = client.prepareSearch("system");
//返回指定字段
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
String[] fields = {"@timestamp","value"};
FetchSourceContext sourceContext = new FetchSourceContext(fields);
searchSourceBuilder.fetchSource(sourceContext);
responsebuilder.setSource(searchSourceBuilder);
//collectd=cpu and type_instance=system条件查询
responsebuilder.setQuery(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("collectd_type", "cpu")).must(QueryBuilders.termQuery("type_instance", "system")));
//执行查询
SearchResponse myresponse = responsebuilder.get();
SearchHits hits = myresponse.getHits();
for (int i = 0; i < hits.getHits().length; i++) {
Map<String,Object> item = hits.getHits()[i].getSource();
System.out.println(item);
}
}
- elasticsearch学习总结(三) Java API的使用范例1
- elasticsearch学习总结(三) API的使用范例2
- elasticsearch学习总结(三) API的使用范例3
- elasticsearch学习总结(三) API的使用范例4
- elasticsearch学习总结(三) API的使用范例5
- elasticsearch学习总结(三) API的使用范例6
- 使用Elasticsearch的java api,操作elasticsearch
- Elasticsearch Java API 的使用(1)—创建客户端
- ElasticSearch Java API的使用
- Elasticsearch的Java API使用
- elasticsearch-java api之搜索(三)
- Elasticsearch JAVA API 学习
- elasticSearch Java Api使用
- Elasticsearch Java API 的使用(2)—创建索引
- Elasticsearch Java API 的使用(3)—添加索引
- Elasticsearch Java API 的使用(4)—更新索引
- Elasticsearch Java API 的使用(6)—时间聚合
- elasticsearch java api的基本使用
- 1.IDA-基本操作(改变Image Base地址、打开、保存IDA的不同方式)
- Sturts2的知识点总结
- python中的map函数,reduce函数,lambda函数
- 九九乘法
- 1.自定义控件简单开启——圆形进度条
- elasticsearch学习总结(三) Java API的使用范例1
- 将日期向后或向前推n天
- Ansible部署tomcat
- 用C语言打印菱形的技巧粗解
- win7 升级IE11报错(无法安装)
- 算法设计期末作业03-8.10
- RocketMQ学习:Pull和Push
- CentOS 6.4安装LibreOffice及字体安装
- yum 安装 VSFTPD