Elasticsearch 搜索Search API(7.5.0)

一、Search API

1. search:官网Search API

  A. 请求:GET / POST  /<index>/_search  | /_search

      {

        "query": {<parameters>}

      }  

    请求参数:index是索引名称,多个以逗号分隔

          parameters是DSL语句,用来搜索请求,查询DSL

  B. 查询参数:

字段 说明
from 起始值(页码)
size 返回的匹配数量(每页条数),默认10,注意:size = 0是特殊搜索,只返回匹配查询的文档数
sort 排序
_source_excludes 查询排除指定字段
_source_includes 查询指定字段

  C. 结果参数

字段 说明
took es执行请求时间(毫秒)
hits
total
value 返回的文档总数
hits
_index 索引名称
_type 文档类型
_id 文档的唯一标识符
_source 原始JSON正文对象(数据)

   D. kibana操作

 

2. Multi Search:官网Multi-Search API

 

3. Search Scroll

 

4. Count

  A. 用于执行查询并获取查询匹配的数目

  B.

  C. Java实现

private long getUserEventById(String yearMonth, Long id) {
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
            .filter(QueryBuilders.termQuery("type", ReportLogType.AUTH_LOG.getType()))
            .mustNot(QueryBuilders.termQuery("auth.status", LogConstants.STATUS_SUCCESS))
            .filter(QueryBuilders.termQuery("user.userId", id));
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(boolQueryBuilder);
        CountRequest countRequest = new CountRequest(String.format("%s_%s_%s", IndexName.RWS_REPORT_LOG, tenantContext.getTenantId(), yearMonth.replace("-", ".")));
        countRequest.source(sourceBuilder);

        try {
            // 统计身份认证异常数据
            CountResponse countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT);

            return countResponse.getCount();
        } catch (IOException e) {
            e.printStackTrace();

            return 0;
        }
    }

 

  5. Async search: 异步搜索允许用户提交一个搜索请求,然后在后台处理这个请求,而用户可以继续执行其他操作。当搜索结果准备好后,用户可以在之后的时间点获取结果。这对于长时间运行的复杂搜索任务非常有用,比如深度聚合查询或者跨多个大型索引的搜索。

 

二、Search your data

  1. Collapse search results:使用collapse参数根据字段值折叠搜索结果,只返回少量的数据。

       field:指定字段来折叠结果集(如根据某个字段去重)

    sort:对结果进行排序;

    from:定义第一个折叠结果的偏移量;

    inner_hits:可以实现更复杂的去重逻辑。

 

可参考:ES官网 搜索Search

    ES官网 搜索 Java API

    ES组装条件查询语句

    ES日期范围查询

posted @ 2020-01-16 15:51  如幻行云  阅读(710)  评论(0)    收藏  举报