您的位置:首页 > 其它

Elasticsearch API模糊查询简单应用

2018-08-01 11:30 1086 查看

Elasticsearch API模糊查询简单应用

es 调用api,一点小心得

在业务逻辑中,查询数据库方向会使用like去查询某些字段,但是like查询不走索引所以会增加负载,在此处优化使用es解决当前问题,首先将数据库表现有数据存入es中

代码块

直接上代码:

/**声明es连接*/
TransportClient client = ESTransportClient.getInstance();
SearchRequestBuilder requestBuilder = client.prepareSearch("fk_caibo").setTypes("yt_user");
// 声明where条件
BoolQueryBuilder qbs = QueryBuilders.boolQuery();

/**此处使用模糊匹配查询 类比数据库中 like*/
QueryBuilder qb1 = QueryBuilders.matchPhraseQuery("NICK_NAME", name);
BoolQueryBuilder bqb1 = QueryBuilders.boolQuery().must(qb1);
qbs.must(bqb1);

requestBuilder.setQuery(qbs);

SearchResponse response = requestBuilder.setFrom(0).setSize(10).execute().actionGet();
SearchHits hits = response.getHits();
if (hits.getHits().length > 0) {
for (int i = 0; i < hits.getHits().length; i++) {
SearchHit hit = hits.getHits()[i];
Map<String, Object> user_map = hit.getSource();
......
}
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: