Elasticarch(ES6)------(5)kibana的es查询、mysql查。。。

更新时间:2023-07-18 08:00:07 阅读: 评论:0

Elasticarch(ES6)------(5)kibana的es查询、mysql查。
。。
准备数据测试数据
我这⾥提前在mysql中造好了⼀些数据,通过javaAPI导⼊到es中
mysql建表语句
CREATE TABLE `product_item` (
`product_id` int NOT NULL AUTO_INCREMENT,
`product_name` varchar(256) NOT NULL COMMENT '产品名称',
`price` double(18,2) NOT NULL COMMENT '价格',
`count` int NOT NULL COMMENT '数量',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',雅思初级
`supplier_id` bigint DEFAULT NULL COMMENT '供应商ID',
PRIMARY KEY (`product_id`) USING BTREE,
KEY `idx_product_name` (`product_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='商品表'; es索引信息,这种创建⽅式不考虑分词
mysql数据导⼊ES,java使⽤BulkProcessor做ES批量导⼊,这⾥就不多介绍了
@PostMapping(value = "/db-to-es")
public BaRespon dbToEs() throws InterruptedException {
List<ProductItem> productItemList = ProductItemList();
EsManager esManager = new EsManager();
BulkProcessor bulkProcessor = null;
try {
bulkProcessor = esManager.bulkProcessor();
四级成绩查询身份证
} catch (UnknownHostException e) {
e.printStackTrace();
}
财税2008 170号for (ProductItem var1 : productItemList) {
String s = new Gson().toJson(var1);
bulkProcessor.add(new IndexRequest("product_item", "_doc", ProductId().toString()).source(s, XContentType.JSON));
}
bulkProcessor.awaitClo(30, TimeUnit.SECONDS);
return BaRespon.ok("保存数据成功:", productItemList.size());
}
mysql数据
ES数据查看
进⼊正题
1. mysql的 = 查询对应es的term
lect *from product_item where product_id='8001'
ES 查询
GET product_item/_arch
{
"query": {
"term": {
"productId": {
"value": "8001"
}
}
}
}
java代码
@PostMapping(value = "/arch/term")
public BaRespon term(){
//Term查询
TermQueryBuilder termQueryBuilder = Query("productId","8001");
//在这⾥输⼊索引名称和type类型
SearchRespon respon = transportClient.prepareSearch("product_item").tTypes("_doc")                //设置查询类型java
.
tSearchType(SearchType.DFS_QUERY_THEN_FETCH)
//设置查询关键词
.tQuery(termQueryBuilder)
//返回搜索响应信息
.get();
//打印下查询条件
System.out.println("termQueryBuilder="+termQueryBuilder);
SearchHits hits = Hits();
List<ProductItem> list = new ArrayList<>();
ProductItem productItem;
for (SearchHit archHit : hits) {
Map<String, Object> sourceAsMap = SourceAsMap();
productItem = new ProductItem();
System.out.printf("archHit="+archHit);
productItem.tProductId(Long.("productId").toString()));
productItem.tPrice(Double.("price").toString()));
productItem.("productName").toString());
productItem.tSupplierId(Long.("supplierId").toString()));
productItem.tCount(Integer.("count").toString()));
四六级准考证号忘了怎么查分list.add(productItem);
}
return BaRespon.ok("success:", list);
abba
}
scratchpad2. like 查询,对应 es的wildcard  并对结果聚合 group by
ES查询 from=0 ,size=0 就是不显⽰hits结果内容,通过结果图可以看出来,这⾥着重说⼀下,from=0 并不是从第⼏页,⽽是从第⼏⾏,后续写分页查询会在⽤到这⾥。aggs是对结果进⾏聚合,聚合器的内容也很多,后续有时间会单独写⼀篇
GET product_item/_arch
{
"query": {
"wildcard" : {
"productName" : "*显⽰器*"
}
},
"from": 0,
"size": 0,
"aggs": {
"distinct": {
"terms": {
"field": "productName"
}
karaoke}
}
}
buckets中的doc_conut 就是总数,和count(*)⼀样
java代码
/
**
* 模糊查询,结果聚合
* @return
*/
托福词汇速记精典@RequestMapping(value = "/arch/wildcard", method = RequestMethod.POST)
public BaRespon<List<CateAttrRevi>> wildcard() {
AggregationBuilder aggregationBuilder = AggregationBuilders
.terms("productName_aggs").field("productName");
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//模糊查询银行英语
boolQueryBuilder.must(QueryBuilders.wildcardQuery("productName","*显⽰器*"));
SearchRespon respon = transportClient.prepareSearch("product_item").tTypes("_doc")
//设置查询类型java
.tSearchType(SearchType.DFS_QUERY_THEN_FETCH)
lemon tree什么意思//设置聚合器
.addAggregation(aggregationBuilder)
//设置查询关键词
.tQuery(boolQueryBuilder)
//都设置为0,不显⽰hits结果内容
.tFrom(0)
.tSize(0)
.get();
Terms terms = Aggregations().get("productName_aggs");
Map<String, Long> map = new HashMap<>();
for(int i=0;i&Buckets().size();i++) {
map.Buckets().get(i).getKey().toString(),Buckets().get(i).getDocCount());        }
return BaRespon.ok(map);
}

本文发布于:2023-07-18 08:00:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/180963.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   数据   设置   结果
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图