SpringBoot集成ES

SpringBoot集成ES概述

一,依赖

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <slf4j.version>1.7.21</slf4j.version>
        <log4j.version>1.2.16</log4j.version>
        <commons-lang.version>2.6</commons-lang.version>
        <commons-lang3.version>3.3.2</commons-lang3.version>
        <fastjson.version>1.2.47</fastjson.version>
    </properties>

    <repositories>
        <repository>
            <id>nexus-aliyun</id>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

        <dependency>
            <groupId>com.google.collections</groupId>
            <artifactId>google-collections</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>${commons-lang.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

二,配置文件

server.port=9401
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300

 

 

三,源码

1,entity包

package com.tangdou.es2.entity;


import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;

import java.io.Serializable;

@Document(indexName = "creative_index", type = "creative", shards = 5, replicas = 1, indexStoreType = "fs", refreshInterval = "-1")
public class CreativeIndex implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    private Integer id;
    @Field
    private Integer position_id;
    @Field
    private String creative_id;
    @Field
    private Integer subscribe_id;
    @Field
    private Integer channel_id;
    @Field
    private Integer campaign_id;
    @Field
    private Long user_id;
    @Field
    private String title;
    @Field
    private String describe;
    @Field
    private String target_url;
    @Field
    private String open_url;
    @Field
    private String pic_url;
    @Field
    private Integer show_time;
    @Field
    private String video_url;
    @Field
    private Integer video_duration;
    @Field
    private String appinfo;
    @Field
    private String appid;
    @Field
    private String vid;
    @Field
    private Integer action;
    @Field
    private Integer state;
    @Field
    private Integer ad_type;
    @Field
    private Integer creative_type;
    @Field
    private Integer position_type;
    @Field
    private Integer local_industry;
    @Field
    private String refuse_reason;
    @Field
    private Integer country_id;
    @Field
    private Integer city_id;
    @Field
    private Integer province_id;


    public Integer getPosition_id() {
        return position_id;
    }

    public void setPosition_id(Integer position_id) {
        this.position_id = position_id;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCreative_id() {
        return creative_id;
    }

    public void setCreative_id(String creative_id) {
        this.creative_id = creative_id;
    }

    public Integer getSubscribe_id() {
        return subscribe_id;
    }

    public void setSubscribe_id(Integer subscribe_id) {
        this.subscribe_id = subscribe_id;
    }

    public Integer getChannel_id() {
        return channel_id;
    }

    public void setChannel_id(Integer channel_id) {
        this.channel_id = channel_id;
    }

    public Integer getCampaign_id() {
        return campaign_id;
    }

    public void setCampaign_id(Integer campaign_id) {
        this.campaign_id = campaign_id;
    }

    public Long getUser_id() {
        return user_id;
    }

    public void setUser_id(Long user_id) {
        this.user_id = user_id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public String getTarget_url() {
        return target_url;
    }

    public void setTarget_url(String target_url) {
        this.target_url = target_url;
    }

    public String getOpen_url() {
        return open_url;
    }

    public void setOpen_url(String open_url) {
        this.open_url = open_url;
    }

    public String getPic_url() {
        return pic_url;
    }

    public void setPic_url(String pic_url) {
        this.pic_url = pic_url;
    }

    public Integer getShow_time() {
        return show_time;
    }

    public void setShow_time(Integer show_time) {
        this.show_time = show_time;
    }

    public String getVideo_url() {
        return video_url;
    }

    public void setVideo_url(String video_url) {
        this.video_url = video_url;
    }

    public Integer getVideo_duration() {
        return video_duration;
    }

    public void setVideo_duration(Integer video_duration) {
        this.video_duration = video_duration;
    }

    public String getAppinfo() {
        return appinfo;
    }

    public void setAppinfo(String appinfo) {
        this.appinfo = appinfo;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getVid() {
        return vid;
    }

    public void setVid(String vid) {
        this.vid = vid;
    }

    public Integer getAction() {
        return action;
    }

    public void setAction(Integer action) {
        this.action = action;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Integer getAd_type() {
        return ad_type;
    }

    public void setAd_type(Integer ad_type) {
        this.ad_type = ad_type;
    }

    public Integer getCreative_type() {
        return creative_type;
    }

    public void setCreative_type(Integer creative_type) {
        this.creative_type = creative_type;
    }

    public Integer getPosition_type() {
        return position_type;
    }

    public void setPosition_type(Integer position_type) {
        this.position_type = position_type;
    }

    public Integer getLocal_industry() {
        return local_industry;
    }

    public void setLocal_industry(Integer local_industry) {
        this.local_industry = local_industry;
    }

    public String getRefuse_reason() {
        return refuse_reason;
    }

    public void setRefuse_reason(String refuse_reason) {
        this.refuse_reason = refuse_reason;
    }

    public Integer getCountry_id() {
        return country_id;
    }

    public void setCountry_id(Integer country_id) {
        this.country_id = country_id;
    }

    public Integer getCity_id() {
        return city_id;
    }

    public void setCity_id(Integer city_id) {
        this.city_id = city_id;
    }

    public Integer getProvince_id() {
        return province_id;
    }

    public void setProvince_id(Integer province_id) {
        this.province_id = province_id;
    }
}

2,repository

package com.tangdou.es2.repository;

import com.tangdou.es2.entity.CreativeIndex;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

public interface CreativeIndexRepository extends ElasticsearchRepository<CreativeIndex, Integer> {
}

3,service

package com.tangdou.es2.service;

import com.tangdou.es2.entity.CreativeIndex;

import java.util.List;

public interface CreativeIndexService {

    CreativeIndex getOne(Integer id);

    List<CreativeIndex> getOneT();

    List<CreativeIndex> getAll();
}


package com.tangdou.es2.service.impl;

import com.google.common.collect.Lists;
import com.tangdou.es2.entity.CreativeIndex;
import com.tangdou.es2.repository.CreativeIndexRepository;
import com.tangdou.es2.service.CreativeIndexService;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.sort.FieldSortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class CreativeIndexServiceImpl implements CreativeIndexService {

    @Autowired
    private CreativeIndexRepository creativeIndexRepository;

    @Override
    public CreativeIndex getOne(Integer id) {
        CreativeIndex creativeIndexOptional = creativeIndexRepository.findById(id).get();
        System.out.println(creativeIndexOptional.getTitle());
        System.out.println(creativeIndexOptional.getAppid());
        return creativeIndexOptional;
    }

    @Override
    public List<CreativeIndex> getOneT() {
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        boolQueryBuilder.must(QueryBuilders.termQuery("country_id", "0"));
        boolQueryBuilder.must(QueryBuilders.termQuery("province_id", "0"));
        boolQueryBuilder.must(QueryBuilders.termQuery("city_id", "0"));
        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
        nativeSearchQueryBuilder.withQuery(boolQueryBuilder);
        FieldSortBuilder sortBuilder = SortBuilders.fieldSort("id").order(SortOrder.DESC);
        nativeSearchQueryBuilder.withSort(sortBuilder);
        NativeSearchQuery query = nativeSearchQueryBuilder.build();
        return Lists.newArrayList(creativeIndexRepository.search(query));
    }

    @Override
    public List<CreativeIndex> getAll() {
        Iterable<CreativeIndex> indexIterable = creativeIndexRepository.findAll();
        return Lists.newArrayList(indexIterable);
    }


}

4,test包

package com.tangdou.es2;

import static org.junit.Assert.assertTrue;

import com.tangdou.es2.entity.CreativeIndex;
import com.tangdou.es2.service.CreativeIndexService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

/**
 * Unit test for simple App.
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class AppTest 
{
    /**
     * Rigorous Test :-)
     */

    @Autowired
    CreativeIndexService creativeIndexService;
    @Test
    public void shouldAnswerWithTrue()
    {
        assertTrue( true );
    }

    @Test
    public void getOneTTest(){
        List<CreativeIndex> creativeIndices=creativeIndexService.getOneT();
        for (CreativeIndex creativeIndex:creativeIndices) {
            System.out.println(creativeIndex.getAppid());
            System.out.println(creativeIndex.getTitle());
            System.out.println(creativeIndex.getId());
        }
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值