Elasticsearch7.8.0版本入门——JavaAPI操作(查询并字段过滤文档)

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch7.8.0版本入门——JavaAPI操作(查询并字段过滤文档)相关的知识,希望对你有一定的参考价值。

目录

一、pom文件依赖

  • 引入相关依赖

    <!-- elasticsearch 依赖 -->
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>7.8.0</version>
    </dependency>
    <!-- elasticsearch 的客户端 -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>7.8.0</version>
    </dependency>
    <!-- elasticsearch 依赖 2.x 的 log4j -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.9</version>
    </dependency>
    <!-- junit 单元测试 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    

二、首先,批量创建文档(添加假数据,方便查询操作)

三、查询并字段过滤文档 代码示例

  • 查询并字段过滤文档代码示例

    package com.xz.esdemo.day4;
    
    import org.apache.http.HttpHost;
    import org.elasticsearch.action.search.SearchRequest;
    import org.elasticsearch.action.search.SearchResponse;
    import org.elasticsearch.client.RequestOptions;
    import org.elasticsearch.client.RestClient;
    import org.elasticsearch.client.RestHighLevelClient;
    import org.elasticsearch.index.query.QueryBuilders;
    import org.elasticsearch.search.SearchHit;
    import org.elasticsearch.search.SearchHits;
    import org.elasticsearch.search.builder.SearchSourceBuilder;
    /**
     * @description: 查询并字段过滤文档
     * @author: xz
     */
    public class EsDocFilterQuery 
        public static void main(String[] args) throws Exception
            // 创建 es 客户端对象
            RestHighLevelClient client = new RestHighLevelClient(
                    RestClient.builder(new HttpHost("localhost", 9200, "http"))
            );
    
            // 创建搜索请求对象
            SearchRequest request = new SearchRequest();
            request.indices("user");
            // 构建查询的请求体
            SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
            // 查询全部数据
            sourceBuilder.query(QueryBuilders.matchAllQuery());
    
            //查询字段过滤
            String[] excludes = "sex";
            String[] includes = "name", "age";
            //includes 表示包含 excludes 表示排除
            sourceBuilder.fetchSource(includes, excludes);
    
            request.source(sourceBuilder);
    
            SearchResponse response = client.search(request, RequestOptions.DEFAULT);
    
            SearchHits hits = response.getHits();
            for (SearchHit hit : hits) 
                //输出每条查询的结果信息
                System.out.println(hit.getSourceAsString());
            
            // 关闭 es 客户端连接
            client.close();
        
    
    
    
  • 执行代码,查看控制台信息,如下图表示查询并字段过滤文档成功。

以上是关于Elasticsearch7.8.0版本入门——JavaAPI操作(查询并字段过滤文档)的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作

Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作

Elasticsearch7.8.0版本入门——单机部署(linux环境-centos7)

Elasticsearch7.8.0版本入门——集群部署(linux环境-centos7)

Elasticsearch入门——Elasticsearch7.8.0版本和Kibana7.8.0版本的下载安装(win10环境)

Elasticsearch入门——Elasticsearch7.8.0版本和Kibana7.8.0版本的下载安装(win10环境)