ElasticSearch-java实例

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了ElasticSearch-java实例脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

查看所有数据

curl -xpOST 'localhost:9200/bank/account/_seArch?PRetty' -d ' { "query": { "match_all": {} } }'
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对外接口

官网DSL
官网java-API

ES遇到问题怎么办?

  1. 国外https://discuss.elastic.co/

  2. 国内:http://elasticsearch.cn/

脚本宝典总结

以上是脚本宝典为你收集整理的ElasticSearch-java实例全部内容,希望文章能够帮你解决ElasticSearch-java实例所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。