elasticsearch查询中文释义、JAVA的API以及kibana上查询

目录

一、创建表结构:

二、ES的各种查询

2.1term&terms查询

2.1.1term查询(我试了下province没有办法查询,需到后面加个.keyword)

2.1.2terms查询

2.2match_all&match查询

2.2.1match_all

2.2.2match查询

  2.2.3布尔match查询

  2.2.4mulitMatch查询

2.3id&ids查询

2.3.1id查询

2.3.2ids查询

2.4prefix查询

2.5fuzzy查询

2.6wildcard查询

2.7range查询

2.7regexp查询

2.8深分页Scroll

2.9delete-by-query

 3.0复合查询

3.0.1bool查询

3.0.2boosting查询

 3.1filter查询

3.2高亮查询

3.3聚合查询

3.3.1去重计数查询(cardinality)

3.3.2范围统计

3.3.3统计聚合查询

 3.4地图经纬度查询

 3.4.1地图检索方式

 3.4.2基于RESTFUL实现地图检索

 3.4.3java实现geo_polygon检索



=

一、创建表结构:

 

二、ES的各种查询

2.1term&terms查询

2.1.1term查询(我试了下province没有办法查询,需到后面加个.keyword)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

package com.qf.test;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.qf.utils.ESClient;

import org.elasticsearch.action.search.SearchRequest;

import org.elasticsearch.action.search.SearchRequestBuilder;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.client.RequestOptions;

import org.elasticsearch.client.RestHighLevelClient;

import org.elasticsearch.index.query.QueryBuilder;

import org.elasticsearch.index.query.QueryBuilders;

import org.elasticsearch.search.SearchHit;

import org.elasticsearch.search.builder.SearchSourceBuilder;

import org.junit.Test;

import java.io.IOException;

import java.util.Map;

public class Demo4 {

    ObjectMapper mapper=new ObjectMapper();

    RestHighLevelClient client = ESClient.getClient();

    String index="sms-logs-index";

    String type="sms-logs-type";

    @Test

    public void termQuery() throws IOException {

        //1.创建request对象

        SearchRequest searchRequest=new SearchRequest(index);

        searchRequest.types(type);

        //2.指定查询条件

        SearchSourceBuilder builder=new SearchSourceBuilder();

        builder.from(0);

        builder.size(5);

        builder.query(QueryBuilders.termQuery("province.keyword","北京"));

        searchRequest.source(builder);

        //执行查询

        SearchResponse rsp=client.search(searchRequest, RequestOptions.DEFAULT);

        //输出结果

        for (SearchHit hit:rsp.getHits().getHits()) {

            Map<String,Object> result=hit.getSourceAsMap();

            System.out.println(result);

             

        }

             

        }

   }

  

2.1.2terms查询

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

POST /sms-logs-index/sms-logs-type/_search

{

  "from": 0,

  "size": 5,

  "query":{

  "terms":{

    "province.keyword":[

      "江苏",

      "北京",

      "南通"

    ]

     

   }

  }

}

  

1

2

3

4

5

6

7

8

9

10

11

12

13

14

@Test

 public void termsQuerry() throws IOException {

     SearchRequest request=new SearchRequest(index);

     request.types(type);

     SearchSourceBuilder builder=new SearchSourceBuilder();

     builder.query(QueryBuilders.termsQuery("province.keyword","南通","江苏"));

     request.source(builder);;

     SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);

     //输出结果

     for (SearchHit hit:rsp.getHits().getHits()) {

         Map<String,Object> result=hit.getSourceAsMap();

         System.out.println(result);

 }

}}

  

2.2match_all&match查询

2.2.1match_all

1

2

3

4

5

6

POST /sms-logs-index/sms-logs-type/_search

{

  "query": {

    "match_all": {}

  }

  }

  注:ES默认查询10条数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

@Test

   public void  matchAllQuery() throws IOException {

       SearchRequest request=new SearchRequest(index);

       request.types(type);

        

       SearchSourceBuilder builder=new SearchSourceBuilder();

       builder.query(QueryBuilders.matchAllQuery());

       builder.size(20);//ES默认查询10条数据

           request.source(builder);

       SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);

        for (SearchHit hit: rsp.getHits().getHits()) {

            System.out.println(hit.getSourceAsMap());

       }

   }

  

2.2.2match查询

POST /sms-logs-index/sms-logs-type/_search
{
  "query": {
    "match": {
      "smsContent": "恭喜"
    }
  }
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

@Test

  public void  matchQuery() throws IOException {

      SearchRequest request=new SearchRequest(index);

      request.types(type);

      SearchSourceBuilder builder=new SearchSourceBuilder();

      builder.query(QueryBuilders.matchQuery("smsContent","恭喜"));

      builder.size(20);//ES默认查询10条数据

      request.source(builder);

      SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);

      for (SearchHit hit: rsp.getHits().getHits()) {

          System.out.println(hit.getSourceAsMap());

      }

  }

  2.2.3布尔match查询

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public void  booleanMatchQuery() throws IOException {

    SearchRequest request=new SearchRequest(index);

    request.types(type);

    SearchSourceBuilder builder=new SearchSourceBuilder();

    builder.query(QueryBuilders.matchQuery("smsContent","恭喜 高级").operator(Operator.AND));

    builder.size(20);//ES默认查询10条数据

    request.source(builder);

    SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);

    for (SearchHit hit: rsp.getHits().getHits()) {

        System.out.println(hit.getSourceAsMap());

    }

}

  2.2.4mulitMatch查询

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

@Test

   public void  mulitMatchQuery() throws IOException {

       SearchRequest request=new SearchRequest(index);

       request.types(type);

       SearchSourceBuilder builder=new SearchSourceBuilder();

       builder.query(QueryBuilders.multiMatchQuery("北京","province","smsContent"));

       builder.size(20);//ES默认查询10条数据

       request.source(builder);

       SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);

       for (SearchHit hit: rsp.getHits().getHits()) {

           System.out.println(hit.getSourceAsMap());

       }

   }

  

2.3id&ids查询

2.3.1id查询

 @Test
    public  void findByid() throws IOException {
        GetRequest request=new GetRequest(index,type,"1");
        GetResponse rsp=client.get(request, RequestOptions.DEFAULT);
        System.out.println(rsp.getSourceAsMap());

    }

2.3.2ids查询

    @Test
    public void findByids() throws IOException {
        SearchRequest request=new SearchRequest(index);
        request.types(type);

        SearchSourceBuilder builder=new SearchSourceBuilder();
        builder.query(QueryBuilders.idsQuery().addIds("1","2","3"));
        request.source(builder);
        SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);
        for (SearchHit hit: rsp.getHits().getHits()) {
            System.out.println(hit.getSourceAsMap());
        }
    }

2.4prefix查询

 @Test
    public void findByPrefix() throws IOException {
        SearchRequest request=new SearchRequest(index);
        request.types(type);

        SearchSourceBuilder builder=new SearchSourceBuilder();
        builder.query(QueryBuilders.prefixQuery("corpName","恭喜"));
        request.source(builder);
        SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);
        for (SearchHit hit: rsp.getHits().getHits()) {
            System.out.println(hit.getSourceAsMap());
        }
    }

2.5fuzzy查询

  @Test
    public void findByfuzzy() throws IOException {
        SearchRequest request=new SearchRequest(index);
        request.types(type);

        SearchSourceBuilder builder=new SearchSourceBuilder();
        builder.query(QueryBuilders.fuzzyQuery("corpName","恭喜您").prefixLength(2));
        request.source(builder);
        SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);
        for (SearchHit hit: rsp.getHits().getHits()) {
            System.out.println(hit.getSourceAsMap());
        }
    }

2.6wildcard查询

2.7range查询

2.7regexp查询

2.8深分页Scroll

2.9delete-by-query

 3.0复合查询

3.0.1bool查询

POST /sms-logs-index/sms-logs-type/_search
{
  "query":{
    "bool":{
      "should": [
        {
          "term": {
            "province": {
              "value": "北京"
            }
          }
        },
        {
          "term": {
            "province": {
              "value": "南通"
            }
          }
        }
      ],
       "must_not": [
        {
          "term": {
            "operatorId": {
              "value": "2"
            }
          }
        }
      ],
      "must": [
        {
          "match": {
            "smsContent": "恭喜"
          }
        },
        {
          "match": {
            "smsContent": "黑卡"
          }
        }
      ]
      
    }
  }
}

 View Code

3.0.2boosting查询

 View Code

 3.1filter查询

 View Code

3.2高亮查询

3.3聚合查询

3.3.1去重计数查询(cardinality)

3.3.2范围统计

3.3.3统计聚合查询

 3.4地图经纬度查询

 3.4.1地图检索方式

 3.4.2基于RESTFUL实现地图检索

 3.4.3java实现geo_polygon检索

@Test
    public void geoPolygon() throws IOException {
        //1.创建SearchRequest
        SearchRequest request=new SearchRequest(index);
        request.types(type);

        //2.指定查询方式
        SearchSourceBuilder builder = new SearchSourceBuilder();
        List<GeoPoint> points=new ArrayList<>();
        points.add(new GeoPoint(39.99878,116.298915));
        points.add(new GeoPoint(39.972576,116.29561));
        points.add(new GeoPoint(39.984739,116.327661));

        builder.query(QueryBuilders.geoPolygonQuery("location",points));
        request.source(builder);
        //3.执行查询
        SearchResponse rsp=client.search(request, RequestOptions.DEFAULT);
       //4.输出结果
        for (SearchHit hit:rsp.getHits().getHits()
        ) {
            System.out.println(hit.getSourceAsMap());

        }
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值