Java查询ES某个时间段或者范围的数据

1.引入SpringData相关Esjar包

附上pom文件:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.leyou.demo</groupId>

    <artifactId>elasticsearch</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>

    <name>elasticsearch</name>

    <description>Demo project for Spring Boot</description>

    <parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>2.0.2.RELEASE</version>

    <relativePath/> <!-- lookup parent from repository -->

    </parent>

    <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <java.version>1.8</java.version>

    </properties>

    <dependencies>

    <dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>

    </dependency>

    <dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-test</artifactId>

    <scope>test</scope>

    </dependency>

    </dependencies>

    <build>

    <plugins>

    <plugin>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-maven-plugin</artifactId>

    </plugin>

    </plugins>

    </build>

</project>



2.编写application.yml文件(ES配置,xml同理)

spring:

      data:

        elasticsearch:

          cluster-name: elasticsearch

          cluster-nodes: 127.0.0.1:9300



3.创建与ES中所需数据对应的实体类(字段需对应,顺序应该无所谓不确定)

@Data

@Document(indexName = "这里是索引名称",type = "这里是文档名称")

public class Item {

    @Id

    private String Id;

    private String name;

    private Long time;

}

PS:

可以通过实体类创建索引


4.创建Dao

@Component

public interface ESDao extends ElasticSearchRepository<实体类,类型>{}


5.Service

@Service

public class EService {

    @AutoWired

    private ESDao esd;

    public void searchByTime(){

        BoolQueryBuilder bb = boolQuery();

        bb.must(rangeQuery(时间的字段名).gt(开始时间).lt(结束时间));

        SearchQuery search = new NativeSearchQueryBuilder()

                .withQuery(bb)

               .withPageable(PageRequest.of(取数据的第几条开始,第几条结束)).build();

        Page<实体类> result = esd.search(search);

        syso(result.getNumberOfElements())

    }

}


办公机思路手打,仅供参考,尽信书不如无书!!!


办公机没办法截代码,附上原博客链接Java操作ES增删改查

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容