脚本宝典收集整理的这篇文章主要介绍了ElasticSearch-java实例,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
查看所有数据
- @H_126_5@DQL
curl -xpOST 'localhost:9200/bank/account/_seArch?PRetty' -d ' { "query": { "match_all": {} } }'
java api
QueryBuilder qb = QueryBuilders.matchAllQuery(); Searchresponse searchResponse = client.prepareSearch("bank").setTyPEs("account").setQuery(qb).get();
select * From account limIT 0,10
分页查询(20-40)
DQL
curl -XPOST 'localhost:9200/bank/account/_search?pretty' -d ' { "query": { "match_all": {} }, "from": 20, "size": 40 }'
java api
QueryBuilder qb = QueryBuilders.matchAllQuery(); SearchResponse searchResponse = client.prepareSearch("bank").setTypes("account").setQuery(qb).setFrom(20).setSize(20).get();
sql
select * from account limit 20,20
按照字段排序
DQL
curl -XPOST 'localhost:9200/bank/account/_search?pretty' -d ' { "query": { "match_all": {} }, "sort": { "age": { "order": "desc" } } }'
java api
QueryBuilder qb = QueryBuilders.matchAllQuery(); SortBuilder sb = SortBuilders.fieldSort("age").order(SortOrder.DESC); SearchResponse searchResponse = client.prepareSearch("bank").setTypes("account").setQuery(qb).addSort(sb).get();
sql
select * from account order by age desc limit 0,10
指定_source字段
DQL
java api
QueryBuilder qb = QueryBuilders.matchAllQuery(); SearchSourceBuilder ssb = new SearchSourceBuilder(); ssb.docValUEFIeld("age"); SearchResponse searchResponse = client.prepareSearch("bank").setTypes("account").setQuery(qb).setSource(ssb).get();
sql
select age from account
match查询
DQL
curl -XPOST 'localhost:9200/bank/account/_search?pretty' -d ' { "query": { "bool": { "should": [ { "match": { "Firstname": "sargent" } }, { "match": { "lastname": "ayala" } } ] } } }'
java api
QueryBuilder qb1 = QueryBuilders.termQuery("firstname", "sargent"); QueryBuilder qb2 = QueryBuilders.termQuery("lastname", "ayala"); QueryBuilder qb = QueryBuilders.boolQuery().should(qb1).should(qb2); SearchResponse searchResponse = client.prepareSearch("bank").setTypes("account").setQuery(qb).get();
sql
select * from account where firstname = 'sargent' or lastname='ayala' limit 0,10
通过过滤器查询
DQL
curl -XPOST 'localhost:9200/top_user/_search?pretty' -d ' { "query": { "filtered": { "query": { "match_all": {} }, "filter": { "range": { "age": { "gte": 20, "lte": 40 } } } } } }'
java api
QueryBuilder qb = QueryBuilders.rangeQuery("age").gt(20).lt(40); SearchResponse searchResponse = client.prepareSearch("bank").setTypes("account").setPostFilter(qb).get();
sql
select * from account where age >=20 and age <=40 limit 0,10
聚合查询
DQL
curl -XPOST 'localhost:9200/top_user/_search?pretty' -d ' { "size": 0, "aggs": { "group_by_city": { "terms": { "field": "age", "order":{ "_count":"desc" } } } } }'
java api
AggregationBuilder aggs = AggregationBuilders.terms("group_by_age").order(Terms.Order.term(false)).field("age"); SearchResponse searchResponse = client.prepareSearch("bank").setTypes("account").setSize(0).addAggregation(aggs).get();
sql
select count(*) from account group by age order by count(*) desc
二层聚合
DQL
curl -XPOST 'localhost:9200/top_user/_search?pretty' -d ' { "size": 0, "aggs": { "group_by_gender": { "terms": { "field": "gender", "order": { "average_score": "desc" } }, "aggs": { "average_age": { "avg": { "field": "age" } } } } } }'
java api
AggregationBuilder sub = AggregationBuilders.avg("avg_age").field("age"); AggregationBuilder aggs = AggregationBuilders.terms("group_by_gender").field("gender").subAggregation(sub); SearchResponse searchResponse = client.prepareSearch("bank").setTypes("account").setSize(0).addAggregation(aggs).get();
sql
select avg(age) as avg_age from account group by gender order by avg_age desc
ES 工作原理
7. ES对外接口
ES遇到问题怎么办?
以上是脚本宝典为你收集整理的ElasticSearch-java实例全部内容,希望文章能够帮你解决ElasticSearch-java实例所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。